From b04664b2131c4fe95b0a84de0a084857f20f9194 Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Thu, 18 Jan 2024 15:34:31 -0800 Subject: [PATCH] Do I need this? --- html/CommandList_8h_source.html | 129 - html/Command_8h_source.html | 108 - html/ConsoleServer_8h_source.html | 118 - html/ConsoleSession_8h_source.html | 113 - html/EPoll_8h_source.html | 155 - html/INotify_8h_source.html | 114 - html/IPAddressList_8h_source.html | 102 - html/IPAddress_8h_source.html | 108 - html/Object_8h_source.html | 94 - html/SessionFilter_8h_source.html | 98 - html/Socket_8h_source.html | 204 -- html/SubscriptionManager_8h_source.html | 110 - html/Subscription_8h_source.html | 118 - html/TCPServer_8h_source.html | 169 -- html/TCPSession_8h_source.html | 164 -- html/TCPSocket_8h_source.html | 109 - html/TLSServer_8h_source.html | 118 - html/TLSSession_8h_source.html | 122 - html/TerminalSession_8h_source.html | 139 - html/ThreadScope_8h_source.html | 90 - html/Thread_8h_source.html | 123 - html/Timer_8h_source.html | 122 - html/UDPServerSocket_8h_source.html | 121 - html/UDPSocket_8h_source.html | 98 - html/annotated.html | 103 - html/bc_s.png | Bin 676 -> 0 bytes html/bdwn.png | Bin 147 -> 0 bytes html/classcore_1_1Command-members.html | 83 - html/classcore_1_1Command.html | 196 -- html/classcore_1_1CommandList-members.html | 92 - html/classcore_1_1CommandList.html | 321 --- .../classcore_1_1CommandList__coll__graph.map | 4 - .../classcore_1_1CommandList__coll__graph.md5 | 1 - .../classcore_1_1CommandList__coll__graph.png | Bin 4228 -> 0 bytes ...asscore_1_1CommandList__inherit__graph.map | 4 - ...asscore_1_1CommandList__inherit__graph.md5 | 1 - ...asscore_1_1CommandList__inherit__graph.png | Bin 4228 -> 0 bytes html/classcore_1_1Command__inherit__graph.map | 10 - html/classcore_1_1Command__inherit__graph.md5 | 1 - html/classcore_1_1Command__inherit__graph.png | Bin 23869 -> 0 bytes html/classcore_1_1ConsoleServer-members.html | 124 - html/classcore_1_1ConsoleServer.html | 279 -- ...lasscore_1_1ConsoleServer__coll__graph.map | 14 - ...lasscore_1_1ConsoleServer__coll__graph.md5 | 1 - ...lasscore_1_1ConsoleServer__coll__graph.png | Bin 47699 -> 0 bytes ...score_1_1ConsoleServer__inherit__graph.map | 8 - ...score_1_1ConsoleServer__inherit__graph.md5 | 1 - ...score_1_1ConsoleServer__inherit__graph.png | Bin 12037 -> 0 bytes html/classcore_1_1ConsoleSession-members.html | 136 - html/classcore_1_1ConsoleSession.html | 315 -- ...asscore_1_1ConsoleSession__coll__graph.map | 15 - ...asscore_1_1ConsoleSession__coll__graph.md5 | 1 - ...asscore_1_1ConsoleSession__coll__graph.png | Bin 59200 -> 0 bytes ...core_1_1ConsoleSession__inherit__graph.map | 7 - ...core_1_1ConsoleSession__inherit__graph.md5 | 1 - ...core_1_1ConsoleSession__inherit__graph.png | Bin 10583 -> 0 bytes html/classcore_1_1EPoll-members.html | 94 - html/classcore_1_1EPoll.html | 429 --- html/classcore_1_1EPoll__coll__graph.map | 4 - html/classcore_1_1EPoll__coll__graph.md5 | 1 - html/classcore_1_1EPoll__coll__graph.png | Bin 2926 -> 0 bytes html/classcore_1_1EPoll__inherit__graph.map | 4 - html/classcore_1_1EPoll__inherit__graph.md5 | 1 - html/classcore_1_1EPoll__inherit__graph.png | Bin 2926 -> 0 bytes html/classcore_1_1INotify-members.html | 99 - html/classcore_1_1INotify.html | 157 - html/classcore_1_1INotify__coll__graph.map | 6 - html/classcore_1_1INotify__coll__graph.md5 | 1 - html/classcore_1_1INotify__coll__graph.png | Bin 7125 -> 0 bytes html/classcore_1_1INotify__inherit__graph.map | 4 - html/classcore_1_1INotify__inherit__graph.md5 | 1 - html/classcore_1_1INotify__inherit__graph.png | Bin 3053 -> 0 bytes html/classcore_1_1IPAddress-members.html | 93 - html/classcore_1_1IPAddress.html | 145 - html/classcore_1_1IPAddressList-members.html | 86 - html/classcore_1_1IPAddressList.html | 101 - html/classcore_1_1IPAddress__coll__graph.map | 4 - html/classcore_1_1IPAddress__coll__graph.md5 | 1 - html/classcore_1_1IPAddress__coll__graph.png | Bin 3342 -> 0 bytes ...classcore_1_1IPAddress__inherit__graph.map | 4 - ...classcore_1_1IPAddress__inherit__graph.md5 | 1 - ...classcore_1_1IPAddress__inherit__graph.png | Bin 3342 -> 0 bytes html/classcore_1_1Object-members.html | 83 - html/classcore_1_1Object.html | 105 - html/classcore_1_1Object__inherit__graph.map | 6 - html/classcore_1_1Object__inherit__graph.md5 | 1 - html/classcore_1_1Object__inherit__graph.png | Bin 7270 -> 0 bytes html/classcore_1_1SessionFilter-members.html | 84 - html/classcore_1_1SessionFilter.html | 119 - ...lasscore_1_1SessionFilter__coll__graph.map | 4 - ...lasscore_1_1SessionFilter__coll__graph.md5 | 1 - ...lasscore_1_1SessionFilter__coll__graph.png | Bin 3819 -> 0 bytes ...score_1_1SessionFilter__inherit__graph.map | 4 - ...score_1_1SessionFilter__inherit__graph.md5 | 1 - ...score_1_1SessionFilter__inherit__graph.png | Bin 3819 -> 0 bytes html/classcore_1_1Socket-members.html | 103 - html/classcore_1_1Socket.html | 474 --- html/classcore_1_1Socket__coll__graph.map | 5 - html/classcore_1_1Socket__coll__graph.md5 | 1 - html/classcore_1_1Socket__coll__graph.png | Bin 5377 -> 0 bytes html/classcore_1_1Socket__inherit__graph.map | 15 - html/classcore_1_1Socket__inherit__graph.md5 | 1 - html/classcore_1_1Socket__inherit__graph.png | Bin 23043 -> 0 bytes html/classcore_1_1Subscription-members.html | 94 - html/classcore_1_1Subscription.html | 148 - ...sscore_1_1SubscriptionManager-members.html | 86 - html/classcore_1_1SubscriptionManager.html | 166 -- ...re_1_1SubscriptionManager__coll__graph.map | 4 - ...re_1_1SubscriptionManager__coll__graph.md5 | 1 - ...re_1_1SubscriptionManager__coll__graph.png | Bin 4385 -> 0 bytes ...1_1SubscriptionManager__inherit__graph.map | 4 - ...1_1SubscriptionManager__inherit__graph.md5 | 1 - ...1_1SubscriptionManager__inherit__graph.png | Bin 4385 -> 0 bytes ...classcore_1_1Subscription__coll__graph.map | 14 - ...classcore_1_1Subscription__coll__graph.md5 | 1 - ...classcore_1_1Subscription__coll__graph.png | Bin 58731 -> 0 bytes ...sscore_1_1Subscription__inherit__graph.map | 4 - ...sscore_1_1Subscription__inherit__graph.md5 | 1 - ...sscore_1_1Subscription__inherit__graph.png | Bin 3701 -> 0 bytes html/classcore_1_1TCPServer-members.html | 122 - html/classcore_1_1TCPServer.html | 587 ---- html/classcore_1_1TCPServer__coll__graph.map | 12 - html/classcore_1_1TCPServer__coll__graph.md5 | 1 - html/classcore_1_1TCPServer__coll__graph.png | Bin 44042 -> 0 bytes ...classcore_1_1TCPServer__inherit__graph.map | 8 - ...classcore_1_1TCPServer__inherit__graph.md5 | 1 - ...classcore_1_1TCPServer__inherit__graph.png | Bin 11707 -> 0 bytes html/classcore_1_1TCPSession-members.html | 120 - html/classcore_1_1TCPSession.html | 494 ---- html/classcore_1_1TCPSession__coll__graph.map | 13 - html/classcore_1_1TCPSession__coll__graph.md5 | 1 - html/classcore_1_1TCPSession__coll__graph.png | Bin 55825 -> 0 bytes ...lasscore_1_1TCPSession__inherit__graph.map | 8 - ...lasscore_1_1TCPSession__inherit__graph.md5 | 1 - ...lasscore_1_1TCPSession__inherit__graph.png | Bin 11833 -> 0 bytes html/classcore_1_1TCPSocket-members.html | 108 - html/classcore_1_1TCPSocket.html | 243 -- html/classcore_1_1TCPSocket__coll__graph.map | 8 - html/classcore_1_1TCPSocket__coll__graph.md5 | 1 - html/classcore_1_1TCPSocket__coll__graph.png | Bin 12832 -> 0 bytes ...classcore_1_1TCPSocket__inherit__graph.map | 11 - ...classcore_1_1TCPSocket__inherit__graph.md5 | 1 - ...classcore_1_1TCPSocket__inherit__graph.png | Bin 16595 -> 0 bytes html/classcore_1_1TLSServer-members.html | 126 - html/classcore_1_1TLSServer.html | 318 -- html/classcore_1_1TLSServer__coll__graph.map | 13 - html/classcore_1_1TLSServer__coll__graph.md5 | 1 - html/classcore_1_1TLSServer__coll__graph.png | Bin 44998 -> 0 bytes ...classcore_1_1TLSServer__inherit__graph.map | 7 - ...classcore_1_1TLSServer__inherit__graph.md5 | 1 - ...classcore_1_1TLSServer__inherit__graph.png | Bin 9549 -> 0 bytes html/classcore_1_1TLSSession-members.html | 122 - html/classcore_1_1TLSSession.html | 365 --- html/classcore_1_1TLSSession__coll__graph.map | 14 - html/classcore_1_1TLSSession__coll__graph.md5 | 1 - html/classcore_1_1TLSSession__coll__graph.png | Bin 57220 -> 0 bytes ...lasscore_1_1TLSSession__inherit__graph.map | 6 - ...lasscore_1_1TLSSession__inherit__graph.md5 | 1 - ...lasscore_1_1TLSSession__inherit__graph.png | Bin 5889 -> 0 bytes .../classcore_1_1TerminalSession-members.html | 133 - html/classcore_1_1TerminalSession.html | 333 --- ...sscore_1_1TerminalSession__coll__graph.map | 14 - ...sscore_1_1TerminalSession__coll__graph.md5 | 1 - ...sscore_1_1TerminalSession__coll__graph.png | Bin 57962 -> 0 bytes ...ore_1_1TerminalSession__inherit__graph.map | 7 - ...ore_1_1TerminalSession__inherit__graph.md5 | 1 - ...ore_1_1TerminalSession__inherit__graph.png | Bin 10590 -> 0 bytes html/classcore_1_1Thread-members.html | 92 - html/classcore_1_1Thread.html | 164 -- html/classcore_1_1ThreadScope-members.html | 82 - html/classcore_1_1ThreadScope.html | 83 - html/classcore_1_1Thread__coll__graph.map | 4 - html/classcore_1_1Thread__coll__graph.md5 | 1 - html/classcore_1_1Thread__coll__graph.png | Bin 3093 -> 0 bytes html/classcore_1_1Thread__inherit__graph.map | 4 - html/classcore_1_1Thread__inherit__graph.md5 | 1 - html/classcore_1_1Thread__inherit__graph.png | Bin 3093 -> 0 bytes html/classcore_1_1Timer-members.html | 90 - html/classcore_1_1Timer.html | 224 -- html/classcore_1_1Timer__coll__graph.map | 6 - html/classcore_1_1Timer__coll__graph.md5 | 1 - html/classcore_1_1Timer__coll__graph.png | Bin 6805 -> 0 bytes html/classcore_1_1Timer__inherit__graph.map | 4 - html/classcore_1_1Timer__inherit__graph.md5 | 1 - html/classcore_1_1Timer__inherit__graph.png | Bin 2723 -> 0 bytes .../classcore_1_1UDPServerSocket-members.html | 111 - html/classcore_1_1UDPServerSocket.html | 252 -- ...sscore_1_1UDPServerSocket__coll__graph.map | 7 - ...sscore_1_1UDPServerSocket__coll__graph.md5 | 1 - ...sscore_1_1UDPServerSocket__coll__graph.png | Bin 14992 -> 0 bytes ...ore_1_1UDPServerSocket__inherit__graph.map | 6 - ...ore_1_1UDPServerSocket__inherit__graph.md5 | 1 - ...ore_1_1UDPServerSocket__inherit__graph.png | Bin 9068 -> 0 bytes html/classcore_1_1UDPSocket-members.html | 105 - html/classcore_1_1UDPSocket.html | 184 -- html/classcore_1_1UDPSocket__coll__graph.map | 6 - html/classcore_1_1UDPSocket__coll__graph.md5 | 1 - html/classcore_1_1UDPSocket__coll__graph.png | Bin 7546 -> 0 bytes ...classcore_1_1UDPSocket__inherit__graph.map | 5 - ...classcore_1_1UDPSocket__inherit__graph.md5 | 1 - ...classcore_1_1UDPSocket__inherit__graph.png | Bin 6423 -> 0 bytes html/classes.html | 98 - html/closed.png | Bin 132 -> 0 bytes html/doc.png | Bin 746 -> 0 bytes html/doxygen.css | 1793 ------------ html/doxygen.png | Bin 3779 -> 0 bytes html/doxygen.svg | 26 - html/dynsections.js | 121 - html/files.html | 102 - html/folderclosed.png | Bin 616 -> 0 bytes html/folderopen.png | Bin 597 -> 0 bytes html/functions.html | 317 -- html/functions_func.html | 287 -- html/functions_vars.html | 94 - html/graph_legend.html | 134 - html/graph_legend.md5 | 1 - html/graph_legend.png | Bin 21469 -> 0 bytes html/hierarchy.html | 108 - html/index.html | 74 - html/inherit_graph_0.map | 20 - html/inherit_graph_0.md5 | 1 - html/inherit_graph_0.png | Bin 41510 -> 0 bytes html/inherit_graph_1.map | 3 - html/inherit_graph_1.md5 | 1 - html/inherit_graph_1.png | Bin 1672 -> 0 bytes html/inherit_graph_2.map | 6 - html/inherit_graph_2.md5 | 1 - html/inherit_graph_2.png | Bin 7990 -> 0 bytes html/inherit_graph_3.map | 3 - html/inherit_graph_3.md5 | 1 - html/inherit_graph_3.png | Bin 1763 -> 0 bytes html/inherit_graph_4.map | 3 - html/inherit_graph_4.md5 | 1 - html/inherit_graph_4.png | Bin 1697 -> 0 bytes html/inherits.html | 123 - html/jquery.js | 35 - html/menu.js | 51 - html/menudata.js | 64 - html/nav_f.png | Bin 153 -> 0 bytes html/nav_g.png | Bin 95 -> 0 bytes html/nav_h.png | Bin 98 -> 0 bytes html/open.png | Bin 123 -> 0 bytes html/search/all_0.html | 37 - html/search/all_0.js | 4 - html/search/all_1.html | 37 - html/search/all_1.js | 4 - html/search/all_2.html | 37 - html/search/all_2.js | 11 - html/search/all_3.html | 37 - html/search/all_3.js | 5 - html/search/all_4.html | 37 - html/search/all_4.js | 10 - html/search/all_5.html | 37 - html/search/all_5.js | 7 - html/search/all_6.html | 37 - html/search/all_6.js | 4 - html/search/all_7.html | 37 - html/search/all_7.js | 14 - html/search/all_8.html | 37 - html/search/all_8.js | 6 - html/search/all_9.html | 37 - html/search/all_9.js | 6 - html/search/all_a.html | 37 - html/search/all_a.js | 18 - html/search/all_b.html | 37 - html/search/all_b.js | 13 - html/search/all_c.html | 37 - html/search/all_c.js | 6 - html/search/all_d.html | 37 - html/search/all_d.js | 5 - html/search/all_e.html | 37 - html/search/all_e.js | 7 - html/search/classes_0.html | 37 - html/search/classes_0.js | 7 - html/search/classes_1.html | 37 - html/search/classes_1.js | 4 - html/search/classes_2.html | 37 - html/search/classes_2.js | 6 - html/search/classes_3.html | 37 - html/search/classes_3.js | 4 - html/search/classes_4.html | 37 - html/search/classes_4.js | 7 - html/search/classes_5.html | 37 - html/search/classes_5.js | 12 - html/search/classes_6.html | 37 - html/search/classes_6.js | 5 - html/search/close.png | Bin 273 -> 0 bytes html/search/close.svg | 31 - html/search/functions_0.html | 37 - html/search/functions_0.js | 4 - html/search/functions_1.html | 37 - html/search/functions_1.js | 6 - html/search/functions_2.html | 37 - html/search/functions_2.js | 5 - html/search/functions_3.html | 37 - html/search/functions_3.js | 10 - html/search/functions_4.html | 37 - html/search/functions_4.js | 4 - html/search/functions_5.html | 37 - html/search/functions_5.js | 12 - html/search/functions_6.html | 37 - html/search/functions_6.js | 6 - html/search/functions_7.html | 37 - html/search/functions_7.js | 6 - html/search/functions_8.html | 37 - html/search/functions_8.js | 13 - html/search/functions_9.html | 37 - html/search/functions_9.js | 6 - html/search/functions_a.html | 37 - html/search/functions_a.js | 4 - html/search/functions_b.html | 37 - html/search/functions_b.js | 4 - html/search/functions_c.html | 37 - html/search/functions_c.js | 7 - html/search/mag_sel.png | Bin 465 -> 0 bytes html/search/mag_sel.svg | 74 - html/search/nomatches.html | 13 - html/search/search.css | 257 -- html/search/search.js | 816 ------ html/search/search_l.png | Bin 567 -> 0 bytes html/search/search_m.png | Bin 158 -> 0 bytes html/search/search_r.png | Bin 553 -> 0 bytes html/search/searchdata.js | 24 - html/search/variables_0.html | 37 - html/search/variables_0.js | 4 - html/search/variables_1.html | 37 - html/search/variables_1.js | 4 - html/search/variables_2.html | 37 - html/search/variables_2.js | 4 - html/search/variables_3.html | 37 - html/search/variables_3.js | 4 - html/search/variables_4.html | 37 - html/search/variables_4.js | 5 - html/search/variables_5.html | 37 - html/search/variables_5.js | 4 - html/splitbar.png | Bin 314 -> 0 bytes html/sync_off.png | Bin 853 -> 0 bytes html/sync_on.png | Bin 845 -> 0 bytes html/tab_a.png | Bin 142 -> 0 bytes html/tab_b.png | Bin 169 -> 0 bytes html/tab_h.png | Bin 177 -> 0 bytes html/tab_s.png | Bin 184 -> 0 bytes html/tabs.css | 1 - latex/Makefile | 23 - latex/annotated.tex | 27 - latex/classcore_1_1Command.tex | 75 - latex/classcore_1_1CommandList.tex | 123 - .../classcore_1_1CommandList__coll__graph.md5 | 1 - .../classcore_1_1CommandList__coll__graph.pdf | Bin 6704 -> 0 bytes ...asscore_1_1CommandList__inherit__graph.md5 | 1 - ...asscore_1_1CommandList__inherit__graph.pdf | Bin 6704 -> 0 bytes latex/classcore_1_1Command__coll__graph.md5 | 1 - latex/classcore_1_1Command__coll__graph.pdf | Bin 6589 -> 0 bytes .../classcore_1_1Command__inherit__graph.md5 | 1 - .../classcore_1_1Command__inherit__graph.pdf | Bin 11145 -> 0 bytes latex/classcore_1_1ConsoleServer.tex | 51 - ...lasscore_1_1ConsoleServer__coll__graph.md5 | 1 - ...lasscore_1_1ConsoleServer__coll__graph.pdf | Bin 13755 -> 0 bytes ...score_1_1ConsoleServer__inherit__graph.md5 | 1 - ...score_1_1ConsoleServer__inherit__graph.pdf | Bin 9236 -> 0 bytes latex/classcore_1_1ConsoleSession.tex | 65 - ...asscore_1_1ConsoleSession__coll__graph.md5 | 1 - ...asscore_1_1ConsoleSession__coll__graph.pdf | Bin 14620 -> 0 bytes ...core_1_1ConsoleSession__inherit__graph.md5 | 1 - ...core_1_1ConsoleSession__inherit__graph.pdf | Bin 8320 -> 0 bytes latex/classcore_1_1EPoll.tex | 217 -- latex/classcore_1_1EPoll__coll__graph.md5 | 1 - latex/classcore_1_1EPoll__coll__graph.pdf | Bin 6390 -> 0 bytes latex/classcore_1_1EPoll__inherit__graph.md5 | 1 - latex/classcore_1_1EPoll__inherit__graph.pdf | Bin 6390 -> 0 bytes latex/classcore_1_1INotify.tex | 77 - latex/classcore_1_1INotify__coll__graph.md5 | 1 - latex/classcore_1_1INotify__coll__graph.pdf | Bin 8625 -> 0 bytes .../classcore_1_1INotify__inherit__graph.md5 | 1 - .../classcore_1_1INotify__inherit__graph.pdf | Bin 6755 -> 0 bytes latex/classcore_1_1IPAddress.tex | 56 - latex/classcore_1_1IPAddressList.tex | 23 - latex/classcore_1_1IPAddress__coll__graph.md5 | 1 - latex/classcore_1_1IPAddress__coll__graph.pdf | Bin 6660 -> 0 bytes ...classcore_1_1IPAddress__inherit__graph.md5 | 1 - ...classcore_1_1IPAddress__inherit__graph.pdf | Bin 6660 -> 0 bytes latex/classcore_1_1Object.tex | 25 - latex/classcore_1_1Object__inherit__graph.md5 | 1 - latex/classcore_1_1Object__inherit__graph.pdf | Bin 8382 -> 0 bytes latex/classcore_1_1SessionFilter.tex | 32 - ...lasscore_1_1SessionFilter__coll__graph.md5 | 1 - ...lasscore_1_1SessionFilter__coll__graph.pdf | Bin 6629 -> 0 bytes ...score_1_1SessionFilter__inherit__graph.md5 | 1 - ...score_1_1SessionFilter__inherit__graph.pdf | Bin 6629 -> 0 bytes latex/classcore_1_1Socket.tex | 230 -- latex/classcore_1_1Socket__coll__graph.md5 | 1 - latex/classcore_1_1Socket__coll__graph.pdf | Bin 7380 -> 0 bytes latex/classcore_1_1Socket__inherit__graph.md5 | 1 - latex/classcore_1_1Socket__inherit__graph.pdf | Bin 12995 -> 0 bytes latex/classcore_1_1Subscription.tex | 59 - latex/classcore_1_1SubscriptionManager.tex | 62 - ...re_1_1SubscriptionManager__coll__graph.md5 | 1 - ...re_1_1SubscriptionManager__coll__graph.pdf | Bin 7513 -> 0 bytes ...1_1SubscriptionManager__inherit__graph.md5 | 1 - ...1_1SubscriptionManager__inherit__graph.pdf | Bin 7513 -> 0 bytes ...classcore_1_1Subscription__coll__graph.md5 | 1 - ...classcore_1_1Subscription__coll__graph.pdf | Bin 14241 -> 0 bytes ...sscore_1_1Subscription__inherit__graph.md5 | 1 - ...sscore_1_1Subscription__inherit__graph.pdf | Bin 7108 -> 0 bytes latex/classcore_1_1TCPServer.tex | 207 -- latex/classcore_1_1TCPServer__coll__graph.md5 | 1 - latex/classcore_1_1TCPServer__coll__graph.pdf | Bin 13204 -> 0 bytes ...classcore_1_1TCPServer__inherit__graph.md5 | 1 - ...classcore_1_1TCPServer__inherit__graph.pdf | Bin 9185 -> 0 bytes latex/classcore_1_1TCPSession.tex | 161 -- .../classcore_1_1TCPSession__coll__graph.md5 | 1 - .../classcore_1_1TCPSession__coll__graph.pdf | Bin 13812 -> 0 bytes ...lasscore_1_1TCPSession__inherit__graph.md5 | 1 - ...lasscore_1_1TCPSession__inherit__graph.pdf | Bin 8857 -> 0 bytes latex/classcore_1_1TCPSocket.tex | 71 - latex/classcore_1_1TCPSocket__coll__graph.md5 | 1 - latex/classcore_1_1TCPSocket__coll__graph.pdf | Bin 9749 -> 0 bytes ...classcore_1_1TCPSocket__inherit__graph.md5 | 1 - ...classcore_1_1TCPSocket__inherit__graph.pdf | Bin 10337 -> 0 bytes latex/classcore_1_1TLSServer.tex | 83 - latex/classcore_1_1TLSServer__coll__graph.md5 | 1 - latex/classcore_1_1TLSServer__coll__graph.pdf | Bin 13596 -> 0 bytes ...classcore_1_1TLSServer__inherit__graph.md5 | 1 - ...classcore_1_1TLSServer__inherit__graph.pdf | Bin 8465 -> 0 bytes latex/classcore_1_1TLSSession.tex | 107 - .../classcore_1_1TLSSession__coll__graph.md5 | 1 - .../classcore_1_1TLSSession__coll__graph.pdf | Bin 14226 -> 0 bytes ...lasscore_1_1TLSSession__inherit__graph.md5 | 1 - ...lasscore_1_1TLSSession__inherit__graph.pdf | Bin 7512 -> 0 bytes latex/classcore_1_1TerminalSession.tex | 84 - ...sscore_1_1TerminalSession__coll__graph.md5 | 1 - ...sscore_1_1TerminalSession__coll__graph.pdf | Bin 14239 -> 0 bytes ...ore_1_1TerminalSession__inherit__graph.md5 | 1 - ...ore_1_1TerminalSession__inherit__graph.pdf | Bin 8334 -> 0 bytes latex/classcore_1_1Thread.tex | 71 - latex/classcore_1_1ThreadScope.tex | 7 - latex/classcore_1_1Thread__coll__graph.md5 | 1 - latex/classcore_1_1Thread__coll__graph.pdf | Bin 6406 -> 0 bytes latex/classcore_1_1Thread__inherit__graph.md5 | 1 - latex/classcore_1_1Thread__inherit__graph.pdf | Bin 6406 -> 0 bytes latex/classcore_1_1Timer.tex | 94 - latex/classcore_1_1Timer__coll__graph.md5 | 1 - latex/classcore_1_1Timer__coll__graph.pdf | Bin 7945 -> 0 bytes latex/classcore_1_1Timer__inherit__graph.md5 | 1 - latex/classcore_1_1Timer__inherit__graph.pdf | Bin 6234 -> 0 bytes latex/classcore_1_1UDPServerSocket.tex | 80 - ...sscore_1_1UDPServerSocket__coll__graph.md5 | 1 - ...sscore_1_1UDPServerSocket__coll__graph.pdf | Bin 8863 -> 0 bytes ...ore_1_1UDPServerSocket__inherit__graph.md5 | 1 - ...ore_1_1UDPServerSocket__inherit__graph.pdf | Bin 8125 -> 0 bytes latex/classcore_1_1UDPSocket.tex | 33 - latex/classcore_1_1UDPSocket__coll__graph.md5 | 1 - latex/classcore_1_1UDPSocket__coll__graph.pdf | Bin 8021 -> 0 bytes ...classcore_1_1UDPSocket__inherit__graph.md5 | 1 - ...classcore_1_1UDPSocket__inherit__graph.pdf | Bin 6880 -> 0 bytes latex/doxygen.sty | 576 ---- latex/hierarchy.tex | 48 - latex/longtable_doxygen.sty | 448 --- latex/refman.tex | 213 -- latex/tabu_doxygen.sty | 2557 ----------------- 460 files changed, 24578 deletions(-) delete mode 100644 html/CommandList_8h_source.html delete mode 100644 html/Command_8h_source.html delete mode 100644 html/ConsoleServer_8h_source.html delete mode 100644 html/ConsoleSession_8h_source.html delete mode 100644 html/EPoll_8h_source.html delete mode 100644 html/INotify_8h_source.html delete mode 100644 html/IPAddressList_8h_source.html delete mode 100644 html/IPAddress_8h_source.html delete mode 100644 html/Object_8h_source.html delete mode 100644 html/SessionFilter_8h_source.html delete mode 100644 html/Socket_8h_source.html delete mode 100644 html/SubscriptionManager_8h_source.html delete mode 100644 html/Subscription_8h_source.html delete mode 100644 html/TCPServer_8h_source.html delete mode 100644 html/TCPSession_8h_source.html delete mode 100644 html/TCPSocket_8h_source.html delete mode 100644 html/TLSServer_8h_source.html delete mode 100644 html/TLSSession_8h_source.html delete mode 100644 html/TerminalSession_8h_source.html delete mode 100644 html/ThreadScope_8h_source.html delete mode 100644 html/Thread_8h_source.html delete mode 100644 html/Timer_8h_source.html delete mode 100644 html/UDPServerSocket_8h_source.html delete mode 100644 html/UDPSocket_8h_source.html delete mode 100644 html/annotated.html delete mode 100644 html/bc_s.png delete mode 100644 html/bdwn.png delete mode 100644 html/classcore_1_1Command-members.html delete mode 100644 html/classcore_1_1Command.html delete mode 100644 html/classcore_1_1CommandList-members.html delete mode 100644 html/classcore_1_1CommandList.html delete mode 100644 html/classcore_1_1CommandList__coll__graph.map delete mode 100644 html/classcore_1_1CommandList__coll__graph.md5 delete mode 100644 html/classcore_1_1CommandList__coll__graph.png delete mode 100644 html/classcore_1_1CommandList__inherit__graph.map delete mode 100644 html/classcore_1_1CommandList__inherit__graph.md5 delete mode 100644 html/classcore_1_1CommandList__inherit__graph.png delete mode 100644 html/classcore_1_1Command__inherit__graph.map delete mode 100644 html/classcore_1_1Command__inherit__graph.md5 delete mode 100644 html/classcore_1_1Command__inherit__graph.png delete mode 100644 html/classcore_1_1ConsoleServer-members.html delete mode 100644 html/classcore_1_1ConsoleServer.html delete mode 100644 html/classcore_1_1ConsoleServer__coll__graph.map delete mode 100644 html/classcore_1_1ConsoleServer__coll__graph.md5 delete mode 100644 html/classcore_1_1ConsoleServer__coll__graph.png delete mode 100644 html/classcore_1_1ConsoleServer__inherit__graph.map delete mode 100644 html/classcore_1_1ConsoleServer__inherit__graph.md5 delete mode 100644 html/classcore_1_1ConsoleServer__inherit__graph.png delete mode 100644 html/classcore_1_1ConsoleSession-members.html delete mode 100644 html/classcore_1_1ConsoleSession.html delete mode 100644 html/classcore_1_1ConsoleSession__coll__graph.map delete mode 100644 html/classcore_1_1ConsoleSession__coll__graph.md5 delete mode 100644 html/classcore_1_1ConsoleSession__coll__graph.png delete mode 100644 html/classcore_1_1ConsoleSession__inherit__graph.map delete mode 100644 html/classcore_1_1ConsoleSession__inherit__graph.md5 delete mode 100644 html/classcore_1_1ConsoleSession__inherit__graph.png delete mode 100644 html/classcore_1_1EPoll-members.html delete mode 100644 html/classcore_1_1EPoll.html delete mode 100644 html/classcore_1_1EPoll__coll__graph.map delete mode 100644 html/classcore_1_1EPoll__coll__graph.md5 delete mode 100644 html/classcore_1_1EPoll__coll__graph.png delete mode 100644 html/classcore_1_1EPoll__inherit__graph.map delete mode 100644 html/classcore_1_1EPoll__inherit__graph.md5 delete mode 100644 html/classcore_1_1EPoll__inherit__graph.png delete mode 100644 html/classcore_1_1INotify-members.html delete mode 100644 html/classcore_1_1INotify.html delete mode 100644 html/classcore_1_1INotify__coll__graph.map delete mode 100644 html/classcore_1_1INotify__coll__graph.md5 delete mode 100644 html/classcore_1_1INotify__coll__graph.png delete mode 100644 html/classcore_1_1INotify__inherit__graph.map delete mode 100644 html/classcore_1_1INotify__inherit__graph.md5 delete mode 100644 html/classcore_1_1INotify__inherit__graph.png delete mode 100644 html/classcore_1_1IPAddress-members.html delete mode 100644 html/classcore_1_1IPAddress.html delete mode 100644 html/classcore_1_1IPAddressList-members.html delete mode 100644 html/classcore_1_1IPAddressList.html delete mode 100644 html/classcore_1_1IPAddress__coll__graph.map delete mode 100644 html/classcore_1_1IPAddress__coll__graph.md5 delete mode 100644 html/classcore_1_1IPAddress__coll__graph.png delete mode 100644 html/classcore_1_1IPAddress__inherit__graph.map delete mode 100644 html/classcore_1_1IPAddress__inherit__graph.md5 delete mode 100644 html/classcore_1_1IPAddress__inherit__graph.png delete mode 100644 html/classcore_1_1Object-members.html delete mode 100644 html/classcore_1_1Object.html delete mode 100644 html/classcore_1_1Object__inherit__graph.map delete mode 100644 html/classcore_1_1Object__inherit__graph.md5 delete mode 100644 html/classcore_1_1Object__inherit__graph.png delete mode 100644 html/classcore_1_1SessionFilter-members.html delete mode 100644 html/classcore_1_1SessionFilter.html delete mode 100644 html/classcore_1_1SessionFilter__coll__graph.map delete mode 100644 html/classcore_1_1SessionFilter__coll__graph.md5 delete mode 100644 html/classcore_1_1SessionFilter__coll__graph.png delete mode 100644 html/classcore_1_1SessionFilter__inherit__graph.map delete mode 100644 html/classcore_1_1SessionFilter__inherit__graph.md5 delete mode 100644 html/classcore_1_1SessionFilter__inherit__graph.png delete mode 100644 html/classcore_1_1Socket-members.html delete mode 100644 html/classcore_1_1Socket.html delete mode 100644 html/classcore_1_1Socket__coll__graph.map delete mode 100644 html/classcore_1_1Socket__coll__graph.md5 delete mode 100644 html/classcore_1_1Socket__coll__graph.png delete mode 100644 html/classcore_1_1Socket__inherit__graph.map delete mode 100644 html/classcore_1_1Socket__inherit__graph.md5 delete mode 100644 html/classcore_1_1Socket__inherit__graph.png delete mode 100644 html/classcore_1_1Subscription-members.html delete mode 100644 html/classcore_1_1Subscription.html delete mode 100644 html/classcore_1_1SubscriptionManager-members.html delete mode 100644 html/classcore_1_1SubscriptionManager.html delete mode 100644 html/classcore_1_1SubscriptionManager__coll__graph.map delete mode 100644 html/classcore_1_1SubscriptionManager__coll__graph.md5 delete mode 100644 html/classcore_1_1SubscriptionManager__coll__graph.png delete mode 100644 html/classcore_1_1SubscriptionManager__inherit__graph.map delete mode 100644 html/classcore_1_1SubscriptionManager__inherit__graph.md5 delete mode 100644 html/classcore_1_1SubscriptionManager__inherit__graph.png delete mode 100644 html/classcore_1_1Subscription__coll__graph.map delete mode 100644 html/classcore_1_1Subscription__coll__graph.md5 delete mode 100644 html/classcore_1_1Subscription__coll__graph.png delete mode 100644 html/classcore_1_1Subscription__inherit__graph.map delete mode 100644 html/classcore_1_1Subscription__inherit__graph.md5 delete mode 100644 html/classcore_1_1Subscription__inherit__graph.png delete mode 100644 html/classcore_1_1TCPServer-members.html delete mode 100644 html/classcore_1_1TCPServer.html delete mode 100644 html/classcore_1_1TCPServer__coll__graph.map delete mode 100644 html/classcore_1_1TCPServer__coll__graph.md5 delete mode 100644 html/classcore_1_1TCPServer__coll__graph.png delete mode 100644 html/classcore_1_1TCPServer__inherit__graph.map delete mode 100644 html/classcore_1_1TCPServer__inherit__graph.md5 delete mode 100644 html/classcore_1_1TCPServer__inherit__graph.png delete mode 100644 html/classcore_1_1TCPSession-members.html delete mode 100644 html/classcore_1_1TCPSession.html delete mode 100644 html/classcore_1_1TCPSession__coll__graph.map delete mode 100644 html/classcore_1_1TCPSession__coll__graph.md5 delete mode 100644 html/classcore_1_1TCPSession__coll__graph.png delete mode 100644 html/classcore_1_1TCPSession__inherit__graph.map delete mode 100644 html/classcore_1_1TCPSession__inherit__graph.md5 delete mode 100644 html/classcore_1_1TCPSession__inherit__graph.png delete mode 100644 html/classcore_1_1TCPSocket-members.html delete mode 100644 html/classcore_1_1TCPSocket.html delete mode 100644 html/classcore_1_1TCPSocket__coll__graph.map delete mode 100644 html/classcore_1_1TCPSocket__coll__graph.md5 delete mode 100644 html/classcore_1_1TCPSocket__coll__graph.png delete mode 100644 html/classcore_1_1TCPSocket__inherit__graph.map delete mode 100644 html/classcore_1_1TCPSocket__inherit__graph.md5 delete mode 100644 html/classcore_1_1TCPSocket__inherit__graph.png delete mode 100644 html/classcore_1_1TLSServer-members.html delete mode 100644 html/classcore_1_1TLSServer.html delete mode 100644 html/classcore_1_1TLSServer__coll__graph.map delete mode 100644 html/classcore_1_1TLSServer__coll__graph.md5 delete mode 100644 html/classcore_1_1TLSServer__coll__graph.png delete mode 100644 html/classcore_1_1TLSServer__inherit__graph.map delete mode 100644 html/classcore_1_1TLSServer__inherit__graph.md5 delete mode 100644 html/classcore_1_1TLSServer__inherit__graph.png delete mode 100644 html/classcore_1_1TLSSession-members.html delete mode 100644 html/classcore_1_1TLSSession.html delete mode 100644 html/classcore_1_1TLSSession__coll__graph.map delete mode 100644 html/classcore_1_1TLSSession__coll__graph.md5 delete mode 100644 html/classcore_1_1TLSSession__coll__graph.png delete mode 100644 html/classcore_1_1TLSSession__inherit__graph.map delete mode 100644 html/classcore_1_1TLSSession__inherit__graph.md5 delete mode 100644 html/classcore_1_1TLSSession__inherit__graph.png delete mode 100644 html/classcore_1_1TerminalSession-members.html delete mode 100644 html/classcore_1_1TerminalSession.html delete mode 100644 html/classcore_1_1TerminalSession__coll__graph.map delete mode 100644 html/classcore_1_1TerminalSession__coll__graph.md5 delete mode 100644 html/classcore_1_1TerminalSession__coll__graph.png delete mode 100644 html/classcore_1_1TerminalSession__inherit__graph.map delete mode 100644 html/classcore_1_1TerminalSession__inherit__graph.md5 delete mode 100644 html/classcore_1_1TerminalSession__inherit__graph.png delete mode 100644 html/classcore_1_1Thread-members.html delete mode 100644 html/classcore_1_1Thread.html delete mode 100644 html/classcore_1_1ThreadScope-members.html delete mode 100644 html/classcore_1_1ThreadScope.html delete mode 100644 html/classcore_1_1Thread__coll__graph.map delete mode 100644 html/classcore_1_1Thread__coll__graph.md5 delete mode 100644 html/classcore_1_1Thread__coll__graph.png delete mode 100644 html/classcore_1_1Thread__inherit__graph.map delete mode 100644 html/classcore_1_1Thread__inherit__graph.md5 delete mode 100644 html/classcore_1_1Thread__inherit__graph.png delete mode 100644 html/classcore_1_1Timer-members.html delete mode 100644 html/classcore_1_1Timer.html delete mode 100644 html/classcore_1_1Timer__coll__graph.map delete mode 100644 html/classcore_1_1Timer__coll__graph.md5 delete mode 100644 html/classcore_1_1Timer__coll__graph.png delete mode 100644 html/classcore_1_1Timer__inherit__graph.map delete mode 100644 html/classcore_1_1Timer__inherit__graph.md5 delete mode 100644 html/classcore_1_1Timer__inherit__graph.png delete mode 100644 html/classcore_1_1UDPServerSocket-members.html delete mode 100644 html/classcore_1_1UDPServerSocket.html delete mode 100644 html/classcore_1_1UDPServerSocket__coll__graph.map delete mode 100644 html/classcore_1_1UDPServerSocket__coll__graph.md5 delete mode 100644 html/classcore_1_1UDPServerSocket__coll__graph.png delete mode 100644 html/classcore_1_1UDPServerSocket__inherit__graph.map delete mode 100644 html/classcore_1_1UDPServerSocket__inherit__graph.md5 delete mode 100644 html/classcore_1_1UDPServerSocket__inherit__graph.png delete mode 100644 html/classcore_1_1UDPSocket-members.html delete mode 100644 html/classcore_1_1UDPSocket.html delete mode 100644 html/classcore_1_1UDPSocket__coll__graph.map delete mode 100644 html/classcore_1_1UDPSocket__coll__graph.md5 delete mode 100644 html/classcore_1_1UDPSocket__coll__graph.png delete mode 100644 html/classcore_1_1UDPSocket__inherit__graph.map delete mode 100644 html/classcore_1_1UDPSocket__inherit__graph.md5 delete mode 100644 html/classcore_1_1UDPSocket__inherit__graph.png delete mode 100644 html/classes.html delete mode 100644 html/closed.png delete mode 100644 html/doc.png delete mode 100644 html/doxygen.css delete mode 100644 html/doxygen.png delete mode 100644 html/doxygen.svg delete mode 100644 html/dynsections.js delete mode 100644 html/files.html delete mode 100644 html/folderclosed.png delete mode 100644 html/folderopen.png delete mode 100644 html/functions.html delete mode 100644 html/functions_func.html delete mode 100644 html/functions_vars.html delete mode 100644 html/graph_legend.html delete mode 100644 html/graph_legend.md5 delete mode 100644 html/graph_legend.png delete mode 100644 html/hierarchy.html delete mode 100644 html/index.html delete mode 100644 html/inherit_graph_0.map delete mode 100644 html/inherit_graph_0.md5 delete mode 100644 html/inherit_graph_0.png delete mode 100644 html/inherit_graph_1.map delete mode 100644 html/inherit_graph_1.md5 delete mode 100644 html/inherit_graph_1.png delete mode 100644 html/inherit_graph_2.map delete mode 100644 html/inherit_graph_2.md5 delete mode 100644 html/inherit_graph_2.png delete mode 100644 html/inherit_graph_3.map delete mode 100644 html/inherit_graph_3.md5 delete mode 100644 html/inherit_graph_3.png delete mode 100644 html/inherit_graph_4.map delete mode 100644 html/inherit_graph_4.md5 delete mode 100644 html/inherit_graph_4.png delete mode 100644 html/inherits.html delete mode 100644 html/jquery.js delete mode 100644 html/menu.js delete mode 100644 html/menudata.js delete mode 100644 html/nav_f.png delete mode 100644 html/nav_g.png delete mode 100644 html/nav_h.png delete mode 100644 html/open.png delete mode 100644 html/search/all_0.html delete mode 100644 html/search/all_0.js delete mode 100644 html/search/all_1.html delete mode 100644 html/search/all_1.js delete mode 100644 html/search/all_2.html delete mode 100644 html/search/all_2.js delete mode 100644 html/search/all_3.html delete mode 100644 html/search/all_3.js delete mode 100644 html/search/all_4.html delete mode 100644 html/search/all_4.js delete mode 100644 html/search/all_5.html delete mode 100644 html/search/all_5.js delete mode 100644 html/search/all_6.html delete mode 100644 html/search/all_6.js delete mode 100644 html/search/all_7.html delete mode 100644 html/search/all_7.js delete mode 100644 html/search/all_8.html delete mode 100644 html/search/all_8.js delete mode 100644 html/search/all_9.html delete mode 100644 html/search/all_9.js delete mode 100644 html/search/all_a.html delete mode 100644 html/search/all_a.js delete mode 100644 html/search/all_b.html delete mode 100644 html/search/all_b.js delete mode 100644 html/search/all_c.html delete mode 100644 html/search/all_c.js delete mode 100644 html/search/all_d.html delete mode 100644 html/search/all_d.js delete mode 100644 html/search/all_e.html delete mode 100644 html/search/all_e.js delete mode 100644 html/search/classes_0.html delete mode 100644 html/search/classes_0.js delete mode 100644 html/search/classes_1.html delete mode 100644 html/search/classes_1.js delete mode 100644 html/search/classes_2.html delete mode 100644 html/search/classes_2.js delete mode 100644 html/search/classes_3.html delete mode 100644 html/search/classes_3.js delete mode 100644 html/search/classes_4.html delete mode 100644 html/search/classes_4.js delete mode 100644 html/search/classes_5.html delete mode 100644 html/search/classes_5.js delete mode 100644 html/search/classes_6.html delete mode 100644 html/search/classes_6.js delete mode 100644 html/search/close.png delete mode 100644 html/search/close.svg delete mode 100644 html/search/functions_0.html delete mode 100644 html/search/functions_0.js delete mode 100644 html/search/functions_1.html delete mode 100644 html/search/functions_1.js delete mode 100644 html/search/functions_2.html delete mode 100644 html/search/functions_2.js delete mode 100644 html/search/functions_3.html delete mode 100644 html/search/functions_3.js delete mode 100644 html/search/functions_4.html delete mode 100644 html/search/functions_4.js delete mode 100644 html/search/functions_5.html delete mode 100644 html/search/functions_5.js delete mode 100644 html/search/functions_6.html delete mode 100644 html/search/functions_6.js delete mode 100644 html/search/functions_7.html delete mode 100644 html/search/functions_7.js delete mode 100644 html/search/functions_8.html delete mode 100644 html/search/functions_8.js delete mode 100644 html/search/functions_9.html delete mode 100644 html/search/functions_9.js delete mode 100644 html/search/functions_a.html delete mode 100644 html/search/functions_a.js delete mode 100644 html/search/functions_b.html delete mode 100644 html/search/functions_b.js delete mode 100644 html/search/functions_c.html delete mode 100644 html/search/functions_c.js delete mode 100644 html/search/mag_sel.png delete mode 100644 html/search/mag_sel.svg delete mode 100644 html/search/nomatches.html delete mode 100644 html/search/search.css delete mode 100644 html/search/search.js delete mode 100644 html/search/search_l.png delete mode 100644 html/search/search_m.png delete mode 100644 html/search/search_r.png delete mode 100644 html/search/searchdata.js delete mode 100644 html/search/variables_0.html delete mode 100644 html/search/variables_0.js delete mode 100644 html/search/variables_1.html delete mode 100644 html/search/variables_1.js delete mode 100644 html/search/variables_2.html delete mode 100644 html/search/variables_2.js delete mode 100644 html/search/variables_3.html delete mode 100644 html/search/variables_3.js delete mode 100644 html/search/variables_4.html delete mode 100644 html/search/variables_4.js delete mode 100644 html/search/variables_5.html delete mode 100644 html/search/variables_5.js delete mode 100644 html/splitbar.png delete mode 100644 html/sync_off.png delete mode 100644 html/sync_on.png delete mode 100644 html/tab_a.png delete mode 100644 html/tab_b.png delete mode 100644 html/tab_h.png delete mode 100644 html/tab_s.png delete mode 100644 html/tabs.css delete mode 100644 latex/Makefile delete mode 100644 latex/annotated.tex delete mode 100644 latex/classcore_1_1Command.tex delete mode 100644 latex/classcore_1_1CommandList.tex delete mode 100644 latex/classcore_1_1CommandList__coll__graph.md5 delete mode 100644 latex/classcore_1_1CommandList__coll__graph.pdf delete mode 100644 latex/classcore_1_1CommandList__inherit__graph.md5 delete mode 100644 latex/classcore_1_1CommandList__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Command__coll__graph.md5 delete mode 100644 latex/classcore_1_1Command__coll__graph.pdf delete mode 100644 latex/classcore_1_1Command__inherit__graph.md5 delete mode 100644 latex/classcore_1_1Command__inherit__graph.pdf delete mode 100644 latex/classcore_1_1ConsoleServer.tex delete mode 100644 latex/classcore_1_1ConsoleServer__coll__graph.md5 delete mode 100644 latex/classcore_1_1ConsoleServer__coll__graph.pdf delete mode 100644 latex/classcore_1_1ConsoleServer__inherit__graph.md5 delete mode 100644 latex/classcore_1_1ConsoleServer__inherit__graph.pdf delete mode 100644 latex/classcore_1_1ConsoleSession.tex delete mode 100644 latex/classcore_1_1ConsoleSession__coll__graph.md5 delete mode 100644 latex/classcore_1_1ConsoleSession__coll__graph.pdf delete mode 100644 latex/classcore_1_1ConsoleSession__inherit__graph.md5 delete mode 100644 latex/classcore_1_1ConsoleSession__inherit__graph.pdf delete mode 100644 latex/classcore_1_1EPoll.tex delete mode 100644 latex/classcore_1_1EPoll__coll__graph.md5 delete mode 100644 latex/classcore_1_1EPoll__coll__graph.pdf delete mode 100644 latex/classcore_1_1EPoll__inherit__graph.md5 delete mode 100644 latex/classcore_1_1EPoll__inherit__graph.pdf delete mode 100644 latex/classcore_1_1INotify.tex delete mode 100644 latex/classcore_1_1INotify__coll__graph.md5 delete mode 100644 latex/classcore_1_1INotify__coll__graph.pdf delete mode 100644 latex/classcore_1_1INotify__inherit__graph.md5 delete mode 100644 latex/classcore_1_1INotify__inherit__graph.pdf delete mode 100644 latex/classcore_1_1IPAddress.tex delete mode 100644 latex/classcore_1_1IPAddressList.tex delete mode 100644 latex/classcore_1_1IPAddress__coll__graph.md5 delete mode 100644 latex/classcore_1_1IPAddress__coll__graph.pdf delete mode 100644 latex/classcore_1_1IPAddress__inherit__graph.md5 delete mode 100644 latex/classcore_1_1IPAddress__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Object.tex delete mode 100644 latex/classcore_1_1Object__inherit__graph.md5 delete mode 100644 latex/classcore_1_1Object__inherit__graph.pdf delete mode 100644 latex/classcore_1_1SessionFilter.tex delete mode 100644 latex/classcore_1_1SessionFilter__coll__graph.md5 delete mode 100644 latex/classcore_1_1SessionFilter__coll__graph.pdf delete mode 100644 latex/classcore_1_1SessionFilter__inherit__graph.md5 delete mode 100644 latex/classcore_1_1SessionFilter__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Socket.tex delete mode 100644 latex/classcore_1_1Socket__coll__graph.md5 delete mode 100644 latex/classcore_1_1Socket__coll__graph.pdf delete mode 100644 latex/classcore_1_1Socket__inherit__graph.md5 delete mode 100644 latex/classcore_1_1Socket__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Subscription.tex delete mode 100644 latex/classcore_1_1SubscriptionManager.tex delete mode 100644 latex/classcore_1_1SubscriptionManager__coll__graph.md5 delete mode 100644 latex/classcore_1_1SubscriptionManager__coll__graph.pdf delete mode 100644 latex/classcore_1_1SubscriptionManager__inherit__graph.md5 delete mode 100644 latex/classcore_1_1SubscriptionManager__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Subscription__coll__graph.md5 delete mode 100644 latex/classcore_1_1Subscription__coll__graph.pdf delete mode 100644 latex/classcore_1_1Subscription__inherit__graph.md5 delete mode 100644 latex/classcore_1_1Subscription__inherit__graph.pdf delete mode 100644 latex/classcore_1_1TCPServer.tex delete mode 100644 latex/classcore_1_1TCPServer__coll__graph.md5 delete mode 100644 latex/classcore_1_1TCPServer__coll__graph.pdf delete mode 100644 latex/classcore_1_1TCPServer__inherit__graph.md5 delete mode 100644 latex/classcore_1_1TCPServer__inherit__graph.pdf delete mode 100644 latex/classcore_1_1TCPSession.tex delete mode 100644 latex/classcore_1_1TCPSession__coll__graph.md5 delete mode 100644 latex/classcore_1_1TCPSession__coll__graph.pdf delete mode 100644 latex/classcore_1_1TCPSession__inherit__graph.md5 delete mode 100644 latex/classcore_1_1TCPSession__inherit__graph.pdf delete mode 100644 latex/classcore_1_1TCPSocket.tex delete mode 100644 latex/classcore_1_1TCPSocket__coll__graph.md5 delete mode 100644 latex/classcore_1_1TCPSocket__coll__graph.pdf delete mode 100644 latex/classcore_1_1TCPSocket__inherit__graph.md5 delete mode 100644 latex/classcore_1_1TCPSocket__inherit__graph.pdf delete mode 100644 latex/classcore_1_1TLSServer.tex delete mode 100644 latex/classcore_1_1TLSServer__coll__graph.md5 delete mode 100644 latex/classcore_1_1TLSServer__coll__graph.pdf delete mode 100644 latex/classcore_1_1TLSServer__inherit__graph.md5 delete mode 100644 latex/classcore_1_1TLSServer__inherit__graph.pdf delete mode 100644 latex/classcore_1_1TLSSession.tex delete mode 100644 latex/classcore_1_1TLSSession__coll__graph.md5 delete mode 100644 latex/classcore_1_1TLSSession__coll__graph.pdf delete mode 100644 latex/classcore_1_1TLSSession__inherit__graph.md5 delete mode 100644 latex/classcore_1_1TLSSession__inherit__graph.pdf delete mode 100644 latex/classcore_1_1TerminalSession.tex delete mode 100644 latex/classcore_1_1TerminalSession__coll__graph.md5 delete mode 100644 latex/classcore_1_1TerminalSession__coll__graph.pdf delete mode 100644 latex/classcore_1_1TerminalSession__inherit__graph.md5 delete mode 100644 latex/classcore_1_1TerminalSession__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Thread.tex delete mode 100644 latex/classcore_1_1ThreadScope.tex delete mode 100644 latex/classcore_1_1Thread__coll__graph.md5 delete mode 100644 latex/classcore_1_1Thread__coll__graph.pdf delete mode 100644 latex/classcore_1_1Thread__inherit__graph.md5 delete mode 100644 latex/classcore_1_1Thread__inherit__graph.pdf delete mode 100644 latex/classcore_1_1Timer.tex delete mode 100644 latex/classcore_1_1Timer__coll__graph.md5 delete mode 100644 latex/classcore_1_1Timer__coll__graph.pdf delete mode 100644 latex/classcore_1_1Timer__inherit__graph.md5 delete mode 100644 latex/classcore_1_1Timer__inherit__graph.pdf delete mode 100644 latex/classcore_1_1UDPServerSocket.tex delete mode 100644 latex/classcore_1_1UDPServerSocket__coll__graph.md5 delete mode 100644 latex/classcore_1_1UDPServerSocket__coll__graph.pdf delete mode 100644 latex/classcore_1_1UDPServerSocket__inherit__graph.md5 delete mode 100644 latex/classcore_1_1UDPServerSocket__inherit__graph.pdf delete mode 100644 latex/classcore_1_1UDPSocket.tex delete mode 100644 latex/classcore_1_1UDPSocket__coll__graph.md5 delete mode 100644 latex/classcore_1_1UDPSocket__coll__graph.pdf delete mode 100644 latex/classcore_1_1UDPSocket__inherit__graph.md5 delete mode 100644 latex/classcore_1_1UDPSocket__inherit__graph.pdf delete mode 100644 latex/doxygen.sty delete mode 100644 latex/hierarchy.tex delete mode 100644 latex/longtable_doxygen.sty delete mode 100644 latex/refman.tex delete mode 100644 latex/tabu_doxygen.sty diff --git a/html/CommandList_8h_source.html b/html/CommandList_8h_source.html deleted file mode 100644 index 4ed110d..0000000 --- a/html/CommandList_8h_source.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -My Project: CommandList.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
CommandList.h
-
-
-
1 #ifndef __CommandList_h__
-
2 #define __CommandList_h__
-
3 
-
4 #include "TCPSession.h"
-
5 #include "Command.h"
-
6 #include "Log.h"
-
7 
-
8 namespace core {
-
9 
-
17 
-
18  class CommandList : public Command {
-
19 
-
20  public:
-
21 
-
22  CommandList(std::string delimiter = "", int depth = 0);
-
23 
-
27 
-
28  void add(Command &command, std::string name = "");
-
29 
-
33 
-
34  void remove(Command &command);
-
35 
-
42 
-
43  bool processRequest(coreutils::ZString &request, TCPSession &session);
-
44 
-
50 
-
51  bool grabInput(TCPSession &session, Command &command);
-
52 
-
56 
-
57  void clearGrab(TCPSession &session);
-
58 
-
62 
-
63  int processCommand(coreutils::ZString &request, TCPSession &session);
-
64 
-
65  protected:
-
66 
-
70 
-
71  std::map<std::string, Command *> commands;
-
72  std::string delimiter;
-
73  int depth;
-
74 
-
75  };
-
76 
-
77 }
-
78 
-
79 #endif
-
Definition: CommandList.h:18
-
int processCommand(coreutils::ZString &request, TCPSession &session)
Definition: CommandList.cpp:42
-
bool grabInput(TCPSession &session, Command &command)
Definition: CommandList.cpp:33
-
void add(Command &command, std::string name="")
Definition: CommandList.cpp:8
-
bool processRequest(coreutils::ZString &request, TCPSession &session)
Definition: CommandList.cpp:14
-
void remove(Command &command)
Definition: CommandList.cpp:12
-
std::map< std::string, Command * > commands
Definition: CommandList.h:71
-
Definition: Command.h:22
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/Command_8h_source.html b/html/Command_8h_source.html deleted file mode 100644 index 9c0b13e..0000000 --- a/html/Command_8h_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: Command.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Command.h
-
-
-
1 #ifndef __Command_h__
-
2 #define __Command_h__
-
3 
-
4 #include "includes"
-
5 #include "Object.h"
-
6 #include "TCPSession.h"
-
7 #include "ZString.h"
-
8 
-
9 namespace core {
-
10 
-
11  class CommandList;
-
12 
-
13  class Session;
-
14 
-
21 
-
22  class Command {
-
23 
-
24  public:
-
25 
-
36 
-
37  virtual int processCommand(coreutils::ZString &request, TCPSession &session);
-
38 
-
44 
-
45  virtual void output(std::stringstream &out);
-
46 
-
47  };
-
48 
-
49 }
-
50 
-
51 #endif
-
Definition: Command.h:22
-
virtual int processCommand(coreutils::ZString &request, TCPSession &session)
Definition: Command.cpp:7
-
virtual void output(std::stringstream &out)
Definition: Command.cpp:11
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/ConsoleServer_8h_source.html b/html/ConsoleServer_8h_source.html deleted file mode 100644 index bb44490..0000000 --- a/html/ConsoleServer_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: ConsoleServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
ConsoleServer.h
-
-
-
1 #ifndef __ConsoleServer_h__
-
2 #define __ConsoleServer_h__
-
3 
-
4 #include "includes"
-
5 #include "TLSServer.h"
-
6 #include "Command.h"
-
7 #include "EPoll.h"
-
8 #include "LogListener.h"
-
9 
-
10 namespace core {
-
11 
-
12  class TCPSocket;
-
13  class TCPSession;
-
14 
-
18 
-
19  class ConsoleServer : public TCPServer, public coreutils::LogListener {
-
20 
-
21  public:
-
22 
-
23  //
-
24  //
-
25  //
-
26 
-
27  ConsoleServer(EPoll &ePoll, IPAddress address);
-
28 
-
29  //
-
30  //
-
31  //
-
32 
-
33  void logSend(std::string out) override;
-
34 
-
35  TCPSession * getSocketAccept(EPoll &ePoll) override;
-
36 
-
37  };
-
38 
-
39 }
-
40 
-
41 #endif
-
Definition: ConsoleServer.h:19
-
TCPSession * getSocketAccept(EPoll &ePoll) override
Definition: ConsoleServer.cpp:17
-
Definition: EPoll.h:31
-
Definition: IPAddress.h:9
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/ConsoleSession_8h_source.html b/html/ConsoleSession_8h_source.html deleted file mode 100644 index 9dfb454..0000000 --- a/html/ConsoleSession_8h_source.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -My Project: ConsoleSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
ConsoleSession.h
-
-
-
1 #ifndef __ConsoleSession_h__
-
2 #define __ConsoleSession_h__
-
3 
-
4 #include "TerminalSession.h"
-
5 //#include "TCPServer.h"
-
6 #include "CommandList.h"
-
7 
-
8 namespace core {
-
9 
-
10  class TCPServer;
-
11 
-
19 
- -
21 
-
22  public:
-
23  ConsoleSession(EPoll &ePoll, TCPServer &server);
-
24  ~ConsoleSession();
-
25 
-
26  void writeLog(std::string data);
-
27 
-
28  protected:
-
29  void protocol(coreutils::ZString &data) override;
-
30 
-
31  private:
-
32  enum Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};
-
33  Status status = WELCOME;
-
34  void doCommand(coreutils::ZString &request);
-
35  coreutils::ZString command;
-
36 
-
37  };
-
38 
-
39 }
-
40 
-
41 #endif
-
Definition: ConsoleSession.h:20
-
void protocol(coreutils::ZString &data) override
Definition: ConsoleSession.cpp:11
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TerminalSession.h:30
-
- - - - diff --git a/html/EPoll_8h_source.html b/html/EPoll_8h_source.html deleted file mode 100644 index 757633f..0000000 --- a/html/EPoll_8h_source.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -My Project: EPoll.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
EPoll.h
-
-
-
1 #ifndef __EPoll_h__
-
2 #define __EPoll_h__
-
3 
-
4 #include "Log.h"
-
5 #include "Socket.h"
-
6 #include "Thread.h"
-
7 #include "TCPSession.h"
-
8 #include "Command.h"
-
9 
-
10 namespace core {
-
11 
-
30 
-
31  class EPoll : public Command {
-
32 
-
33  public:
-
34 
-
38 
-
39  EPoll();
-
40 
-
44 
-
45  ~EPoll();
-
46 
-
53 
-
54  bool start(int numberOfThreads, int maxSockets);
-
55 
-
61 
-
62  bool stop();
-
63 
-
68 
-
69  bool isStopping();
-
70 
-
79 
-
80  bool registerSocket(Socket *socket);
-
81 
-
85 
-
86  bool unregisterSocket(Socket *socket);
-
87 
-
91 
-
92  int getDescriptor();
-
93 
-
97 
-
98  int maxSockets;
-
99 
-
103 
-
104  void eventReceived(struct epoll_event event);
-
105 
-
112 
-
113  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
114 
-
115  void resetSocket(Socket *socket);
-
116 
-
117  private:
-
118 
-
119  int epfd;
-
120  int numberOfThreads;
-
121  std::vector<Thread> threads;
-
122  volatile bool terminateThreads;
-
123  void enableSocket(Socket *socket);
-
124  void disableSocket(Socket *socket);
-
125 
-
126  };
-
127 
-
128 }
-
129 
-
130 #endif
-
131 
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
bool stop()
Stop and shut down the BMAEPoll processing.
Definition: EPoll.cpp:46
-
int getDescriptor()
Return the descriptor for the ePoll socket.
Definition: EPoll.cpp:80
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Output the threads array to the console.
Definition: EPoll.cpp:84
-
EPoll()
Definition: EPoll.cpp:9
-
bool isStopping()
Returns a true if the stop command has been requested.
Definition: EPoll.cpp:66
-
void eventReceived(struct epoll_event event)
Dispatch event to appropriate socket.
-
bool registerSocket(Socket *socket)
Register a BMASocket for monitoring by BMAEPoll.
Definition: EPoll.cpp:70
-
bool unregisterSocket(Socket *socket)
Unregister a BMASocket from monitoring by BMAEPoll.
Definition: EPoll.cpp:75
-
~EPoll()
Definition: EPoll.cpp:18
-
bool start(int numberOfThreads, int maxSockets)
Start the BMAEPoll processing.
Definition: EPoll.cpp:20
-
int maxSockets
The maximum number of socket allowed.
Definition: EPoll.h:98
-
Definition: Socket.h:34
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/INotify_8h_source.html b/html/INotify_8h_source.html deleted file mode 100644 index 1f79a59..0000000 --- a/html/INotify_8h_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -My Project: INotify.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
INotify.h
-
-
-
1 #ifndef __INotify_h__
-
2 # define __INotify_h__
-
3 
-
4 #include "includes"
-
5 #include "Socket.h"
-
6 
-
7 namespace core {
-
8 
-
9  class INotify : Socket {
-
10 
-
11  public:
-
12  INotify(EPoll &ePoll);
-
13  ~INotify();
-
14 
-
15  int addWatch(std::string watch);
-
16  void removeWatch(int wd);
-
17 
-
18  void onDataReceived(coreutils::ZString &data) override;
-
19 
-
20  virtual void inAccess(std::string name) {}
-
21  virtual void inAttrib(std::string name) {}
-
22  virtual void inCloseWrite(std::string name) {}
-
23  virtual void inCloseNoWrite(std::string name) {}
-
24  virtual void inCreate(std::string name) {}
-
25  virtual void inDelete(std::string name) {}
-
26  virtual void inDeleteSelf(std::string name) {}
-
27  virtual void inModify(std::string name) {}
-
28  virtual void inMoveSelf(std::string name) {}
-
29  virtual void inMovedFrom(std::string name) {}
-
30  virtual void inMovedTo(std::string name) {}
-
31  virtual void inOpen(std::string name) {}
-
32 
-
33  };
-
34 
-
35 }
-
36 
-
37 #endif
-
Definition: EPoll.h:31
-
Definition: INotify.h:9
-
Definition: Socket.h:34
-
- - - - diff --git a/html/IPAddressList_8h_source.html b/html/IPAddressList_8h_source.html deleted file mode 100644 index 09eb44b..0000000 --- a/html/IPAddressList_8h_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -My Project: IPAddressList.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
IPAddressList.h
-
-
-
1 #ifndef __IPAddressList_h__
-
2 #define __IPAddressList_h__
-
3 
-
4 #include "includes"
-
5 #include "IPAddress.h"
-
6 
-
7 namespace core {
-
8 
-
9  class IPAddressList {
-
10 
-
11  public:
-
12  IPAddressList();
-
13 
-
14  std::map<std::string, IPAddress> getList();
-
15  void add(IPAddress ipAddress);
-
16  bool remove(IPAddress ipAddress);
-
17  bool contains(std::string ipAddress);
-
18 
-
19  private:
-
20  std::map<std::string, IPAddress> list;
-
21  std::map<std::string, IPAddress>::iterator it = list.begin();
-
22  };
-
23 
-
24 }
-
25 
-
26 #endif
-
Definition: IPAddressList.h:9
-
Definition: IPAddress.h:9
-
- - - - diff --git a/html/IPAddress_8h_source.html b/html/IPAddress_8h_source.html deleted file mode 100644 index 376e6e9..0000000 --- a/html/IPAddress_8h_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: IPAddress.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
IPAddress.h
-
-
-
1 #ifndef __IPAddress_h__
-
2 #define __IPAddress_h__
-
3 
-
4 #include "includes"
-
5 #include "Object.h"
-
6 
-
7 namespace core {
-
8 
-
9  class IPAddress : public Object {
-
10 
-
11  public:
-
12  IPAddress();
-
13  IPAddress(std::string address);
-
14  IPAddress(std::string address, int port);
-
15  ~IPAddress();
-
16 
-
17  struct sockaddr_in addr;
-
18  socklen_t addressLength;
-
19 
-
20  struct sockaddr * getPointer();
-
21  std::string getClientAddress();
-
22  std::string getClientAddressAndPort();
-
23  int getClientPort();
-
24 
-
25  };
-
26 
-
27 }
-
28 
-
29 #endif
-
Definition: IPAddress.h:9
-
int getClientPort()
Get the client network port number.
Definition: IPAddress.cpp:47
-
std::string getClientAddressAndPort()
Get the client network address and port as xxx.xxx.xxx.xxx:ppppp.
Definition: IPAddress.cpp:40
-
std::string getClientAddress()
Get the client network address as xxx.xxx.xxx.xxx.
Definition: IPAddress.cpp:35
-
Definition: Object.h:8
-
- - - - diff --git a/html/Object_8h_source.html b/html/Object_8h_source.html deleted file mode 100644 index fa76d45..0000000 --- a/html/Object_8h_source.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Object.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Object.h
-
-
-
1 #ifndef __Object_h__
-
2 #define __Object_h__
-
3 
-
4 #include "includes"
-
5 
-
6 namespace core {
-
7 
-
8  class Object {
-
9 
-
10  public:
-
11 
-
12  std::string name;
-
13  std::string tag;
-
14 
-
15  };
-
16 
-
17 }
-
18 
-
19 #endif
-
Definition: Object.h:8
-
- - - - diff --git a/html/SessionFilter_8h_source.html b/html/SessionFilter_8h_source.html deleted file mode 100644 index 8c67946..0000000 --- a/html/SessionFilter_8h_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -My Project: SessionFilter.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
SessionFilter.h
-
-
-
1 #ifndef __SessionFilter_h__
-
2 #define __SessionFilter_h__
-
3 
-
4 //#include "Session.h"
-
5 
-
6 namespace core {
-
7 
-
8  class TCPSession;
-
9 
-
10  class SessionFilter : public Object {
-
11 
-
12  public:
-
13  virtual bool test(TCPSession &session) {
-
14  return true;
-
15  }
-
16 
-
17  };
-
18 
-
19 }
-
20 
-
21 #endif
-
Definition: Object.h:8
-
Definition: SessionFilter.h:10
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/Socket_8h_source.html b/html/Socket_8h_source.html deleted file mode 100644 index 1be47c5..0000000 --- a/html/Socket_8h_source.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -My Project: Socket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Socket.h
-
-
-
1 #ifndef __Socket_h__
-
2 #define __Socket_h__
-
3 
-
4 #include "includes"
-
5 #include "Object.h"
-
6 #include "ZString.h"
-
7 
-
8 namespace core {
-
9 
-
10  class EPoll;
-
11 
-
33 
-
34  class Socket {
-
35 
-
36  public:
-
37 
-
44 
-
45  Socket(EPoll &ePoll, std::string text = "");
-
46 
-
50 
-
51  virtual ~Socket();
-
52 
-
58 
-
59  void shutdown(std::string text = "unknown");
-
60 
-
65 
-
66  void setDescriptor(int descriptor);
-
67 
-
68  int getDescriptor();
-
69 
-
82 
-
83  bool eventReceived(struct epoll_event event);
-
84 
-
88 
-
89  int write(std::string data);
-
90  void write(char *buffer, int length);
-
91 
-
92  void output(std::stringstream &out);
-
93 
-
100 
-
101  virtual void onRegister();
-
102  virtual void onRegistered();
-
103 
-
104  virtual void onUnregister();
-
105 
-
112 
-
113  virtual void onUnregistered();
-
114 
-
115  bool needsToWrite();
-
116 
-
117  bool reset = false;
-
118 
-
119  protected:
-
120 
-
121  EPoll &ePoll; // The EPoll control object.
-
122 
-
123  bool shutDown = false;
-
124 
-
125  void setBufferSize(int length);
-
126 
-
127  int getBufferSize();
-
128 
-
134 
-
135 // virtual void onConnected(); ///< Called when socket is open and ready to communicate.
-
136 
-
140 
-
141 // virtual void onDisconnected(); ///< Called when socket is closing and no longer ready to communicate.
-
142 
-
150 
-
151  virtual void onDataReceived(std::string data);
-
152 
-
156 
-
157  virtual void onDataReceived(coreutils::ZString &data);
-
158 
-
163 
-
164  virtual void receiveData(coreutils::ZString &buffer);
-
165 
-
166  private:
-
167 
-
168  std::string text;
-
169  int descriptor = -1;
-
170 // std::mutex lock;
-
171  std::mutex outlock;
-
172  bool readHangup = false;
-
173  bool inHandler = false;
-
174 // struct epoll_event event; // Event selection construction structure.
-
175 
-
176  //-------------------------------------------------------------------------------------
-
177  // the writeSocket is called when epoll has received a write request for a socket.
-
178  // Writing data to this socket is queued in the streambuf and permission is requested
-
179  // to write to the socket. This routine handles the writing of the streambuf data
-
180  // buffer to the socket.
-
181  //-------------------------------------------------------------------------------------
-
182 
-
183  void writeSocket();
-
184 
-
185  // int_type underflow();
-
186 // int_type uflow();
-
187 // int_type pbackfail(int_type ch);
-
188 // streamsize showmanyc();
-
189 
-
190  char *buffer; // This is a pointer to the managed buffer space.
-
191  int length; // This is the length of the buffer.
-
192 
-
193 // const char * const begin_;
-
194 // const char * const end_;
-
195 // const char * const current_;
-
196 
-
197  std::queue<std::string> fifo;
-
198 
-
199  };
-
200 
-
201 }
-
202 
-
203 #endif
-
204 
-
Definition: EPoll.h:31
-
Definition: Socket.h:34
-
int getDescriptor()
Get the descriptor for the socket.
Definition: Socket.cpp:41
-
int write(std::string data)
Definition: Socket.cpp:138
-
virtual void onRegistered()
Called after the socket has been registered with epoll processing.
Definition: Socket.cpp:57
-
virtual void receiveData(coreutils::ZString &buffer)
Definition: Socket.cpp:91
-
Socket(EPoll &ePoll, std::string text="")
Definition: Socket.cpp:11
-
bool eventReceived(struct epoll_event event)
Parse epoll event and call specified callbacks.
Definition: Socket.cpp:63
-
virtual void onRegister()
Called before the socket has registered with the epoll processing.
Definition: Socket.cpp:55
-
virtual ~Socket()
Definition: Socket.cpp:17
-
void setDescriptor(int descriptor)
Set the descriptor for the socket.
Definition: Socket.cpp:27
-
virtual void onDataReceived(std::string data)
Called when data is received from the socket.
Definition: Socket.cpp:83
-
virtual void onUnregistered()
Called when the socket has finished unregistering for the epoll processing.
Definition: Socket.cpp:61
-
void shutdown(std::string text="unknown")
Definition: Socket.cpp:155
-
- - - - diff --git a/html/SubscriptionManager_8h_source.html b/html/SubscriptionManager_8h_source.html deleted file mode 100644 index d947d5e..0000000 --- a/html/SubscriptionManager_8h_source.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -My Project: SubscriptionManager.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
SubscriptionManager.h
-
-
-
1 #ifndef __SubscriptionManager_h__
-
2 #define __SubscriptionManager_h__
-
3 
-
4 #include "TCPSession.h"
-
5 #include "Subscription.h"
-
6 #include "Command.h"
-
7 #include "ZString.h"
-
8 #include <vector>
-
9 #include <string>
-
10 
-
11 namespace core {
-
12 
-
13  class SubscriptionManager : public Command {
-
14 
-
15  public:
- -
17 
-
18  int add(Subscription &subscription);
-
19 
-
20  int removeSessionSubscriptions(TCPSession &session);
-
21 
-
22  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
23 
-
24  private:
-
25  std::map<std::string, Subscription *> subscriptions;
-
26  std::mutex lock;
-
27 
-
28  };
-
29 }
-
30 
-
31 #endif
-
Definition: Command.h:22
-
Definition: SubscriptionManager.h:13
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: SubscriptionManager.cpp:44
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/Subscription_8h_source.html b/html/Subscription_8h_source.html deleted file mode 100644 index 76584a9..0000000 --- a/html/Subscription_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: Subscription.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Subscription.h
-
-
-
1 #ifndef __Subscription_h__
-
2 #define __Subscription_h__
-
3 
-
4 #include "ZString.h"
-
5 #include <vector>
-
6 #include <string>
-
7 
-
8 namespace core
-
9 {
-
10 
-
11  class TCPSession;
-
12 
- -
14  {
-
15 
-
16  public:
-
17  Subscription(std::string id, std::string mode = "*AUTHOR");
-
18  Subscription(std::string id, TCPSession &session, std::string mode = "*AUTHOR");
-
19  virtual ~Subscription();
-
20 
-
21  int subscribe(TCPSession &session);
-
22  int unsubscribe(TCPSession &session);
-
23 
-
24  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session);
-
25 
-
26  virtual int onSubscribe(TCPSession &session);
-
27 
-
28  int event(std::stringstream &out);
-
29 
-
30  bool ifSubscriber(TCPSession &session);
-
31 
-
32  // int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
33 
-
34  std::string id;
-
35  std::string mode;
-
36  TCPSession *owner;
-
37 
-
38  std::vector<TCPSession *> subscribers;
-
39  };
-
40 }
-
41 
-
42 #endif
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:24
-
- - - - diff --git a/html/TCPServer_8h_source.html b/html/TCPServer_8h_source.html deleted file mode 100644 index 35128ae..0000000 --- a/html/TCPServer_8h_source.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - -My Project: TCPServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPServer.h
-
-
-
1 #ifndef __TCPServer_h__
-
2 #define __TCPServer_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "TCPSocket.h"
-
6 #include "IPAddressList.h"
-
7 #include "Command.h"
-
8 #include "CommandList.h"
-
9 #include "SubscriptionManager.h"
-
10 
-
11 namespace core {
-
12 
-
24 
-
25  class TCPServer : public TCPSocket, public Command {
-
26 
-
27  public:
-
28 
-
37 
-
38  TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter = " ", int depth = 10, std::string text = "");
-
39 
-
43 
-
44  virtual ~TCPServer();
-
45 
-
46  virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
-
47 
-
55 
-
56  virtual TCPSession * getSocketAccept(EPoll &epoll);
-
57 
-
61 
-
62  std::vector<TCPSession *> sessions;
-
63 
-
68 
- -
70 
-
76 
- -
78 
-
84 
- -
86 
-
87  void removeFromSessionList(TCPSession *session);
-
88 
-
89  void output(std::stringstream &out);
-
90 
-
94 
-
95  void sendToAll(std::stringstream &out);
-
96 
-
101 
-
102  void sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter);
-
103 
-
109 
-
110  void sendToAll(std::stringstream &out, TCPSession &sender);
-
111 
-
115 
- -
117 
-
118  protected:
-
119 
-
129 
-
130  void onDataReceived(std::string data) override;
-
131 
-
138 
-
139  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
140 
-
141  private:
-
142 
-
143  TCPSession * accept();
-
144  std::mutex lock;
-
145 
-
146  };
-
147 
-
148 }
-
149 
-
150 #endif
-
Definition: CommandList.h:18
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: IPAddressList.h:9
-
Definition: IPAddress.h:9
-
Definition: SessionFilter.h:10
-
Definition: SubscriptionManager.h:13
-
Definition: TCPServer.h:25
-
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:36
-
SubscriptionManager subscriptions
Definition: TCPServer.h:116
-
void output(std::stringstream &out)
Output the consoles array to the console.
Definition: TCPServer.cpp:90
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: TCPServer.cpp:94
-
virtual ~TCPServer()
Definition: TCPServer.cpp:31
-
IPAddressList * blackList
Definition: TCPServer.h:77
-
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:86
-
IPAddressList * whiteList
Definition: TCPServer.h:85
-
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
Definition: TCPServer.cpp:9
-
std::vector< TCPSession * > sessions
Definition: TCPServer.h:62
-
CommandList commands
Definition: TCPServer.h:69
-
Definition: TCPSession.h:24
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSession_8h_source.html b/html/TCPSession_8h_source.html deleted file mode 100644 index cac4bce..0000000 --- a/html/TCPSession_8h_source.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -My Project: TCPSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPSession.h
-
-
-
1 #ifndef __Session_h__
-
2 # define __Session_h__
-
3 
-
4 #include "TCPSocket.h"
-
5 #include "SessionFilter.h"
-
6 
-
7 namespace core {
-
8 
-
9  class Command;
-
10  class TCPServer;
-
11 
-
23 
-
24  class TCPSession : public TCPSocket {
-
25 
-
26  public:
-
27 
-
31 
-
32  TCPSession(EPoll &ePoll, TCPServer &server, std::string text = "");
-
33 
-
37 
-
38  virtual ~TCPSession();
-
39 
-
40  Command *grab = NULL;
-
41 
-
42  virtual void output(std::stringstream &data);
-
43 
-
48 
-
49  void send();
-
50 
-
54 
-
55  void terminate();
-
56 
-
60 
-
61  TCPServer &server;
-
62 
-
66 
-
67  std::stringstream out;
-
68 
-
69  protected:
-
70 
-
74 
-
75  virtual void onRegistered() override;
-
76 
-
82  virtual void onDataReceived(coreutils::ZString &data) override;
-
83 
-
90 
-
91  virtual void onLineReceived(coreutils::ZString &line);
-
92 
-
99 
-
100  virtual void onBlockReceived(coreutils::ZString &block);
-
101 
-
107 
-
108  virtual void onConnected();
-
109 
-
119 
-
120  virtual void protocol(coreutils::ZString &data);
-
121 
-
127 
-
128  void setBlockSize(int size = 0);
-
129 
-
130  private:
-
131  char *lineBuffer = NULL;
-
132  int lineBufferSize = 0;
-
133  int lineLength = 0;
-
134  int blockLength = 0;
-
135  std::mutex mtx;
-
136  bool term = false;
-
137  int blockSize = 0;
-
138 
-
139  };
-
140 
-
141 }
-
142 
-
143 #endif
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
void send()
Definition: TCPSession.cpp:87
-
void terminate()
Definition: TCPSession.cpp:93
-
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:74
-
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:15
-
void setBlockSize(int size=0)
Definition: TCPSession.cpp:70
-
virtual void onConnected()
Definition: TCPSession.cpp:36
-
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:19
-
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:81
-
std::stringstream out
Definition: TCPSession.h:67
-
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:27
-
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:38
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSocket_8h_source.html b/html/TCPSocket_8h_source.html deleted file mode 100644 index d57da81..0000000 --- a/html/TCPSocket_8h_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -My Project: TCPSocket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPSocket.h
-
-
-
1 #ifndef __TCPSocket_h__
-
2 #define __TCPSocket_h__
-
3 
-
4 #include "includes"
-
5 #include "Socket.h"
-
6 #include "IPAddress.h"
-
7 
-
8 namespace core {
-
9 
-
19 
-
20  class TCPSocket : public Socket {
-
21 
-
22  public:
-
23 
-
24  TCPSocket(EPoll &ePoll);
-
25  TCPSocket(EPoll &ePoll, std::string text);
-
26  virtual ~TCPSocket();
-
27 
-
28  void connect(IPAddress &address);
-
29 
-
30  IPAddress ipAddress;
-
31 
-
38 
-
39  virtual void output(std::stringstream &out);
-
40 
-
41  };
-
42 
-
43 }
-
44 
-
45 #endif
-
Definition: EPoll.h:31
-
Definition: IPAddress.h:9
-
Definition: Socket.h:34
-
Definition: TCPSocket.h:20
-
virtual void output(std::stringstream &out)
Definition: TCPSocket.cpp:20
-
- - - - diff --git a/html/TLSServer_8h_source.html b/html/TLSServer_8h_source.html deleted file mode 100644 index 1023699..0000000 --- a/html/TLSServer_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -My Project: TLSServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TLSServer.h
-
-
-
1 #ifndef TLSServerSocket_h__
-
2 #define TLSServerSocket_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "TCPServer.h"
-
6 #include "Command.h"
-
7 #include "TCPSession.h"
-
8 #include "IPAddress.h"
-
9 
-
10 namespace core {
-
11 
-
18 
-
19  class TLSServer : public TCPServer {
-
20 
-
21  public:
-
22 
-
31 
-
32  TLSServer(EPoll &ePoll, IPAddress address);
-
33 
-
37 
-
38  ~TLSServer();
-
39 
-
40  TCPSession * getSocketAccept();
-
41 
-
42  SSL_CTX *ctx;
-
43 
-
44  private:
-
45 
-
46  char *sip_cacert = (char *)"../testkeys/certs/pbxca.crt";
-
47  char *sip_cert = (char *)"../testkeys/certs/pbxserver.crt";
-
48  char *sip_key = (char *)"../testkeys/certs/pbxserver.key";
-
49 
-
50  };
-
51 
-
52 }
-
53 
-
54 #endif
-
Definition: EPoll.h:31
-
Definition: IPAddress.h:9
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
Definition: TLSServer.h:19
-
TLSServer(EPoll &ePoll, IPAddress address)
Definition: TLSServer.cpp:22
-
~TLSServer()
Definition: TLSServer.cpp:58
-
- - - - diff --git a/html/TLSSession_8h_source.html b/html/TLSSession_8h_source.html deleted file mode 100644 index c60ab5a..0000000 --- a/html/TLSSession_8h_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: TLSSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TLSSession.h
-
-
-
1 #ifndef __TLSSession_h__
-
2 #define __TLSSession_h__
-
3 
-
4 #include "includes"
-
5 #include "TCPSession.h"
-
6 #include "TLSServer.h"
-
7 #include <openssl/ssl.h>
-
8 
-
9 namespace core {
-
10 
-
11  class TLSServer;
-
12 
-
22 
-
23  class TLSSession : public TCPSession {
-
24 
-
25  public:
-
26 
-
27  TLSSession(EPoll &ePoll, TCPServer &server);
-
28  ~TLSSession();
-
29 
-
36 
-
37  virtual void output(std::stringstream &out);
-
38  virtual void protocol(coreutils::ZString &data) override;
-
39 
-
40  protected:
-
41  void receiveData(coreutils::ZString &buffer) override;
-
42  void onRegister();
-
43  void onRegistered();
-
44 
-
45  private:
-
46  bool initialized = false;
-
47  SSL *ssl;
-
48 
-
49  };
-
50 
-
51 }
-
52 
-
53 #endif
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
std::stringstream out
Definition: TCPSession.h:67
-
Definition: TLSSession.h:23
-
virtual void protocol(coreutils::ZString &data) override
Definition: TLSSession.cpp:83
-
void onRegister()
Called before the socket has registered with the epoll processing.
Definition: TLSSession.cpp:36
-
void receiveData(coreutils::ZString &buffer) override
Definition: TLSSession.cpp:85
-
void onRegistered()
Called after the socket has been registered with epoll processing.
Definition: TLSSession.cpp:58
-
virtual void output(std::stringstream &out)
Definition: TLSSession.cpp:118
-
- - - - diff --git a/html/TerminalSession_8h_source.html b/html/TerminalSession_8h_source.html deleted file mode 100644 index faf72d8..0000000 --- a/html/TerminalSession_8h_source.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -My Project: TerminalSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TerminalSession.h
-
-
-
1 #ifndef __Terminal_h__
-
2 #define __Terminal_h__
-
3 
-
4 #include "includes"
-
5 #include "TCPSession.h"
-
6 #include "TCPServer.h"
-
7 
-
8 namespace core {
-
9 
-
10  static const int FG_BLACK = 30;
-
11  static const int FG_RED = 31;
-
12  static const int FG_GREEN = 32;
-
13  static const int FG_YELLOW = 33;
-
14  static const int FG_BLUE = 34;
-
15  static const int FG_MAGENTA = 35;
-
16  static const int FG_CYAN = 36;
-
17  static const int FG_WHITE = 37;
-
18 
-
19  static const int BG_BLACK = 40;
-
20  static const int BG_RED = 41;
-
21  static const int BG_GREEN = 42;
-
22  static const int BG_YELLOW = 43;
-
23  static const int BG_BLUE = 44;
-
24  static const int BG_MAGENTA = 45;
-
25  static const int BG_CYAN = 46;
-
26  static const int BG_WHITE = 47;
-
27 
-
28  static const char esc = 0x1b;
-
29 
-
30  class TerminalSession : public TCPSession {
-
31 
-
32  public:
-
33  TerminalSession(EPoll &ePoll, TCPServer &server);
-
34  ~TerminalSession();
-
35 
-
36  int getLines();
-
37 
-
41 
-
42  void clear();
-
43 
-
47 
-
48  void clearEOL();
-
49 
-
53 
-
54  void setCursorLocation(int x, int y);
-
55  void setColor(int color);
-
56  void setBackColor(int color);
-
57  void saveCursor();
-
58  void restoreCursor();
-
59  void NextLine(int lines);
-
60  void PreviousLine(int lines);
-
61  void scrollArea(int start, int end);
-
62 
-
63  };
-
64 
-
65 }
-
66 
-
67 #endif
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:25
-
Definition: TCPSession.h:24
-
Definition: TerminalSession.h:30
-
void clear()
Definition: TerminalSession.cpp:17
-
void clearEOL()
Definition: TerminalSession.cpp:21
-
void setCursorLocation(int x, int y)
Definition: TerminalSession.cpp:25
-
- - - - diff --git a/html/ThreadScope_8h_source.html b/html/ThreadScope_8h_source.html deleted file mode 100644 index 8f65dab..0000000 --- a/html/ThreadScope_8h_source.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -My Project: ThreadScope.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
ThreadScope.h
-
-
-
1 #ifndef __ThreadScope_h__
-
2 #define __ThreadScope_h__
-
3 
-
4 namespace core {
-
5 
-
6  class ThreadScope {
-
7 
-
8  public:
-
9  ThreadScope() {}
-
10 
-
11  };
-
12 
-
13 }
-
14 
-
15 #endif
-
Definition: ThreadScope.h:6
-
- - - - diff --git a/html/Thread_8h_source.html b/html/Thread_8h_source.html deleted file mode 100644 index d86ed8a..0000000 --- a/html/Thread_8h_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -My Project: Thread.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Thread.h
-
-
-
1 #ifndef __Thread_h__
-
2 #define __Thread_h__
-
3 
-
4 #include "includes"
-
5 #include "Log.h"
-
6 #include "Object.h"
-
7 #include "TCPSession.h"
-
8 #include "ThreadScope.h"
-
9 
-
10 namespace core {
-
11 
-
12  class EPoll;
-
13 
-
21 
-
22  class Thread : public Object {
-
23 
-
24  public:
-
25  Thread(EPoll &ePoll);
-
26  Thread(EPoll &ePoll, ThreadScope *thread);
-
27  ~Thread();
-
28 
-
32 
-
33  void start();
-
34  void join();
-
35  std::string getStatus();
-
36  pid_t getThreadId();
-
37  int getCount();
-
38  void output(std::stringstream &data);
-
39 
-
40  private:
-
41  EPoll &ePoll; // The EPoll control object.
-
42  std::string status;
-
43  int count;
-
44  std::thread *_thread;
-
45  void print_thread_start_log();
-
46  pid_t threadId;
-
47  void run();
-
48  ThreadScope *thread;
-
49 
-
50  };
-
51 
-
52 }
-
53 
-
54 #endif
-
Definition: EPoll.h:31
-
Definition: Object.h:8
-
Definition: ThreadScope.h:6
-
Definition: Thread.h:22
-
void start()
Definition: Thread.cpp:11
-
- - - - diff --git a/html/Timer_8h_source.html b/html/Timer_8h_source.html deleted file mode 100644 index 61217eb..0000000 --- a/html/Timer_8h_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Timer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Timer.h
-
-
-
1 #ifndef __Timer_h__
-
2 #define __Timer_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "EPoll.h"
-
6 
-
7 namespace core {
-
8 
-
17 
-
18  class Timer : Socket {
-
19 
-
20  public:
-
21  Timer(EPoll &ePoll);
-
22  Timer(EPoll &ePoll, double delay);
-
23  ~Timer();
-
24 
-
32 
-
33  void setTimer(double delay);
-
34 
-
38 
-
39  void clearTimer();
-
40 
-
45 
-
46  double getElapsed();
-
47 
-
48  double getEpoch();
-
49 
-
50  protected:
-
51 
-
55 
-
56  virtual void onTimeout() = 0;
-
57 
-
58  private:
-
59  void onDataReceived(std::string data) override;
-
60  double delayValue;
-
61 
-
62  };
-
63 
-
64 }
-
65 
-
66 #endif
-
Definition: EPoll.h:31
-
Definition: Socket.h:34
-
Definition: Timer.h:18
-
double getElapsed()
Definition: Timer.cpp:46
-
void clearTimer()
Definition: Timer.cpp:33
-
void setTimer(double delay)
Definition: Timer.cpp:13
-
virtual void onTimeout()=0
-
- - - - diff --git a/html/UDPServerSocket_8h_source.html b/html/UDPServerSocket_8h_source.html deleted file mode 100644 index a817630..0000000 --- a/html/UDPServerSocket_8h_source.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -My Project: UDPServerSocket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
UDPServerSocket.h
-
-
-
1 #ifndef __UDPServerSocket_h__
-
2 #define __UDPServerSocket_h__
-
3 
-
4 #include "Socket.h"
-
5 #include "UDPSocket.h"
-
6 #include "Command.h"
-
7 
-
8 namespace core {
-
9 
-
16 
-
17  class UDPServerSocket : public UDPSocket, public Command {
-
18 
-
19  public:
-
20 
-
21  UDPServerSocket(EPoll &ePoll, std::string url, short int port, std::string commandName);
-
22  ~UDPServerSocket();
-
23 
-
24  protected:
-
25 
-
26  //---------------------------------------------------------------
-
27  // Override the virtual dataReceived since for the server these
-
28  // are requests to accept the new connection socket.
-
29  //---------------------------------------------------------------
-
30 
-
31  void onDataReceived(std::string data) override;
-
32 
-
33  int processCommand(std::string request, std::stringstream &data);
-
34 
-
35  //------------------------------------------------------------------------------------
-
36  // The retrieved socket connections are placed into the client vector list.
-
37  //------------------------------------------------------------------------------------
-
38 
-
39  std::vector<Session *> sessions;
-
40 
-
41  private:
-
42 
-
43 
-
44  };
-
45 
-
46 }
-
47 
-
48 #endif
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: UDPServerSocket.h:17
-
void onDataReceived(std::string data) override
Called when data is received from the socket.
Definition: UDPServerSocket.cpp:35
-
Definition: UDPSocket.h:8
-
- - - - diff --git a/html/UDPSocket_8h_source.html b/html/UDPSocket_8h_source.html deleted file mode 100644 index f94e980..0000000 --- a/html/UDPSocket_8h_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -My Project: UDPSocket.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
UDPSocket.h
-
-
-
1 #ifndef UDPSocket_h__
-
2 #define UDPSocket_h__
-
3 
-
4 #include "Socket.h"
-
5 
-
6 namespace core {
-
7 
-
8  class UDPSocket : public Socket {
-
9 
-
10  public:
-
11  UDPSocket(EPoll &ePoll);
-
12  ~UDPSocket();
-
13 
-
14 // virtual int open(string address, short int port);
-
15 // virtual void write(istream data);
-
16 
-
17 };
-
18 
-
19 }
-
20 
-
21 #endif
-
Definition: EPoll.h:31
-
Definition: Socket.h:34
-
Definition: UDPSocket.h:8
-
- - - - diff --git a/html/annotated.html b/html/annotated.html deleted file mode 100644 index 90567c4..0000000 --- a/html/annotated.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -My Project: Class List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
- - - - diff --git a/html/bc_s.png b/html/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/html/bdwn.png b/html/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Command Member List
-
-
- -

This is the complete list of members for core::Command, including all inherited members.

- - - -
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session)core::Commandvirtual
- - - - diff --git a/html/classcore_1_1Command.html b/html/classcore_1_1Command.html deleted file mode 100644 index c2e23e2..0000000 --- a/html/classcore_1_1Command.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -My Project: core::Command Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::Command Class Reference
-
-
- -

#include <Command.h>

-
-Inheritance diagram for core::Command:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - -

-Public Member Functions

virtual int processCommand (coreutils::ZString &request, TCPSession &session)
 
virtual void output (std::stringstream &out)
 
-

Detailed Description

-

Command

-

Use the Command object in combination with a CommandList object to maintain a list of functions that can be invoked as a result of processing a request.

-

Member Function Documentation

- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::Command::output (std::stringstream & out)
-
-virtual
-
-

Specify the output that will occur to the specified session.

-
Parameters
- - -
sessionThe session that will receive the output.
-
-
- -

Reimplemented in core::TCPServer.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::Command::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-virtual
-
-

This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.

-
Parameters
- - - -
requestThe request that was entered by the user to invoke this command.
sessionSpecify the requesting session so that the execution of the command process can return its output to the session.
-
-
-
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
- -

Reimplemented in core::TCPServer, core::SubscriptionManager, core::EPoll, and core::CommandList.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1CommandList-members.html b/html/classcore_1_1CommandList-members.html deleted file mode 100644 index 3d4fd38..0000000 --- a/html/classcore_1_1CommandList-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::CommandList Member List
-
-
- -

This is the complete list of members for core::CommandList, including all inherited members.

- - - - - - - - - - - - -
add(Command &command, std::string name="")core::CommandList
clearGrab(TCPSession &session) (defined in core::CommandList)core::CommandList
CommandList(std::string delimiter="", int depth=0) (defined in core::CommandList)core::CommandList
commandscore::CommandListprotected
delimiter (defined in core::CommandList)core::CommandListprotected
depth (defined in core::CommandList)core::CommandListprotected
grabInput(TCPSession &session, Command &command)core::CommandList
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session)core::CommandListvirtual
processRequest(coreutils::ZString &request, TCPSession &session)core::CommandList
remove(Command &command)core::CommandList
- - - - diff --git a/html/classcore_1_1CommandList.html b/html/classcore_1_1CommandList.html deleted file mode 100644 index 5044d61..0000000 --- a/html/classcore_1_1CommandList.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - -My Project: core::CommandList Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::CommandList Class Reference
-
-
- -

#include <CommandList.h>

-
-Inheritance diagram for core::CommandList:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::CommandList:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

CommandList (std::string delimiter="", int depth=0)
 
void add (Command &command, std::string name="")
 
void remove (Command &command)
 
bool processRequest (coreutils::ZString &request, TCPSession &session)
 
bool grabInput (TCPSession &session, Command &command)
 
-void clearGrab (TCPSession &session)
 
int processCommand (coreutils::ZString &request, TCPSession &session)
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
- - - - - - - -

-Protected Attributes

std::map< std::string, Command * > commands
 
-std::string delimiter
 
-int depth
 
-

Detailed Description

-

CommandList

-

This object organizes Command objects into a list that is used to parse an input and run the process associated with the selected command.

-

Member Function Documentation

- -

◆ add()

- -
-
- - - - - - - - - - - - - - - - - - -
void core::CommandList::add (Commandcommand,
std::string name = "" 
)
-
-

Add a new command to the command list and assign a default search value.

- -
-
- -

◆ grabInput()

- -
-
- - - - - - - - - - - - - - - - - - -
bool core::CommandList::grabInput (TCPSessionsession,
Commandcommand 
)
-
-

Use grabInput() within a Command object to force the requesting handler to receive all further input from the socket. Use releaseGrab() method to release the session back to normal command processing.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::CommandList::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-virtual
-
-

This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.

-
Parameters
- - - -
requestThe request that was entered by the user to invoke this command.
sessionSpecify the requesting session so that the execution of the command process can return its output to the session.
-
-
-
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
- -

Reimplemented from core::Command.

- -
-
- -

◆ processRequest()

- -
-
- - - - - - - - - - - - - - - - - - -
bool core::CommandList::processRequest (coreutils::ZString & request,
TCPSessionsession 
)
-
-

Use this method to apply a parsed ZString to the command set and execute the matching parameter. The selected command will return a true on a call to check(). If there is a handler that has a grab on the process handler then control is given to the process handler holding the grab on the input.

- -
-
- -

◆ remove()

- -
-
- - - - - - - - -
void core::CommandList::remove (Commandcommand)
-
-

Remove a command object from the command list.

- -
-
-

Member Data Documentation

- -

◆ commands

- -
-
- - - - - -
- - - - -
std::map<std::string, Command *> core::CommandList::commands
-
-protected
-
-

The vector of all registered commands.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1CommandList__coll__graph.map b/html/classcore_1_1CommandList__coll__graph.map deleted file mode 100644 index 062545d..0000000 --- a/html/classcore_1_1CommandList__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1CommandList__coll__graph.md5 b/html/classcore_1_1CommandList__coll__graph.md5 deleted file mode 100644 index cb6786e..0000000 --- a/html/classcore_1_1CommandList__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4a83ba6697ed223cfff1971adde7514e \ No newline at end of file diff --git a/html/classcore_1_1CommandList__coll__graph.png b/html/classcore_1_1CommandList__coll__graph.png deleted file mode 100644 index 331a245f5e1473c5004d3752e527cf4e22db97fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4228 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 L& - - - diff --git a/html/classcore_1_1CommandList__inherit__graph.md5 b/html/classcore_1_1CommandList__inherit__graph.md5 deleted file mode 100644 index cb6786e..0000000 --- a/html/classcore_1_1CommandList__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4a83ba6697ed223cfff1971adde7514e \ No newline at end of file diff --git a/html/classcore_1_1CommandList__inherit__graph.png b/html/classcore_1_1CommandList__inherit__graph.png deleted file mode 100644 index 331a245f5e1473c5004d3752e527cf4e22db97fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4228 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 L& - - - - - - - - - diff --git a/html/classcore_1_1Command__inherit__graph.md5 b/html/classcore_1_1Command__inherit__graph.md5 deleted file mode 100644 index cab1826..0000000 --- a/html/classcore_1_1Command__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -958fd71dba9cc408bb299a3dcf0b7efb \ No newline at end of file diff --git a/html/classcore_1_1Command__inherit__graph.png b/html/classcore_1_1Command__inherit__graph.png deleted file mode 100644 index cc85293690616a10679792b67dca3298d78acf85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23869 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

(lj-7A&(&wB^1Eye9u#tIjPusRn~isx%Q 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 S!+;(-#^XntN;PoH@c#i6#PMPP diff --git a/html/classcore_1_1ConsoleServer-members.html b/html/classcore_1_1ConsoleServer-members.html deleted file mode 100644 index f676448..0000000 --- a/html/classcore_1_1ConsoleServer-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -

-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::ConsoleServer Member List
-
-
- -

This is the complete list of members for core::ConsoleServer, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
blackListcore::TCPServer
commandscore::TCPServer
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleServer(EPoll &ePoll, IPAddress address) (defined in core::ConsoleServer)core::ConsoleServer
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSocketAccept(EPoll &ePoll) overridecore::ConsoleServervirtual
ipAddress (defined in core::TCPSocket)core::TCPSocket
logSend(std::string out) override (defined in core::ConsoleServer)core::ConsoleServer
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::TCPServerprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPServervirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::TCPServerprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
removeFromSessionList(TCPSession *session) (defined in core::TCPServer)core::TCPServer
reset (defined in core::Socket)core::Socket
sendToAll(std::stringstream &out) (defined in core::TCPServer)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender)core::TCPServer
sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer)core::TCPServervirtual
sessionscore::TCPServer
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
subscriptionscore::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")core::TCPServer
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
whiteListcore::TCPServer
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPServer()core::TCPServervirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1ConsoleServer.html b/html/classcore_1_1ConsoleServer.html deleted file mode 100644 index cd703ab..0000000 --- a/html/classcore_1_1ConsoleServer.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - -My Project: core::ConsoleServer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::ConsoleServer Class Reference
-
-
-
-Inheritance diagram for core::ConsoleServer:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for core::ConsoleServer:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ConsoleServer (EPoll &ePoll, IPAddress address)
 
-void logSend (std::string out) override
 
TCPSessiongetSocketAccept (EPoll &ePoll) override
 
- Public Member Functions inherited from core::TCPServer
 TCPServer (EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
 
virtual ~TCPServer ()
 
-virtual void sessionErrorHandler (std::string errorString, std::stringstream &out)
 
-void removeFromSessionList (TCPSession *session)
 
-void output (std::stringstream &out)
 Output the consoles array to the console.
 
-void sendToAll (std::stringstream &out)
 
void sendToAll (std::stringstream &out, TCPSession &sender, SessionFilter filter)
 
void sendToAll (std::stringstream &out, TCPSession &sender)
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPServer
std::vector< TCPSession * > sessions
 
CommandList commands
 
IPAddressListblackList
 
IPAddressListwhiteList
 
SubscriptionManager subscriptions
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Member Functions inherited from core::TCPServer
void onDataReceived (std::string data) override
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Member Function Documentation

- -

◆ getSocketAccept()

- -
-
- - - - - -
- - - - - - - - -
TCPSession * core::ConsoleServer::getSocketAccept (EPollepoll)
-
-overridevirtual
-
-

getSocketAccept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service.

- -

Reimplemented from core::TCPServer.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1ConsoleServer__coll__graph.map b/html/classcore_1_1ConsoleServer__coll__graph.map deleted file mode 100644 index edaa951..0000000 --- a/html/classcore_1_1ConsoleServer__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1ConsoleServer__coll__graph.md5 b/html/classcore_1_1ConsoleServer__coll__graph.md5 deleted file mode 100644 index 514cff2..0000000 --- a/html/classcore_1_1ConsoleServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6a4748f0b8ae572775a1285efc642c81 \ No newline at end of file diff --git a/html/classcore_1_1ConsoleServer__coll__graph.png b/html/classcore_1_1ConsoleServer__coll__graph.png deleted file mode 100644 index 57379a119b3f91ea6999985e9f45131fcae86732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47699 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 z 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 diff --git a/html/classcore_1_1ConsoleServer__inherit__graph.map b/html/classcore_1_1ConsoleServer__inherit__graph.map deleted file mode 100644 index 4e2a3aa..0000000 --- a/html/classcore_1_1ConsoleServer__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1ConsoleServer__inherit__graph.md5 b/html/classcore_1_1ConsoleServer__inherit__graph.md5 deleted file mode 100644 index f44a301..0000000 --- a/html/classcore_1_1ConsoleServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c55c04921efc30bedbc7fa35b5e5970a \ No newline at end of file diff --git a/html/classcore_1_1ConsoleServer__inherit__graph.png b/html/classcore_1_1ConsoleServer__inherit__graph.png deleted file mode 100644 index 0b9a2e5152578a31ee9bc3157cf24727468176c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12037 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 diff --git a/html/classcore_1_1ConsoleSession-members.html b/html/classcore_1_1ConsoleSession-members.html deleted file mode 100644 index fae9b38..0000000 --- a/html/classcore_1_1ConsoleSession-members.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::ConsoleSession Member List
-
-
- -

This is the complete list of members for core::ConsoleSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clear()core::TerminalSession
clearEOL()core::TerminalSession
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleSession(EPoll &ePoll, TCPServer &server) (defined in core::ConsoleSession)core::ConsoleSession
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getLines() (defined in core::TerminalSession)core::TerminalSession
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
NextLine(int lines) (defined in core::TerminalSession)core::TerminalSession
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &data)core::TCPSessionvirtual
PreviousLine(int lines) (defined in core::TerminalSession)core::TerminalSession
protocol(coreutils::ZString &data) overridecore::ConsoleSessionprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
restoreCursor() (defined in core::TerminalSession)core::TerminalSession
saveCursor() (defined in core::TerminalSession)core::TerminalSession
scrollArea(int start, int end) (defined in core::TerminalSession)core::TerminalSession
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBackColor(int color) (defined in core::TerminalSession)core::TerminalSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setColor(int color) (defined in core::TerminalSession)core::TerminalSession
setCursorLocation(int x, int y)core::TerminalSession
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
TerminalSession(EPoll &ePoll, TCPServer &server) (defined in core::TerminalSession)core::TerminalSession
terminate()core::TCPSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
writeLog(std::string data) (defined in core::ConsoleSession)core::ConsoleSession
~ConsoleSession() (defined in core::ConsoleSession)core::ConsoleSession
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TerminalSession() (defined in core::TerminalSession)core::TerminalSession
- - - - diff --git a/html/classcore_1_1ConsoleSession.html b/html/classcore_1_1ConsoleSession.html deleted file mode 100644 index 1bee875..0000000 --- a/html/classcore_1_1ConsoleSession.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - -My Project: core::ConsoleSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::ConsoleSession Class Reference
-
-
- -

#include <ConsoleSession.h>

-
-Inheritance diagram for core::ConsoleSession:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for core::ConsoleSession:
-
-
Collaboration graph
- - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

ConsoleSession (EPoll &ePoll, TCPServer &server)
 
-void writeLog (std::string data)
 
- Public Member Functions inherited from core::TerminalSession
TerminalSession (EPoll &ePoll, TCPServer &server)
 
-int getLines ()
 
void clear ()
 
void clearEOL ()
 
void setCursorLocation (int x, int y)
 
-void setColor (int color)
 
-void setBackColor (int color)
 
-void saveCursor ()
 
-void restoreCursor ()
 
-void NextLine (int lines)
 
-void PreviousLine (int lines)
 
-void scrollArea (int start, int end)
 
- Public Member Functions inherited from core::TCPSession
TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
virtual void output (std::stringstream &data)
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

void protocol (coreutils::ZString &data) override
 
- Protected Member Functions inherited from core::TCPSession
-virtual void onRegistered () override
 Called after the socket has been registered with epoll processing.
 
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

ConsoleSession

-

Extends the session parameters for this TCPSocket derived object. Extend the protocol() method in order to define the behavior and protocol interaction for this socket which is a console session.

-

Member Function Documentation

- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::ConsoleSession::protocol (coreutils::ZString & data)
-
-overrideprotectedvirtual
-
-

Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the 'commands' added to the server object using the processRequest method on the session input.

-

When data is received within the session two modes are available to pass the data through the protocol method: LINE or BLOCK.

- -

Reimplemented from core::TCPSession.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1ConsoleSession__coll__graph.map b/html/classcore_1_1ConsoleSession__coll__graph.map deleted file mode 100644 index 87103ee..0000000 --- a/html/classcore_1_1ConsoleSession__coll__graph.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/html/classcore_1_1ConsoleSession__coll__graph.md5 b/html/classcore_1_1ConsoleSession__coll__graph.md5 deleted file mode 100644 index fe959c2..0000000 --- a/html/classcore_1_1ConsoleSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b1c8856a756096c0c77e4d4b902370cf \ No newline at end of file diff --git a/html/classcore_1_1ConsoleSession__coll__graph.png b/html/classcore_1_1ConsoleSession__coll__graph.png deleted file mode 100644 index 771dce88194694f5441f9d7237de0a4272852602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59200 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 diff --git a/html/classcore_1_1ConsoleSession__inherit__graph.map b/html/classcore_1_1ConsoleSession__inherit__graph.map deleted file mode 100644 index 0d00b54..0000000 --- a/html/classcore_1_1ConsoleSession__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1ConsoleSession__inherit__graph.md5 b/html/classcore_1_1ConsoleSession__inherit__graph.md5 deleted file mode 100644 index 8018163..0000000 --- a/html/classcore_1_1ConsoleSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -aa708db41fb4e2b63059766367d3e76c \ No newline at end of file diff --git a/html/classcore_1_1ConsoleSession__inherit__graph.png b/html/classcore_1_1ConsoleSession__inherit__graph.png deleted file mode 100644 index a47219ff4c33e5cf9ab8b58697e1a804a3460aa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10583 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 f{XHBVy+Ix>+hPrpiQ|BGN diff --git a/html/classcore_1_1EPoll-members.html b/html/classcore_1_1EPoll-members.html deleted file mode 100644 index 4d5d273..0000000 --- a/html/classcore_1_1EPoll-members.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - - -
-
-
core::EPoll Member List
-
-
- -

This is the complete list of members for core::EPoll, including all inherited members.

- - - - - - - - - - - - - - -
EPoll()core::EPoll
eventReceived(struct epoll_event event)core::EPoll
getDescriptor()core::EPoll
isStopping()core::EPoll
maxSocketscore::EPoll
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::EPollvirtual
registerSocket(Socket *socket)core::EPoll
resetSocket(Socket *socket) (defined in core::EPoll)core::EPoll
start(int numberOfThreads, int maxSockets)core::EPoll
stop()core::EPoll
unregisterSocket(Socket *socket)core::EPoll
~EPoll()core::EPoll
- - - - diff --git a/html/classcore_1_1EPoll.html b/html/classcore_1_1EPoll.html deleted file mode 100644 index d869591..0000000 --- a/html/classcore_1_1EPoll.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - -My Project: core::EPoll Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::EPoll Class Reference
-
-
- -

#include <EPoll.h>

-
-Inheritance diagram for core::EPoll:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::EPoll:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 EPoll ()
 
 ~EPoll ()
 
bool start (int numberOfThreads, int maxSockets)
 Start the BMAEPoll processing. More...
 
bool stop ()
 Stop and shut down the BMAEPoll processing. More...
 
bool isStopping ()
 Returns a true if the stop command has been requested. More...
 
bool registerSocket (Socket *socket)
 Register a BMASocket for monitoring by BMAEPoll. More...
 
bool unregisterSocket (Socket *socket)
 Unregister a BMASocket from monitoring by BMAEPoll. More...
 
int getDescriptor ()
 Return the descriptor for the ePoll socket. More...
 
void eventReceived (struct epoll_event event)
 Dispatch event to appropriate socket. More...
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 Output the threads array to the console. More...
 
-void resetSocket (Socket *socket)
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
- - - - -

-Public Attributes

int maxSockets
 The maximum number of socket allowed. More...
 
-

Detailed Description

-

EPoll

-

Manage socket events from the epoll system call.

-

Use this object to establish a socket server using the epoll network structure of Linux.

-

Use this object to establish the basis of working with multiple sockets of all sorts using the epoll capabilities of the Linux platform. Socket objects can register with EPoll which will establish a communication mechanism with that socket.

-

The maximum number of sockets to communicate with is specified on the start method.

-

Threads are used to establish a read queue for epoll. The desired number of threads (or queues) is established by a parameter on the start method.

-

Constructor & Destructor Documentation

- -

◆ EPoll()

- -
-
- - - - - - - -
core::EPoll::EPoll ()
-
-

The constructor for the BMAEPoll object.

- -
-
- -

◆ ~EPoll()

- -
-
- - - - - - - -
core::EPoll::~EPoll ()
-
-

The destructor for the BMAEPoll object.

- -
-
-

Member Function Documentation

- -

◆ eventReceived()

- -
-
- - - - - - - - -
void core::EPoll::eventReceived (struct epoll_event event)
-
- -

Dispatch event to appropriate socket.

-

Receive the epoll events and dispatch the event to the socket making the request.

- -
-
- -

◆ getDescriptor()

- -
-
- - - - - - - -
int core::EPoll::getDescriptor ()
-
- -

Return the descriptor for the ePoll socket.

-

Use this method to obtain the current descriptor socket number for the epoll function call.

- -
-
- -

◆ isStopping()

- -
-
- - - - - - - -
bool core::EPoll::isStopping ()
-
- -

Returns a true if the stop command has been requested.

-

This method returns a true if the stop() method has been called and the epoll system is shutting.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::EPoll::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-overridevirtual
-
- -

Output the threads array to the console.

-

The processCommand() method displays the thread array to the requesting console via the session passed as parameter.

-
Parameters
- - -
sessionthe session to write the requested data to.
-
-
- -

Reimplemented from core::Command.

- -
-
- -

◆ registerSocket()

- -
-
- - - - - - - - -
bool core::EPoll::registerSocket (Socketsocket)
-
- -

Register a BMASocket for monitoring by BMAEPoll.

-

Use registerSocket to add a new socket to the ePoll event watch list. This enables a new BMASocket object to receive events when data is received as well as to write data output to the socket.

-
Parameters
- - -
socketa pointer to a BMASocket object.
-
-
-
Returns
a booelean that indicates the socket was registered or not.
- -
-
- -

◆ start()

- -
-
- - - - - - - - - - - - - - - - - - -
bool core::EPoll::start (int numberOfThreads,
int maxSockets 
)
-
- -

Start the BMAEPoll processing.

-

Use the start() method to initiate the threads and begin epoll queue processing.

-
Parameters
- - - -
numberOfThreadsthe number of threads to start for processing epoll entries.
maxSocketsthe maximum number of open sockets that epoll will manage.
-
-
- -
-
- -

◆ stop()

- -
-
- - - - - - - -
bool core::EPoll::stop ()
-
- -

Stop and shut down the BMAEPoll processing.

-

Use the stop() method to initiate the shutdown process for the epoll socket management.

-

A complete shutdown of all managed sockets will be initiated by this method call.

- -
-
- -

◆ unregisterSocket()

- -
-
- - - - - - - - -
bool core::EPoll::unregisterSocket (Socketsocket)
-
- -

Unregister a BMASocket from monitoring by BMAEPoll.

-

Use this method to remove a socket from receiving events from the epoll system.

- -
-
-

Member Data Documentation

- -

◆ maxSockets

- -
-
- - - - -
int core::EPoll::maxSockets
-
- -

The maximum number of socket allowed.

-

The maximum number of sockets that can be managed by the epoll system.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1EPoll__coll__graph.map b/html/classcore_1_1EPoll__coll__graph.map deleted file mode 100644 index 39f7c20..0000000 --- a/html/classcore_1_1EPoll__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1EPoll__coll__graph.md5 b/html/classcore_1_1EPoll__coll__graph.md5 deleted file mode 100644 index a2b4276..0000000 --- a/html/classcore_1_1EPoll__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -59d16fa7de30ff900ab48693b10de851 \ No newline at end of file diff --git a/html/classcore_1_1EPoll__coll__graph.png b/html/classcore_1_1EPoll__coll__graph.png deleted file mode 100644 index efeebc4ade1831df06b24ea0545d3f510c66de2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2926 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 diff --git a/html/classcore_1_1EPoll__inherit__graph.map b/html/classcore_1_1EPoll__inherit__graph.map deleted file mode 100644 index 39f7c20..0000000 --- a/html/classcore_1_1EPoll__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1EPoll__inherit__graph.md5 b/html/classcore_1_1EPoll__inherit__graph.md5 deleted file mode 100644 index a2b4276..0000000 --- a/html/classcore_1_1EPoll__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -59d16fa7de30ff900ab48693b10de851 \ No newline at end of file diff --git a/html/classcore_1_1EPoll__inherit__graph.png b/html/classcore_1_1EPoll__inherit__graph.png deleted file mode 100644 index efeebc4ade1831df06b24ea0545d3f510c66de2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2926 zcmcImc{J3I7XPMVVn`$-GL2c^>{}!2G-Nj- z#$GZ+_K+FO)9?N9&U^pAbI-l^+&}I;pL6cLpL=7C478aUFERoEz^tpIX>#mij@1i9 zcWm!+Rd^pedV4)>O@Q`S-Zd8{0RR)9uBMu)fBI@hpcT6|U6(Wa%iE{Gw*GuZrZVP~ zuxA1O3?k>Tb@s+VwYAN7ll)=cH)etNBXa6pgrQ>jDg$2`>TZAHapQKX zJBi+7oe6L`V5*40K7Gl)K9KSn)q6{YYH^5(7F!T%=yQh7S`K+G*@h}taz1$Q;P5Ve zr01bP@V>sGWqIl-EHr)wnTv^HEm<}Y6!#zK4#!uaHXqjh)IWLVN`wRHPL}c0^~V9h zB`Yp0d!tZASJzGX#|#E@NRksm2{S{>R;RxbkswNQe@4oyBb2mEKI`3NzZw1qn}Hz= zjn9*HR5|rtkRTP6uX0M5Y(zJG>*u^yGeftVd`<^Fe`JK)bA$naT8h`|NA)q@iu*f{ zc$2rjqQ;0k11@`Qjk)%0>Y(gu%EmHjzD)lf+VjX*mk8@~b{zQk_;NOND9_%NL9bJW*fYE%L4`3BEtNYAs8i@F^&BQ>h{;h!t z1ToW{=@xB#YD>#7YKXUkuRMLD=NSZDAe+Q%u8{7x$s5j6^?;dyV zuA&2RQ1|d)fkl8Q)okSIN~7gQtZIBaF&VN&E*$hOeEdEqfU`uCJM-IsPN^B^%lvMY zDdDX92??T;OZbepK53?B$%3=S(q9Pi6Fmmat1=-w0t-gL!h@YR)9BqR^68Is5%IYJ z6W5sFadn_x_my%1RbE%=BTVmIP_*Uyv!)Lz`ZL!V^5Wmp5NS9CG14V_6%Rdud^Q0k z1n;Cs!#79pI1#5fZ6*1D{$?ou|zetdia(4DvCklEFFUjMzA)@EPT@2^y|#&8PT zpQE!yREdJUFGbM;ksmYA1%hDuFAC(vax>jDMV9s&GkGC%9=Xf9Y{U2B*qGpOw;c*& zFJU^h*jpx=Tt$$)lz!>FpU4UYd;vd@Sy5E%Y07CL>-Q+^J;q~jU{o!2*I<_{vHCMO z>D}bs;5?X=?CiBMUcyHbsDAo^mZv>^o7RHV>ickpI}|s4mCv>0Ng#kNh*pZn!F)$X zYD=EX=#y8E<&HU(vUF7KMU9_9;X7-PKDDO`IFyhFfdY^_SCj>W;LN<#Z z8{24$>MI5{w`gdIV@2s`6iCZe-`6bc1Ir#6(x455+JX+7*DYe9nYLP@p^5TSymc4_sel!W=#N_S+LkvB0xLed4Vc!G=>?PE&?)H#apG+I zuy-eg@&Ft3z;MEE{fu*pVX~AWgNy1u;`hm84m1bn{D%-b`3e@%h2D~%yOOJGYId?T z0@r3%fiN$mv^h3jl2xhDiE>Y(CI@7Y@-re)j67boqMQ}C%#@fcH0*aV<3=^% z$B$QFT%P6^Nufe>8XEN(bO8nz;)wkuqZ|VPW$W;lmnJQ%zAlG2_@eWSOi`1>#4+ji zYv=iaFuXDJ9H#x62(H<`Dyx0VH9E0O{3MW*yGI8+`Q?uvQbXZEEw8!c|EmrE$3XGV z9a38biTjk?AQBQ4VPQbV zuO84)EJUg6pR@T7JPm-`$E^7`F;;He%`)o{Ar*5YJha-u%Qo<6B2pM0aA+-Trz|hv zR%f`F>l1G4y}zcCZCq*{Xa}wqDj>$5IA*EfKlO)FhItr)uQ`*ADtDJICHv4-Av%ovI2yVFpkb08z_KS5( zdDs*G;4NanPD(<~cEjn?8$N~^`rrhzP(`qEyRKLAb^;1X)ZZaIXvOacJT z7{Y!2Pt4qCmj$KFN(~L$Jn`**rvvn9aVI276N&^+Uv+i7rLaw%>bG;#CB zV65Y_?PirquT^sKAVx!?m}f1}`37`P=b@e;w-sW~O5A(a@pH$Rep<87-K$;>JuO|< zWuCTwcpbUTlet^-`*KIoH^PuAMW@XxgM)(d_?paccg8&R@f3+#c7DwN=Thue~ zxzrsloS)zEoNp&7-03DW>-+_o$3BFkT6|8FfeDFd6cQ4;^&&_7UH^~SG`r3r)c`b3 z|K@;YLn_6|dE!~0lZ&*}M%{R-dmG9!rP8`3cx-|&IdLYF`U)=hY0%FJ7+T*oxEWDS zErRcEe;?Y|I`0q#gzni;6_I-Z)^4#{m;u)FYL>+!dM@OBYISC~tD{2OWIY`Ck uGOJ4~bbh~(=?;A+;@=M?y>TT(b05l9TFJ3P@YFb-T0mFJK(k!kHvC_pON>hZ diff --git a/html/classcore_1_1INotify-members.html b/html/classcore_1_1INotify-members.html deleted file mode 100644 index e8e6746..0000000 --- a/html/classcore_1_1INotify-members.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::INotify Member List
-
-
- -

This is the complete list of members for core::INotify, including all inherited members.

- - - - - - - - - - - - - - - - - - - -
addWatch(std::string watch) (defined in core::INotify)core::INotify
inAccess(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inAttrib(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inCloseNoWrite(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inCloseWrite(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inCreate(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inDelete(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inDeleteSelf(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inModify(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inMovedFrom(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inMovedTo(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inMoveSelf(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
inOpen(std::string name) (defined in core::INotify)core::INotifyinlinevirtual
INotify(EPoll &ePoll) (defined in core::INotify)core::INotify
onDataReceived(coreutils::ZString &data) override (defined in core::INotify)core::INotifyvirtual
core::Socket::onDataReceived(std::string data)core::Socketprivatevirtual
removeWatch(int wd) (defined in core::INotify)core::INotify
~INotify() (defined in core::INotify)core::INotify
- - - - diff --git a/html/classcore_1_1INotify.html b/html/classcore_1_1INotify.html deleted file mode 100644 index 48503d5..0000000 --- a/html/classcore_1_1INotify.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -My Project: core::INotify Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::INotify Class Reference
-
-
-
-Inheritance diagram for core::INotify:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::INotify:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

INotify (EPoll &ePoll)
 
-int addWatch (std::string watch)
 
-void removeWatch (int wd)
 
-void onDataReceived (coreutils::ZString &data) override
 
-virtual void inAccess (std::string name)
 
-virtual void inAttrib (std::string name)
 
-virtual void inCloseWrite (std::string name)
 
-virtual void inCloseNoWrite (std::string name)
 
-virtual void inCreate (std::string name)
 
-virtual void inDelete (std::string name)
 
-virtual void inDeleteSelf (std::string name)
 
-virtual void inModify (std::string name)
 
-virtual void inMoveSelf (std::string name)
 
-virtual void inMovedFrom (std::string name)
 
-virtual void inMovedTo (std::string name)
 
-virtual void inOpen (std::string name)
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1INotify__coll__graph.map b/html/classcore_1_1INotify__coll__graph.map deleted file mode 100644 index b1b973e..0000000 --- a/html/classcore_1_1INotify__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1INotify__coll__graph.md5 b/html/classcore_1_1INotify__coll__graph.md5 deleted file mode 100644 index be09bd7..0000000 --- a/html/classcore_1_1INotify__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -92f9d16c1d5c1cc148c8f86a9705302e \ No newline at end of file diff --git a/html/classcore_1_1INotify__coll__graph.png b/html/classcore_1_1INotify__coll__graph.png deleted file mode 100644 index e2516b726edda63e399ef6b00637807b81c0252b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7125 zcmch6Wl&s8xAwpg2oAxW;O_1Y6Wkqw1%hkP!992&I74vv;1=B7g1fs*7(U)}Ub*$% z`}f}3KUVMVuIjF}dq1)|LPbdy6^RfD005wZkc+gZCExwe{s0#ql-3o65^d z0bc&`WVaQ50|1C3K~mxx9vLSq?mF0ei}2^(Ujjn%!||oCgChHiKnfJHGy4%a3*6S& z?}XV$?MwQ4G`u7FJrw>#Rrg?Xhf-J{Q}@Nlbebt?U|@Wvki*G49lLsl8K5|?k^7CA zwdQu>R?T^QK5{(TdNwxFPKk*bQ2n7u!4RO%gZ36{)1U4AYv5?{lTcB?&??unh}27o z7)|3w7WTen;w)b#rD9=0gMop$(ZW^__4fz#^!6sD8`-0)b*-&+C?T5;QGnD!rkl{a zg89f5!h!z?s8Pgse*2b!fVGvfOinst44N4+AO+>lxMB+TBG5jDXTqv%@=vu0z9=g| zyY^w(+>NW#AH)944;lQ(+A~|Y+sVoW<6fhV`Q>~K-=Z2plw^#{EdU*_IkvKrRg+Cu zPDxPKhSpoHe^;-@dNBsd@5cF@M2&^1YVt>1k8PL0+M@J*w4sgjozaI5+QUerq817H zW?l7;yYEws!Un|=GV-iYujK7(>(X%@yF zNSM4CzY4M%Gb20{+Cy2vnXxr69Jb1lwW*obnWQw7nU0)}cRegk9$e}D&ZS4|b^DWy zo(V$whdWV8G`flkKn41g=XNO3EwUqxg--!;Q%{>DBMvk9 z+!mfSd7G0I|LA;$#5!77u_#g}(CnIZdTDxCaH2Ha?bb^qCNHdI&~iuiqopQsxm@_O zUB<6VXY|QLEfTBS-+>HA^!H{oO**&v+|@fr#YTp6GwzBPMAA}k`qv6%?PRCxqY|{Y zC$l0(i@FiSHB>Y_Zj9AqvNq?v5}uLu=~q6cj{B)MD?HrN5ZX?EgOdCx?2^AKDjgMD zjME_uZN)lMAu3%&mWzHOf9&yCo@)FNB>x~i2#S!Ks}mR8oAR{Q=53@PhyXcXVB=)y z35Xlkv##8}e3!=cll3Go zHNCrQi1b#gk#}vmi`Xl3?Bn1pSP_lI!4pq1%Q>JepFo3w+u#$aq|&0D`9OYUwL6_* zfq6y18`p`0x6V_{%k^#{rIH6G&R27G8#yxN#ZF=~V=Rtiu@X`~54=)4Gq5oa?BVU2 z0?K4qA^2QjE-u}ohRuP8xaAXFpXhjKhqH5p4JIYWdcMb}l^h-LVF1aZdssR?Zfji% z_RVWHY#$M^fp-yw>bL1C@^>X@k1$&bSVt@fG+!98D`mA%Os77GrXFnClN%X(bI%Ep zXBze8?R8Z-KdKSO3`wnK;%EHk!$L;i?kc~ z8$|FM9BEl-%zvmP$6oJWof|(A?w*c#WH%qe?(C6k^MvI`quMgL%ArAFAU-a*Au{c& zWmh`)t|DQ6esws>)5vjH?kMsiF9g+ndBbwtFYc;MCX2Ui_jxy%BiD|hl1tEgt{IYC zZ++NLhHS%U+N~w}VHVAEzxgsMV7e{{ zop@3RO)h7D19Bv;$1RNU3B7$U&%R4ft7Ahl;WQDp;BXo=7<5clRw0n>>%*YsdmPoa zN;1(?Pwmz2O=uW;?H^K&%;pVS+u+c5e*b3w#5U|ZxLr)b&!I7W-Y8nl31Np+R8;i- z{@(xI^iD=Pf$IM8v1@6mW#k&(BRguA=05=cPn_TM#~&CPlGM`5Djrrz{Lpc`zPG0h zaii;cxEhS3LR@JPOl!vOE#e{<5fQo34Wr=WYkdp2KP)AosgU9yA_3Wzsj1gqTu&PV z01}dTos*MATaT!ucjA%Hw@ZGiu3EZXt8K{&hB2m&Vv!F|#sEz5?}$(+-rqfdp8mqE zseHZxjsUs7e0itvXhm)}-N;TDm?{^`w=;(cU%ykOq!ve}6ZgT0t6t^ICmUJhP7j`6 zZGD1Y_a~>IK#Y$cWc$M;D-|B4Afcm^bAY5CE<+YaA{c05Zv^GwaB<=Oa@KAY7?~IX ztf7Pp3E8Qa4qg_MknqaCa#$S^v$C=k*2)u#79baN57k;|O=RQM zHk+@Q@G6t@B(xK|_96%fz~N=3Mnb+>sNRBgZPxok`b)B45`KFm^{u)2cIUFe8)W2K zB(mLIhS%54|A#>(6IGnsez~z($2K$aYb_8^XAkc0Nz#CHboga5 zHH^VhfZlms@5A8XB{%B`G2)Vu#k%Z`&HfIba3jPpHa7O~_MY$E)Mfws=*{SgHU3xj zFCaJWFIla}zkIfv0FNhy{v`=;eqh^@S|frIhD2t@QoQok+aDN;m`^T>o^+Um68(qH zNG=>V{WU&B^PFW$z+e__|4{DnV*UEGJ4~n07Jl<=T0QlIY8z>%(}1R`AV&8r)Sfv- z7AvSLd9)t7SNQDzVu1&)pQk47>cWGBe9fe0N*9XsyJzaI*6)2OeJs^EvM}*et15E#W^-%ozrKfb zptC*`5F-v1H}8gpbHGv<_dh0wnoLHw-#;qAs^$9iCs+nydT^jm824H`IQYbZ7I2aR zuB%Qw=xtDqh&#~Y@9N!Ql;A_N_jvc5824CU`>4&Xf=zV33%yI1NQiS2gtHL}ytw^} z>?G1rp(O#U;!`zLlt%VWLlzKMSy`#tQTpVKDV%#E%}9B(vx{Strfm2VY~|*9Ahfd6 zJEORi`916?+*R8O#LIl6;}q>meO1Xs?QWy2M`T&mx-7|+uZfTbuFpOU++MnV#z6hC zPr?eedYo>CYw~FSzS!y>i4-me0SBS^Zj0B~1Fcq2!L!^)x%;JiwpQl_<_Qr)LX|A9 zU%jNeAs)LLVUo6Q>w6z6iNR1ZB`r0D?lk;KhWuW!;mUfXITcM(-5mqpPgjY-mAz|3 zcDVuJ(A4tTd=iCH@dZatL{LNY38lsa!k}Q}XJ+}+iSqvFS@6gA#UD@4u~&tTqwaiH zqCgc4ls3M6bQI*)mUw)7vhOL{|MaQz|MWNWMagkU8k_EydJjLkvAkU6bFixXANI<3 zV8N98i@X*~9*t-*@NvG3625&4y=~mw<2Rwc z1_;a4gQ@2orSAvXq&-ElyiXyU)6eMqA}iwxk$?SH|5V)n4DjY8;&T_7hp4HuJ6%D6 zfrri)KP%WiAcJ5>7I#vbv2$l{cq*oW7U=1`OHA+pAHOY5ENwNgn_G6-80=-$}gAY3{>RYLI|nVZnui1VG_A$a@zr1MKei|cPi^yI2n3wA-q&4O5?pUAU93dVo^PbNPZa({ zWhx^JnJ7;}H@CBUwA)SJP$lc&k=!sM?2Mo+O>X(2;KG=1BHmRys_8GJJ1d zGM(X}>?={D`%7g32AVFBKcV{(vM4f{%+{f15j^6~Wj05^s^jK&gyIO>vTqi;ep|f> z04BI2L1HqZfTNZs?m7${rsJl=Ps*Ezhi-fpQ^9mWAXtfmy^E7XsK@dkp&kOSkmw1* zAJ&%r7b(7qroYzhyn41sS*S%lW-e!+<1LJ=p1FDZG6h^5gOKZJLz^-jVfr@*g^< zCP5pb1>!Uk&;#9{wa=xc^=Lnd zGNaF99#l*u*y|luZxSAS*frMua5|S&$20cPvnkB#Ln#{9lWl-1_l`7KUea`Eym!kd za|;vMSg08a_{4;F8pl`F8uUqiu}J%ne-jIJVM~vn=TdKBwar>o<$C%V2f$rDM)@>uS&zUAi~6-(=>JDcW$+)cxJ z)V8Xdm|vGUR?q9ZGxo>xu7AAXclHXVZbX4rlfy1ndn6PTBq7XaN?MsB1;`;gkRu1% z9NvB(xizvjDfZ8v8gV$XdmVluq|P%7we>{Wf#RhnS8`Qjx0Oq~ zMWLDR0^=ee0-QP{O>t&!_8T$`iUjqsDPD&^-xhgmDHsuWy?hrxJsv5k%Ijma#J1zl zCS{b54lWnq2n&9}Bx%=O-YTLam!c{}m<~+^7Rw_OO<9rsxE1!Xf>zih8eUVFh{?4} zZg^`?Z9_AQn&vV_m`(=sk3ObdtU&G_k-J{A=;GJ*sPAf3FUaqfsvu~JR9d88khmsV z2xG4Z%1s#9Y^p5z8EwNz&JEp6gh0rAe0&r-7|ku@65#$Rjji~7vZMYdLEi%yY9HF0>q-oQf|t45-5eoZ*}vq_y#z1O>WAhlhJ`=z*_(%n%VJ zcyR=U;U}RsEbwpM24L@QlV47}-$zCwKXMHh@W2RhKTB(7l3w=*gbR6KIE%xmEKkn8 z4hi`z^k~up5#TzLNCe4?hwLLu1;3;e5n6n{h8Y|l5F060kGp|4HjA^6g75__U%O&y z6`(|mkZ*Y3YVa8*P#G+>G-Q>kX1((DFboWi5vpuW6yx#;*QvibE%keLs=Tf%R;l3h zU%v)E*e(YxzFIQ_RFvR6Eo}kgd@V}byVJi+n41_20$k!j#;S7V{8mke-(Pl(hy1gu zsvIIRP^vH|JnkKCXkAg!Bcp-|DU?$UegBi(TVg?XmgyI|0R}?Efv&mRRW49|*JvCD zUt`m(cl3u&UTlsk%R>!7XZX#L;%l0@7HL8W!u|&>^>4=cUmCL(l1YU?jO}KAyrp+? z0uas#%w8LbaFgbiy0c$+*WH@F))E(L_Z6cEw-GA`MYoz^9UezvidhrizBGhw<~|e9JsOBNx?CdI zwoa1B!}|5dM`KMY1)PP#%9qF{MgUz9wswBL1f8y41?y&_4Vu1$lp^qd#jj#vU{Is%(I(2iP$V?e_%Q$YiYw zpeHWq%_C>{!Xp-Rq+&f9bIv+O1Y+NlsHC;ef5%Jww1rNr%ZWB-QD27&&+Y8n(mUvC3!x}vJZ$kND}1ALm&1yYlsRq=`7;OX+=+w)E$j7X zO_124hsie9#zKu3EerK(NCi1^gb8i6#f4YK7z}CIH)}ELNMDD??1uxp1?@%5l4h+z zTt!=IDj8YI!shq!#2frMM4RAb(4|-N2W$GwTy2&3Knrtwb$cU{D&zf z+sOU!Rb@TEArC(988XV$SzkXZYHtY%L{yZG%D6(x;xXB)gF}!4jd*Wt3Cmto7ay^8 zDx&=BR_k9yPgW&vN1B(-#L7wsMZ90wWqsZlb5&0NQS_-W=e%y13QbV5&AaVN(^CGp R*LykuNLop%LgHiK{{y3WkZk|} diff --git a/html/classcore_1_1INotify__inherit__graph.map b/html/classcore_1_1INotify__inherit__graph.map deleted file mode 100644 index 538b785..0000000 --- a/html/classcore_1_1INotify__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1INotify__inherit__graph.md5 b/html/classcore_1_1INotify__inherit__graph.md5 deleted file mode 100644 index 4cc6b6f..0000000 --- a/html/classcore_1_1INotify__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -bd7d5c6ca50a1d9f295e71a940e042cf \ No newline at end of file diff --git a/html/classcore_1_1INotify__inherit__graph.png b/html/classcore_1_1INotify__inherit__graph.png deleted file mode 100644 index aa505c47526c5256b3365d5968bdb0a7d4c1395d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3053 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 diff --git a/html/classcore_1_1IPAddress-members.html b/html/classcore_1_1IPAddress-members.html deleted file mode 100644 index 6748819..0000000 --- a/html/classcore_1_1IPAddress-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::IPAddress Member List
-
-
- -

This is the complete list of members for core::IPAddress, including all inherited members.

- - - - - - - - - - - - - -
addr (defined in core::IPAddress)core::IPAddress
addressLength (defined in core::IPAddress)core::IPAddress
getClientAddress()core::IPAddress
getClientAddressAndPort()core::IPAddress
getClientPort()core::IPAddress
getPointer() (defined in core::IPAddress)core::IPAddress
IPAddress() (defined in core::IPAddress)core::IPAddress
IPAddress(std::string address) (defined in core::IPAddress)core::IPAddress
IPAddress(std::string address, int port) (defined in core::IPAddress)core::IPAddress
name (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
~IPAddress() (defined in core::IPAddress)core::IPAddress
- - - - diff --git a/html/classcore_1_1IPAddress.html b/html/classcore_1_1IPAddress.html deleted file mode 100644 index bd38e33..0000000 --- a/html/classcore_1_1IPAddress.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -My Project: core::IPAddress Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::IPAddress Class Reference
-
-
-
-Inheritance diagram for core::IPAddress:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::IPAddress:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

IPAddress (std::string address)
 
IPAddress (std::string address, int port)
 
-struct sockaddr * getPointer ()
 
-std::string getClientAddress ()
 Get the client network address as xxx.xxx.xxx.xxx.
 
-std::string getClientAddressAndPort ()
 Get the client network address and port as xxx.xxx.xxx.xxx:ppppp.
 
-int getClientPort ()
 Get the client network port number.
 
- - - - - - - - - - -

-Public Attributes

-struct sockaddr_in addr
 
-socklen_t addressLength
 
- Public Attributes inherited from core::Object
-std::string name
 
-std::string tag
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1IPAddressList-members.html b/html/classcore_1_1IPAddressList-members.html deleted file mode 100644 index f8713a5..0000000 --- a/html/classcore_1_1IPAddressList-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::IPAddressList Member List
-
-
- -

This is the complete list of members for core::IPAddressList, including all inherited members.

- - - - - - -
add(IPAddress ipAddress) (defined in core::IPAddressList)core::IPAddressList
contains(std::string ipAddress) (defined in core::IPAddressList)core::IPAddressList
getList() (defined in core::IPAddressList)core::IPAddressList
IPAddressList() (defined in core::IPAddressList)core::IPAddressList
remove(IPAddress ipAddress) (defined in core::IPAddressList)core::IPAddressList
- - - - diff --git a/html/classcore_1_1IPAddressList.html b/html/classcore_1_1IPAddressList.html deleted file mode 100644 index ffef6e9..0000000 --- a/html/classcore_1_1IPAddressList.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -My Project: core::IPAddressList Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::IPAddressList Class Reference
-
-
- - - - - - - - - - -

-Public Member Functions

-std::map< std::string, IPAddressgetList ()
 
-void add (IPAddress ipAddress)
 
-bool remove (IPAddress ipAddress)
 
-bool contains (std::string ipAddress)
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1IPAddress__coll__graph.map b/html/classcore_1_1IPAddress__coll__graph.map deleted file mode 100644 index 12963eb..0000000 --- a/html/classcore_1_1IPAddress__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1IPAddress__coll__graph.md5 b/html/classcore_1_1IPAddress__coll__graph.md5 deleted file mode 100644 index 63ac5ab..0000000 --- a/html/classcore_1_1IPAddress__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -156ef09bd41be803b2f51d7f424cd841 \ No newline at end of file diff --git a/html/classcore_1_1IPAddress__coll__graph.png b/html/classcore_1_1IPAddress__coll__graph.png deleted file mode 100644 index e76df2dfca40227b5587e0db3d358a088e0ce34d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3342 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 Jt5UTM{|Ag4kf#6u diff --git a/html/classcore_1_1IPAddress__inherit__graph.map b/html/classcore_1_1IPAddress__inherit__graph.map deleted file mode 100644 index 12963eb..0000000 --- a/html/classcore_1_1IPAddress__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1IPAddress__inherit__graph.md5 b/html/classcore_1_1IPAddress__inherit__graph.md5 deleted file mode 100644 index 63ac5ab..0000000 --- a/html/classcore_1_1IPAddress__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -156ef09bd41be803b2f51d7f424cd841 \ No newline at end of file diff --git a/html/classcore_1_1IPAddress__inherit__graph.png b/html/classcore_1_1IPAddress__inherit__graph.png deleted file mode 100644 index e76df2dfca40227b5587e0db3d358a088e0ce34d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3342 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 Jt5UTM{|Ag4kf#6u diff --git a/html/classcore_1_1Object-members.html b/html/classcore_1_1Object-members.html deleted file mode 100644 index 657efbb..0000000 --- a/html/classcore_1_1Object-members.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Object Member List
-
-
- -

This is the complete list of members for core::Object, including all inherited members.

- - - -
name (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
- - - - diff --git a/html/classcore_1_1Object.html b/html/classcore_1_1Object.html deleted file mode 100644 index 366996b..0000000 --- a/html/classcore_1_1Object.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -My Project: core::Object Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::Object Class Reference
-
-
-
-Inheritance diagram for core::Object:
-
-
Inheritance graph
- - - - - - -
[legend]
- - - - - - -

-Public Attributes

-std::string name
 
-std::string tag
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1Object__inherit__graph.map b/html/classcore_1_1Object__inherit__graph.map deleted file mode 100644 index acb0232..0000000 --- a/html/classcore_1_1Object__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1Object__inherit__graph.md5 b/html/classcore_1_1Object__inherit__graph.md5 deleted file mode 100644 index 6264b7d..0000000 --- a/html/classcore_1_1Object__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b14282148f8863b81eeca78a65a2960b \ No newline at end of file diff --git a/html/classcore_1_1Object__inherit__graph.png b/html/classcore_1_1Object__inherit__graph.png deleted file mode 100644 index 9d083f927eb9e2381d52b40f81f2b46bbac5ecdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7270 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 - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::SessionFilter Member List
-
-
- -

This is the complete list of members for core::SessionFilter, including all inherited members.

- - - - -
name (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
test(TCPSession &session) (defined in core::SessionFilter)core::SessionFilterinlinevirtual
- - - - diff --git a/html/classcore_1_1SessionFilter.html b/html/classcore_1_1SessionFilter.html deleted file mode 100644 index 69d958e..0000000 --- a/html/classcore_1_1SessionFilter.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -My Project: core::SessionFilter Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::SessionFilter Class Reference
-
-
-
-Inheritance diagram for core::SessionFilter:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::SessionFilter:
-
-
Collaboration graph
- - - - -
[legend]
- - - - -

-Public Member Functions

-virtual bool test (TCPSession &session)
 
- - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Object
-std::string name
 
-std::string tag
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1SessionFilter__coll__graph.map b/html/classcore_1_1SessionFilter__coll__graph.map deleted file mode 100644 index dcfae7a..0000000 --- a/html/classcore_1_1SessionFilter__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SessionFilter__coll__graph.md5 b/html/classcore_1_1SessionFilter__coll__graph.md5 deleted file mode 100644 index e75907b..0000000 --- a/html/classcore_1_1SessionFilter__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -49ec60c1d28ae09032cf4b8ee15c98a8 \ No newline at end of file diff --git a/html/classcore_1_1SessionFilter__coll__graph.png b/html/classcore_1_1SessionFilter__coll__graph.png deleted file mode 100644 index e4d8ab90c7bf1698bc44a9257e015efc9e31c226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3819 zcmchaS5Om*(tttfRhk^61VKT1krI?DASD!!fJ9K1ZWQ=;cTE^Et{aQU~ zsID#B{G#Tyqp}6*Xp#N-kL0u!rIL{`<>+Z?KmyU*b3qo6Wj^Y?-JvS_Xt(gNm5RnW ze9h4fMUa*Vr~2^5yfNGG@~78zmhthQ&7z@AmR|}M_#2}@6-`T&a?gzLWRx!`Q5NuD zb85Hjv$&!H$Sx57!1=QG{pJsY35Qt^SJ6tOx3^eO)y)l-Py$EQDrZarZ4c45+p{r4 znktXe^Xhj{8MIFS$aczPrY*Q(&w+;EJ=cK*csIe0Y%`Ks+1QTjRU=93Qrx@+la zX;GDxmDXvP3z)%QOq^`dJ(x(M=LE-upZKObsv+Eav*jICL{FjAMvKL938iv<0jcu9 zK{5s;ELxCtNfoO3x^n=>-s||&X%0@Y;?|MKW0fl49`OS1&9aY@xK}5+Dr9!j(76Yw zx#Mf71cS2Rn86tSHUlIIdzUybol8OIk(@)EF1IPiTmH)1)7(sW=6(% z^;Olv*-y}t6p%@lHBy8`M%dotHz|I0!o5osm}0L@PfODo4H@umT<>>RN&fq4%-*|l zZird7?4lqWA74@LvHa@#zu7-0K@;hq@f=n!3B6m$SMxTPgZ7g;t&=eq^X* z;yu0KqxR<)U?Xd*CsH37bEICCmeh(!UYIb~pxFO9EqE3r5%&7yap7|HV4o%P!;Ovu zAra85U7FFZ(9Y5JrS~NV&u6{l?RAn52D&MtD)Rwt0CV1MD>+UPc()QDn`;fS)BTc| zTi9ms<)WLQw_gCHTXT3CVb+&gf=dHgT76nUy|1p#%T{8%xLe~URxF0_XgWGMep3M% zh|`tvNH_tTDwb@F+ZS+k#40d7pRq5W$>YGKpi8J`ZiKN9Tgt_h)pit6+~eTsgTT2y zr|lZx*hyoh(|Hhqy0204xRiGlRA{k@0t3xKOfE?*b zi`@p_w4()H;$e}iH^S(u#m>8imf5sKN`pMc0W}>V)bV~KX@AUJe4qu5b|_tFIx^fS z^|Z_Dr@n!>Wj(98;!xiV!Pv+mBl-_Qk(n@u;IL~$mqvp?*S#XgIaXD_yvTg_#nkfrVyWEsev$od-r2kcbkB_0+sRfpdL?<>=ZN*u zLC$Y%o>E(rV395Ig;A~7#^yL?9-TPsR&0g*`+&Ja51H1gdx%{mAyY$KIi@JYCofX0-IMMzWd zBj~K7z4!;YseB9-SHp5M5L%)J@Rx4Zjan%ACAnKnP+N zl5c10#E(53#gc?A5-s9VG@c$?CC_^{9(8(-y5NT`tq2Zlyhw3b8{q#h&SUmsR5r^i zr=xmJ04r-=r8cdG7SKnC<0kdYWPnJW_w{COlK{OU;wE1$YstvEkb}PGo~>klRF7!C zsv+LGs$L_JO!gC|pPrwcktR|GhP+O;hF@0}O7fj|Uceq1icZkbx6qI|AZ53Kutz|@ z4XUp-^yFkjVtS5YacyfjIgeykWRz7TN@D=Byvn(_G{AifGa_{oae2kMaj~&#Igm8B za(h{kCz|=2O(ngkoF~6K#$v-77%0Sp19_2tT7r%*waZ}OmFDBLf zgNp>HYc~<6F8L-}tH&Xqn%Nrrw@lKlm{KZd=cYzaA`_%!bqB-@D_ixu2a4Ky9?7=>uVY+Sy`Fb< zv>j67N!i74q@QAIjFK$qF0igu2$zPZO?evyj)QH<2yVr@M+OWyh}qiOIg{fVqXxGL zErjbW4YY>#BA@g&$#WHmrG8(0BXveI z(kQV-yuZN)^yN-O4rkCP3Ja3C;0a0`Y|N+K8xm}zMrQj#F^Lv1fZ+Cjcd~121EseP@ zl48_-OJzO+VE_aZhA7;cZP#=TWrD)WS1vysd_Q#w@j7hKD`Pn0&NP;fsom{})CtfD3+E@+}q_?@1PIh2Xw7j7yyOe#W9&pT+QiZjV%M|m zsvWx&VCGJu1(DxAv%%a_JwtRJjLhji1$z~?vFc-|IyQFr%BJ64An5BRE z&$b0*^?WQj9wlGC@d+4p?|r?c^q|k&+L*`sSTHaCA3uk`Y!{GC$Pffx=J-ZCtjXC5L7uc=&F zwSEew6MiL1u1i$*=ViK-Cg*i1KF1ex3x!rw^kiCh*JDzNBqfISQ2MHU3uU^THe?)% zg~1_OTIM0@tqt2$09Uw3D&9r{)muO4%iTiWoQRISyDed3KgG_gjK_+o@p*9-I-3e= ztMW$7;TKj`s1yU9Q=qX#Ub7%x=d7`k&0NXxb33C;Y2J@dlRdwdLs=YDzX=Kk1K(#N zoDXk1CF=xce4&DpU0)V%WrM~QBf8p8vG*y?8wIOE;H(cBMt*Kj^^dkQhg{83tCEdV zerfdgWizWlC-58sq{q~K{@^6@_XyMaTNZx+XO|*T4yAmafc1zjUU7bRQyfRO(-88wb&A?zAcj>;tkp1t zR^%gvoRqUkk*d0=IJW7rSa`#9=Cht8$OzEkzVv#!|$p8YH@POG8tC_NZa+X*xlSk-Hu>jezHY_?h@;hwa*K`Yc1}W>Ves*dFv@TyMQ7!1Rag zNi)B5ym^QYX(~P2_S=q{hSl#X_oRjuB@PJa!|bh?$jHvgNlsxf`c{qB2}~*I;NEQs zXr#-I<8Z@W$NxengCt?2%gf7S3o6$#+}N0_TPdp~91c(9Q-L~ZZ2huvb*1OzOm~?r oLFdBDlJ~e?3o-o*Z-1zb=SPzo2U$d~zgIFnZLn6wlb7ND2h3(|q5uE@ diff --git a/html/classcore_1_1SessionFilter__inherit__graph.map b/html/classcore_1_1SessionFilter__inherit__graph.map deleted file mode 100644 index dcfae7a..0000000 --- a/html/classcore_1_1SessionFilter__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SessionFilter__inherit__graph.md5 b/html/classcore_1_1SessionFilter__inherit__graph.md5 deleted file mode 100644 index e75907b..0000000 --- a/html/classcore_1_1SessionFilter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -49ec60c1d28ae09032cf4b8ee15c98a8 \ No newline at end of file diff --git a/html/classcore_1_1SessionFilter__inherit__graph.png b/html/classcore_1_1SessionFilter__inherit__graph.png deleted file mode 100644 index e4d8ab90c7bf1698bc44a9257e015efc9e31c226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3819 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 diff --git a/html/classcore_1_1Socket-members.html b/html/classcore_1_1Socket-members.html deleted file mode 100644 index cc1fa27..0000000 --- a/html/classcore_1_1Socket-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Socket Member List
-
-
- -

This is the complete list of members for core::Socket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data)core::Socketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out) (defined in core::Socket)core::Socket
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
- - - - diff --git a/html/classcore_1_1Socket.html b/html/classcore_1_1Socket.html deleted file mode 100644 index 5227104..0000000 --- a/html/classcore_1_1Socket.html +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - -My Project: core::Socket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

#include <Socket.h>

-
-Inheritance diagram for core::Socket:
-
-
Inheritance graph
- - - - - - - - - - - - - - - -
[legend]
-
-Collaboration diagram for core::Socket:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - -

-Public Attributes

-bool reset = false
 
- - - - - - - - - - - - -

-Protected Member Functions

-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - -

-Protected Attributes

-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

Socket

-

The core component to managing a socket.

-

Hooks into the EPoll through the registration and unregistration process and provides a communication socket of the specified protocol type. This object provides for all receiving data threading through use of the EPoll object and also provides buffering for output data requests to the socket.

-

A program using a socket object can request to open a socket (network or device) and communicate through the streambuffer interface of the socket object.

-

The socket side of the Socket accepts EPOLLIN event and will maintain the data in a buffer for the stream readers to read. A onDataReceived event is then sent with the data received in the buffer that can be read through the stream. Only sockets that send events to epoll can be used with this object.

-

When writing to the stream the data is written into a buffer and a EPOLLOUT is scheduled. Upon receiving the EPOLLOUT event then the buffer is written to the socket output.

-

Constructor & Destructor Documentation

- -

◆ Socket()

- -
-
- - - - - - - - - - - - - - - - - - -
core::Socket::Socket (EPollePoll,
std::string text = "" 
)
-
-

Constructor

-
Parameters
- - - -
ePollThe EPoll socket descriptor.
textA title for this socket.
-
-
- -
-
- -

◆ ~Socket()

- -
-
- - - - - -
- - - - - - - -
core::Socket::~Socket ()
-
-virtual
-
-

Destructor

- -
-
-

Member Function Documentation

- -

◆ eventReceived()

- -
-
- - - - - - - - -
bool core::Socket::eventReceived (struct epoll_event event)
-
- -

Parse epoll event and call specified callbacks.

-

The event received from epoll is sent through the eventReceived method which will parse the event and call the read and write callbacks on the socket.

-

This method is called by the BMAEPoll object and should not be called from any user extended classes unless an epoll event is being simulated.

-

The return value of false will delete the socket object causing the destructors to run. The return value of true will enable the socket on ePoll to receive more events.

- -
-
- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::Socket::onDataReceived (std::string data)
-
-protectedvirtual
-
- -

Called when data is received from the socket.

-

The onConnected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The onDataReceived method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN

-
Parameters
- - -
datathe data that has been received from the socket.
-
-
- -

Reimplemented in core::UDPServerSocket, and core::TCPServer.

- -
-
- -

◆ onRegister()

- -
-
- - - - - -
- - - - - - - -
void core::Socket::onRegister ()
-
-virtual
-
- -

Called before the socket has registered with the epoll processing.

-

The onRegister method is called before the socket is registered with ePoll so objects extending the Socket definition can initialize the socket before receiving events. Evoked when the descriptor is set using setDescriptor for the socket.

- -

Reimplemented in core::TLSSession.

- -
-
- -

◆ onUnregistered()

- -
-
- - - - - -
- - - - - - - -
void core::Socket::onUnregistered ()
-
-virtual
-
- -

Called when the socket has finished unregistering for the epoll processing.

-

The onUnregistered method is called whenever the socket is unregistered with ePoll and socket communcation events will be stopped. The default method will close the socket and clean up the connection. If this is overridden by an extended object then the object should call this method to clean the socket up.

- -
-
- -

◆ receiveData()

- -
-
- - - - - -
- - - - - - - - -
void core::Socket::receiveData (coreutils::ZString & buffer)
-
-protectedvirtual
-
-

receiveData will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL.

- -

Reimplemented in core::TLSSession.

- -
-
- -

◆ setDescriptor()

- -
-
- - - - - - - - -
void core::Socket::setDescriptor (int descriptor)
-
- -

Set the descriptor for the socket.

-

setDescriptor establishes the file descriptor for the socket and registers the socket on the EPoll controller. setDescriptor will invoke the onRegister() event.

- -
-
- -

◆ shutdown()

- -
-
- - - - - - - - -
void core::Socket::shutdown (std::string text = "unknown")
-
-

Use the shutdown() method to terminate the socket connection and remove resources. This method is provided to ensure that all destructors are called for all inherited objects with a virtual destructor.

- -
-
- -

◆ write()

- -
-
- - - - - - - - -
int core::Socket::write (std::string data)
-
-

Write data to the socket.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1Socket__coll__graph.map b/html/classcore_1_1Socket__coll__graph.map deleted file mode 100644 index 80dcd4f..0000000 --- a/html/classcore_1_1Socket__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/html/classcore_1_1Socket__coll__graph.md5 b/html/classcore_1_1Socket__coll__graph.md5 deleted file mode 100644 index dd6eaea..0000000 --- a/html/classcore_1_1Socket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6630f35392a585fbda340b0878b403d5 \ No newline at end of file diff --git a/html/classcore_1_1Socket__coll__graph.png b/html/classcore_1_1Socket__coll__graph.png deleted file mode 100644 index 59f350a854301d9a6dd6d8d72401891f08464d82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5377 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 - - - - - - - - - - - - - - diff --git a/html/classcore_1_1Socket__inherit__graph.md5 b/html/classcore_1_1Socket__inherit__graph.md5 deleted file mode 100644 index 17374d0..0000000 --- a/html/classcore_1_1Socket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -973318a6709306b209b8a85aac82b311 \ No newline at end of file diff --git a/html/classcore_1_1Socket__inherit__graph.png b/html/classcore_1_1Socket__inherit__graph.png deleted file mode 100644 index fecc24d2dc4559f55f2172ba2da4ebeae4960be7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23043 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 - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Subscription Member List
-
-
- -

This is the complete list of members for core::Subscription, including all inherited members.

- - - - - - - - - - - - - - -
event(std::stringstream &out) (defined in core::Subscription)core::Subscription
id (defined in core::Subscription)core::Subscription
ifSubscriber(TCPSession &session) (defined in core::Subscription)core::Subscription
mode (defined in core::Subscription)core::Subscription
onSubscribe(TCPSession &session) (defined in core::Subscription)core::Subscriptionvirtual
owner (defined in core::Subscription)core::Subscription
process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) (defined in core::Subscription)core::Subscriptionvirtual
subscribe(TCPSession &session) (defined in core::Subscription)core::Subscription
subscribers (defined in core::Subscription)core::Subscription
Subscription(std::string id, std::string mode="*AUTHOR") (defined in core::Subscription)core::Subscription
Subscription(std::string id, TCPSession &session, std::string mode="*AUTHOR") (defined in core::Subscription)core::Subscription
unsubscribe(TCPSession &session) (defined in core::Subscription)core::Subscription
~Subscription() (defined in core::Subscription)core::Subscriptionvirtual
- - - - diff --git a/html/classcore_1_1Subscription.html b/html/classcore_1_1Subscription.html deleted file mode 100644 index 4bd1830..0000000 --- a/html/classcore_1_1Subscription.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -My Project: core::Subscription Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::Subscription Class Reference
-
-
-
-Collaboration diagram for core::Subscription:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

Subscription (std::string id, std::string mode="*AUTHOR")
 
Subscription (std::string id, TCPSession &session, std::string mode="*AUTHOR")
 
-int subscribe (TCPSession &session)
 
-int unsubscribe (TCPSession &session)
 
-virtual int process (coreutils::ZString &request, std::stringstream &out, TCPSession &session)
 
-virtual int onSubscribe (TCPSession &session)
 
-int event (std::stringstream &out)
 
-bool ifSubscriber (TCPSession &session)
 
- - - - - - - - - -

-Public Attributes

-std::string id
 
-std::string mode
 
-TCPSessionowner
 
-std::vector< TCPSession * > subscribers
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1SubscriptionManager-members.html b/html/classcore_1_1SubscriptionManager-members.html deleted file mode 100644 index 98308d3..0000000 --- a/html/classcore_1_1SubscriptionManager-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::SubscriptionManager Member List
-
-
- -

This is the complete list of members for core::SubscriptionManager, including all inherited members.

- - - - - - -
add(Subscription &subscription) (defined in core::SubscriptionManager)core::SubscriptionManager
output(std::stringstream &out)core::Commandvirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::SubscriptionManagervirtual
removeSessionSubscriptions(TCPSession &session) (defined in core::SubscriptionManager)core::SubscriptionManager
SubscriptionManager() (defined in core::SubscriptionManager)core::SubscriptionManager
- - - - diff --git a/html/classcore_1_1SubscriptionManager.html b/html/classcore_1_1SubscriptionManager.html deleted file mode 100644 index 558182a..0000000 --- a/html/classcore_1_1SubscriptionManager.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - -My Project: core::SubscriptionManager Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::SubscriptionManager Class Reference
-
-
-
-Inheritance diagram for core::SubscriptionManager:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::SubscriptionManager:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - -

-Public Member Functions

-int add (Subscription &subscription)
 
-int removeSessionSubscriptions (TCPSession &session)
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
-

Member Function Documentation

- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::SubscriptionManager::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-overridevirtual
-
-

This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.

-
Parameters
- - - -
requestThe request that was entered by the user to invoke this command.
sessionSpecify the requesting session so that the execution of the command process can return its output to the session.
-
-
-
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
- -

Reimplemented from core::Command.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1SubscriptionManager__coll__graph.map b/html/classcore_1_1SubscriptionManager__coll__graph.map deleted file mode 100644 index 6f44801..0000000 --- a/html/classcore_1_1SubscriptionManager__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SubscriptionManager__coll__graph.md5 b/html/classcore_1_1SubscriptionManager__coll__graph.md5 deleted file mode 100644 index cb8634c..0000000 --- a/html/classcore_1_1SubscriptionManager__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6483fa7ecc4d788b414f5d6678a03717 \ No newline at end of file diff --git a/html/classcore_1_1SubscriptionManager__coll__graph.png b/html/classcore_1_1SubscriptionManager__coll__graph.png deleted file mode 100644 index b4fd9f03ba50410537eced689dc7981ba2538f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4385 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 Q#*_hwrlCgNBgg3f0wU9D^#A|> diff --git a/html/classcore_1_1SubscriptionManager__inherit__graph.map b/html/classcore_1_1SubscriptionManager__inherit__graph.map deleted file mode 100644 index 6f44801..0000000 --- a/html/classcore_1_1SubscriptionManager__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1SubscriptionManager__inherit__graph.md5 b/html/classcore_1_1SubscriptionManager__inherit__graph.md5 deleted file mode 100644 index cb8634c..0000000 --- a/html/classcore_1_1SubscriptionManager__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6483fa7ecc4d788b414f5d6678a03717 \ No newline at end of file diff --git a/html/classcore_1_1SubscriptionManager__inherit__graph.png b/html/classcore_1_1SubscriptionManager__inherit__graph.png deleted file mode 100644 index b4fd9f03ba50410537eced689dc7981ba2538f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4385 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 Q#*_hwrlCgNBgg3f0wU9D^#A|> diff --git a/html/classcore_1_1Subscription__coll__graph.map b/html/classcore_1_1Subscription__coll__graph.map deleted file mode 100644 index 284eb43..0000000 --- a/html/classcore_1_1Subscription__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1Subscription__coll__graph.md5 b/html/classcore_1_1Subscription__coll__graph.md5 deleted file mode 100644 index d8c5317..0000000 --- a/html/classcore_1_1Subscription__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f390c0fbcf254a8f2dec14ce3855745 \ No newline at end of file diff --git a/html/classcore_1_1Subscription__coll__graph.png b/html/classcore_1_1Subscription__coll__graph.png deleted file mode 100644 index 37c29306f1aee742260ac48f310382fb8648c59c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58731 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 - - - diff --git a/html/classcore_1_1Subscription__inherit__graph.md5 b/html/classcore_1_1Subscription__inherit__graph.md5 deleted file mode 100644 index 39c8bbf..0000000 --- a/html/classcore_1_1Subscription__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b31e82e2b73337305b35736356004421 \ No newline at end of file diff --git a/html/classcore_1_1Subscription__inherit__graph.png b/html/classcore_1_1Subscription__inherit__graph.png deleted file mode 100644 index 6ac6548e945a4418870a2d40b14f3342d7402e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3701 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 diff --git a/html/classcore_1_1TCPServer-members.html b/html/classcore_1_1TCPServer-members.html deleted file mode 100644 index f0ea3d8..0000000 --- a/html/classcore_1_1TCPServer-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - - -
-
-
core::TCPServer Member List
-
-
- -

This is the complete list of members for core::TCPServer, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
blackListcore::TCPServer
commandscore::TCPServer
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSocketAccept(EPoll &epoll)core::TCPServervirtual
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::TCPServerprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPServervirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::TCPServerprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
removeFromSessionList(TCPSession *session) (defined in core::TCPServer)core::TCPServer
reset (defined in core::Socket)core::Socket
sendToAll(std::stringstream &out) (defined in core::TCPServer)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender)core::TCPServer
sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer)core::TCPServervirtual
sessionscore::TCPServer
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
subscriptionscore::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")core::TCPServer
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
whiteListcore::TCPServer
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPServer()core::TCPServervirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPServer.html b/html/classcore_1_1TCPServer.html deleted file mode 100644 index fd3add4..0000000 --- a/html/classcore_1_1TCPServer.html +++ /dev/null @@ -1,587 +0,0 @@ - - - - - - - -My Project: core::TCPServer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

#include <TCPServer.h>

-
-Inheritance diagram for core::TCPServer:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for core::TCPServer:
-
-
Collaboration graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TCPServer (EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
 
virtual ~TCPServer ()
 
-virtual void sessionErrorHandler (std::string errorString, std::stringstream &out)
 
virtual TCPSessiongetSocketAccept (EPoll &epoll)
 
-void removeFromSessionList (TCPSession *session)
 
-void output (std::stringstream &out)
 Output the consoles array to the console.
 
-void sendToAll (std::stringstream &out)
 
void sendToAll (std::stringstream &out, TCPSession &sender, SessionFilter filter)
 
void sendToAll (std::stringstream &out, TCPSession &sender)
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - -

-Public Attributes

std::vector< TCPSession * > sessions
 
CommandList commands
 
IPAddressListblackList
 
IPAddressListwhiteList
 
SubscriptionManager subscriptions
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - -

-Protected Member Functions

void onDataReceived (std::string data) override
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TCPServer

-

Manage a socket connection as a TCP server type. Connections to the socket are processed through the accept functionality.

-

A list of connections is maintained in a vector object.

-

This object extends the BMACommand object as well so it can be added to a Console object and process commands to display status information.

-

Constructor & Destructor Documentation

- -

◆ TCPServer()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
core::TCPServer::TCPServer (EPollePoll,
IPAddress address,
std::string delimiter = " ",
int depth = 10,
std::string text = "" 
)
-
-

The constructor for the TCPServer object.

-
Parameters
- - - - - -
ePollthe EPoll instance that manages the socket.
urlthe IP address for the socket to receive connection requests.
portthe port number that the socket will listen on.
commandNamethe name of the command used to invoke the status display for this object.
-
-
- -
-
- -

◆ ~TCPServer()

- -
-
- - - - - -
- - - - - - - -
core::TCPServer::~TCPServer ()
-
-virtual
-
-

The destructor for this object.

- -
-
-

Member Function Documentation

- -

◆ getSocketAccept()

- -
-
- - - - - -
- - - - - - - - -
TCPSession * core::TCPServer::getSocketAccept (EPollepoll)
-
-virtual
-
-

getSocketAccept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service.

- -

Reimplemented in core::ConsoleServer.

- -
-
- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPServer::onDataReceived (std::string data)
-
-overrideprotectedvirtual
-
-

Override the virtual dataReceived since for the server these are requests to accept the new connection socket. No data is to be read or written when this method is called. It is the response to the fact that a new connection is coming into the system

-
Parameters
- - - -
datathe pointer to the buffer containing the received data.
lengththe length of the associated data buffer.
-
-
- -

Reimplemented from core::Socket.

- -
-
- -

◆ processCommand()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int core::TCPServer::processCommand (coreutils::ZString & request,
TCPSessionsession 
)
-
-overrideprotectedvirtual
-
-

This method is called when the Command associated with this object is requested because a user has typed in the associated command name on a command entry line.

-
Parameters
- - -
thesession object to write the output to.
-
-
- -

Reimplemented from core::Command.

- -
-
- -

◆ sendToAll() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
void core::TCPServer::sendToAll (std::stringstream & out,
TCPSessionsender 
)
-
-

Use this sendToAll method to output the contents of the out stream to all the connections on the server excluding the sender session and the entries identified by the passed in filter object.

- -
-
- -

◆ sendToAll() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void core::TCPServer::sendToAll (std::stringstream & out,
TCPSessionsender,
SessionFilter filter 
)
-
-

Use this sendToAll method to output the contents of the out stream to all the connections on the server excluding the sender session.

- -
-
-

Member Data Documentation

- -

◆ blackList

- -
-
- - - - -
IPAddressList* core::TCPServer::blackList
-
-

If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted.

- -
-
- -

◆ commands

- -
-
- - - - -
CommandList core::TCPServer::commands
-
-

The commands object is a CommandList and is used to store Command objects to be parsed and run as data comes into the session.

- -
-
- -

◆ sessions

- -
-
- - - - -
std::vector<TCPSession *> core::TCPServer::sessions
-
-

The list of sessions that are currently open and being maintained by this object.

- -
-
- -

◆ subscriptions

- -
-
- - - - -
SubscriptionManager core::TCPServer::subscriptions
-
-

The Subscription Manager tracks all subscriptions on the server.

- -
-
- -

◆ whiteList

- -
-
- - - - -
IPAddressList* core::TCPServer::whiteList
-
-

If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPServer__coll__graph.map b/html/classcore_1_1TCPServer__coll__graph.map deleted file mode 100644 index d436c64..0000000 --- a/html/classcore_1_1TCPServer__coll__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/html/classcore_1_1TCPServer__coll__graph.md5 b/html/classcore_1_1TCPServer__coll__graph.md5 deleted file mode 100644 index aa1fee4..0000000 --- a/html/classcore_1_1TCPServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5639fb4f18abd97029a84f66b9653ec4 \ No newline at end of file diff --git a/html/classcore_1_1TCPServer__coll__graph.png b/html/classcore_1_1TCPServer__coll__graph.png deleted file mode 100644 index 54b413e68331d9d2316608046d9be80a139bfbe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44042 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 - - - - - - - diff --git a/html/classcore_1_1TCPServer__inherit__graph.md5 b/html/classcore_1_1TCPServer__inherit__graph.md5 deleted file mode 100644 index 4e3e5fc..0000000 --- a/html/classcore_1_1TCPServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6ce798a6fc432dc7d50ce7b2829a1d3c \ No newline at end of file diff --git a/html/classcore_1_1TCPServer__inherit__graph.png b/html/classcore_1_1TCPServer__inherit__graph.png deleted file mode 100644 index 6cba3d4791d882852b62b56cc21a48505d8219e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11707 zcmch7WpJBalcnRB*>TJqvmG-tGshHj%*-4aVrHhq%*@P=DP{)6%$Au+mSOeIY)#EK zGh4O$XQfi9B;BXg&+U8ro^!e*)l_8BQHW4rU|`VY<)psAz`WyzzTlBy|M>78}9?qz@jB1gOgaUdaUBrqVMl;!Qfz^?(e(`YCd zgQ6C?ZC7)5VD#;nZE>Z=EXvSOYoZ!G0+INbB&FfSmjN`?UcI7Xs6W}L_b?uN-Y!Ga z*Mv96-E!CVuh-zIkYL}z&_~L6zJq~Dq{xL)!{5V!IS%rL6*EMOYn-<&~8r zLwE{8-&eRF9skL0ODx6mxTd3{9O1IZk16D9WEc;RBVTRW>}5W;y0jp!&dl=!!cFiR zWW)}54_ABtYkX3`5Kf2s2i|c%xT@!2*B)3|LCjM0@uSrsTs8U6(=)ePzxOC&Cu%IY zQtE57`#6yDQRkG~KQ%(&f-EtltHzo$JvL26BR#!*5Zh{ZYa=|;qW^tzcAbB1a%fFK zQ;e21je3@|?@&lj1;^(&g+(DeG!r6vp-m;;&>9;n>KduQ#G=4&r{n1z*gc)uF>-nS z`pepdo~5(lQ@;T3?><+jbNk-GtcI?^0ZZgc{L`r2DEp`-v$l5a72Vok{M}7F&D}R) ziVFVx=0(cK+=5o691n??^i>crW26MNGK5?7@oL(#fm0QC2d=NXH-FtoY9Ls~cnP7M)Lq^Tb2<4p2q)nj`g> z^WFf+r?Q6m!laHp3@GKccv0|B+r)KNJ&~4l!EgV%#QByM>8N7u04F*+FJ(FR0I5cI zFL@@>kKols7QIWK2HR^}TbEG-5Y>{Uh99^UFBv#9i>>k&ztzTpe8((~?w86k<$$yE z;_bPv&PCx^1?4ssvv#0Kh3Sfpvl?ZuHx4@5i=W|CvtK(jc%PKkBNFn2gn1qjtw1*L zQS!0`{h2tCy!}0`Ne(8fb8XO8YSiBmCo~< z7C_~XMWw}5TIh?csb(HG6%T6Z+1LsCPN0xLb(YN2+nZgoo*`*2x+b0w zEQyK49G!T~h=z>%UB`E`<}?Ihl(3HU@AYC#!CVH192^$CnZUcIq~p0;M7lLE!)j9k z-Bn^y{<@>VU0+8Jm8ypWDyJ~P31BI24sgU|KO#i95@XXxr@xZL7eBy1{w1x9gZlbe zt)q85sQO)Nj@3sOyD?63_*b$gJ(q~cnx=?@kR@#(&-m}Fh3di=Du)usn5jR~+7c&A zhRA@2i}5diQ-ko5{wBIBiUfRs3j__5xRMptPFOM>#TpV`c73En3QBjefUJoVaVVA8 z$LDKz)&}h1NS#@UF7x*lzfJ0=Y@LV{_jY`ao;TcFTcSGF;upt)6Ws@G+YdNgaihQe zQPg0)@XEF>8#Cc3!fi%S*7rD7Ka-W*ovYFvex^+WGfdorM?a^l8;1IhNw2N2S-J@jM{k|+xZ@3la$J2kx9MFuEpbArl z`cKLb7cmjT%wvg+>z$mKKtn}MHjid@0Zo;%n{lzloC**H0es$vBuEX@sa=PS|ExG} z*xBjz?us|p`2=^m+Q~P%pPXT8y75()RJXyrC_No_xfy2WtIpdqAtAW!-dKbjq5A#U z(Hyv{9NVDl5sp&x%NM@~N5{}_?O>AHRS`BXu_kl+@DN{!>}@=N z9ZfJmByjLM%%dJ~5(K_M=2{5|{s0I2yi~onv!n3gpW!SS(>pt3onFS=Pb#4lYVNnF z4GOSZc7|NJ=`6yy0>VNh7%uNZ-DiDeq^P&NcLO!};zWIarX_1gD9FS3Rx=%N(v?zE zZgF>hZNE1) zRR}LyycF22m71ctzn4-`J{tX#7-sb77+6aY!o>|F7i{sqKkYNehZQq3yn4j@5eNJ4 z0eY9mGC~Kl01y7x{Qs{}{QoqFKE}FnW=5?+r$D)=82!+lzoGKcQ(Ifx;Xu+1 zLs?|I4#e%7f4#@X7v!XFrTv4jlte?s1d`_g^4)z}Qpn$>#+`o_Z{_@cBegdMF@#8Y zN+c;7tN(@^?C{g7r1aCc>1f$Kp+hg#r}iu{DgWPSM=Nx5#khbBy|a!q8ZjhF&0p@8 zyAyqSD08Qd9g>#5Ah!#uTEi3kt`#d5-V=9hUs8sK#*QSFbXE9aRIO&?Gwm=v7fpkL zb~xyMHS)A1iyncTbk5><(GWXf0J607j1oS)oEVfVme!_IgkTk%)N~G0U1kK)4G&wL zwz}Mp|5m^2Cb#M|(pq<>EY9PjqP2ecZSIr{I3re5t2~-I=2#IqFY+{(XjC0QB`0&q zp3zAiI9~!xMEw9+@QGt_|C$v9VIENqn~vILu6VCM4MJ1RKZnRjj4`Nr#6UK1NY}Xr zmNiPW#n+b{H|}F6U~}|js(48zA@};mxn;ZMF+(N*b(9Y3KCh=6dD`p&BCbT#_)YHA ztf5!D4rDWl^Txs)FN+DM3+w;~*t##}HlC*Ja?P(CRlVj)%*HWLfZq81?TFCJMq?L_ zg0l&emfwa70%VQ*3sr#Ky;gHW!-w6+{F#}Vl3c2G75jq53>%l)P0@-&j@LLT?g@{|?j{7_Y@D3$3X86*>e;KHR%*VW>fjPH$3e_P!{;$WkTXY8KC zP|0l}IS(wZyVNg^b8}H0g$AD01T2EHbf`}E7ET?AG|g{=n`EtxYcKw5eTcg77mhv{ z%8xgW+#jd`tA8J<(#x853Q`(9EyD5tLb}R@tE9R*18DU~qQ+~gBI>5lo$J;z1y@&h!*}kqRkMgEe1DM%dll;3&N|4Arj()xu@(-?v@6cO6Yyq#br9z^a?<_8 zh~JUnf%IB>$ee7It@gHm4{oMyIO^Aq`mfkvk!iVx`fsGNhjudaMsJeP?1Q|ciS6&Q zqTG`BwKPZ4XD9!@oA+S>wVOm~58$mf8dVMVj<3>Ka4htyy;p^Qq(S@d$S+wNjeU8Z z;vY|wsxlpK=N$!|G%2a&1nQh!QdZ*M%yIo5tva9XW+{m{{sp!FpPc3?dn}`E*d7C z!b0+K?0zZDd-l84=Hzde7rB6k6W8pG-sqj1Yii}tSLgxNf%T`K^=UhxYep9mCwK&T zSwaxd@Q-62%rs!|KW5FnS^ki;7NF38lX+N0tDgeqz`V#^6y84w{RkAPd`e1g=qve3 zCf;;wgO0=zucVfRV{q$pUmt#KIehb6GOG9dq^EXcKTNUA(35-oRQ)tXWav4(9DpKX zVcB?#)0f8vfr8S<#A zde+%rzkF`FgpLDJkWZo(tdE?sZID*V&oo_suT=6;Up>(fLLS2~^zjm$n?9RVs?~$0 zC%FDqQ9VPvaJG5PNeAx$7nmB%z_>UW$FBP&Vj6_wt>T%J6&Lqqy%eX!la={Km868p4&>Fxq(w51DrRhWY7uz#|^Mdi%_x6cXhi z$&t_9;}7~uLcw!9EajSyVI~oIdyCXbr-QTtmF;*#?*mRw4*W~wL6bW0TD}GeF5V9!T=i)AL}XIzrz<_%mhb!Ao9H1l_S{PX5L$cU-B+t$%53u+6(+V>pw!D@zS z-;a-gL%ShL+K#z@->l=NgnT(29!&v7lMAu4%WWg61s*3gA>EJ%3x+$-;tyw1v)PON zc&iax+S=PnHoCgH4E~P&qvRMvTrVz3Cgv7)x0k@`KGtaORB}haD=V8Mi7keoboikK#r;Dt9NTYuu=S2+`1t&?9^Bja;SXCJVZv%2+Uxwl8B zb4Nr%(Ww0*g?k%TA2_<{+DBVr>a({In|q7XeL!3Z(}`6OCA*kBNc!ZdlzlL zHlX9rG!j{htsqICWDKL*oMMUw=zaskO9FDHCx5#3&d{8KX#tM!fISwn}dscyr`I=HC4#>ab|7J zz(5i5@~}As7?^5dVlwl4rmxIbr)AybukCc`KpaX?b#QQCVybLm4R6rYV*2o5p|Q~- zCAG4tY0Sc$zA67_W@hwB++51BRFGI`=;?$K_}aB3NW#MkozAufafr>ojOp^Odv_aK zx^UK+gqIhn-)K4ax89E(&CXwCMgbRhZDvMxIPN7oRVxJR6O#MUoB$3EX~W4U#Jxu8 zHiMq>qpALW*B~)8gxG1i+dD0t+8jQwb2VCxHA&IVimtAP-@g%idb}7J+u#C`g1)gG z7Ro*#BkQVo+7t!)wxr~48e+!Nlhgv*t+~)Bi^@iHJKR$$Prmy2@RTol*pH5qzlS{! z4;7Y(C@TkFbYP+l)EKVveG|j{U`K_&*I0afA#q~HX01d!u(7eW?ibY20V}`gp&3us zE$n@HAo^A`bHpXm+jqo^5X|G_8W0d*)nHo)J7UEI2e-D`Bdl;}(Se3QN@?yOY=3tg z+0n61W286iw%won0x6uIb0tLkUTD75&vtr$#_R{FQ0(D3{&69y-`CeCAuoS0F8uCz z_XZyJ9U1A11V!FP=wix3cc+1j%)2nk{B3hKYqtZmqn&N3glTP)dV&+6YCbYx^3a_q zlNp!jxTLg{@v1|hD3R*!{d>bB_l}vyEj|_dH9oB!X?2XfMh_BFW=+jKqBDsj_lzd4 z-DjVN8eiI7;uzA^hrjHlwY?>#97jt_1KZgc;v)LdqeZp)z;F0bCIn&mlbNNML`BL* zhNO!Nv&>_#oM`hbaV_1c+2)ZP8pvoEy~R8&^GTewQDqk$m&K;6|Y z1R3seDjPo~#XJn{NZv72Q(I5Z!s!C?)mGWG zbe&p#-q2ImG8(#4cj#EC&k;yoq@;ZB7lcMiAFK7a#kIAc!pT1|GJ1=?@+Ct@?hJ%W z=M_% z`AHG>8oT-UzK)F4Ema|xmu-FbVLlwgckA^|v~dbBFgE69o6%Ci=;5=0AF&e55cHzY zR)L&%eiI>o+s8jyQIzS-kd5CE;Lm2`SrYMa{S~8B8Gzdm9qijutJ{dsxcsH2hK`A; z9T8K2jlj_E_fjyTQ`+Y%Vs?p5pcis9Jh6VINA+ar$7EVUc*NQ^|CfEQO?Z!Th}1^g z)!gjWV+zB|%S$$8)+WL=12UEDF(Q2XMo)H^y)I1p>Yyr;7n!a0fQEC$|H zs^oXS#dLI+r+gar4rf<$a?*9GgPfz@?P<&zb&s_)-yJP$@bh{5fFKR|p5D80q;6@f z=Gmw@!cGmZ*Q(lfp*?QxAt@ zhVt;p>VCGgF3Zfw5L(`EN)`Lzv`$1uM)o#L9@l7zPTQF^_5NBuqpIqY-AN&ovVXSM z3MY#n1ML#?WOaLA9o3tu%$J~3cV?-;U(1)Qt#Jqn=8h>Cef_DA*jMB4yLN|JSGk$jJtDsQPKcM5$My#)+eVvv4K1XB{30c?Cv_R35KO1W= z*_VbU6$7K^*RRn0{7Qit(qD>-l_aF9MWvuz=sp>dgRU_Fx)C~>lr(KYfv28;TzsNq zOY6VyT0Gj&gUo;bW>QEoN>ix(F9cL~k!Vun<=L2BP5(d;I&qqSl4D)mi&}?BVG;}dBT!Q;`CSyUqU$C=P z1f73R&AJRm;g+%*`^$LpANB?FLZ{{6;7MG39O_yUoKCX_6ubfMC!mJ~G%Ka1dh+lL zj8yFXiA^6*&&^;TXhYq|4RudYJ?>|-2Tip%G*sQ4Olxa8r?ZgKfQdd)k=Gg$n>sn2 z?^`T#UpUD?rH4g_4WaCT#HXWDQFvH`{$9d&t>P4TxLKX;E&pugknH4Y?9ILTna)w_Y<1Kt3=FP3&zR!b_?Kk$NlJ*m%LGO=Ob^;jr+ zOG!P?7DoSXJKt6=c&U2U5Vjw$hMbAvqJH>#3Y}eLVjDXKV}0C%8qULLdu^2N@9!UB z$*)gIF%5WIkd8)+iA`PUX%h4jG3-ohHx12?i?d%%rpPg6+|hZqVeE-#%MDk;!OHd_|rNCp4I63cqx8b*hQBQDbX14W+xug>&PBa~93Jb?00mZAY!o@!2mB9~lPaa;t#oU-xlof5z%`)!^KvWT`lp zZ&u8q(&$=%&;d!xI%$v1Uyu=X)GkKNI$@<__n29;4J(bM$42I$K7I|&&(GwcP;FPA z6vdTXuJ-lzaG}PKtk+$z-6?GcwU^vKmb|Ht(^-ktQ`+*&#C`m#Wxc%(#M1y0EXF9$n;{h=X8;!S z?Pku)+;u;TrWMe%-K^j+uHpKPpWIc%9ArJ^3~0;cd;k(5cbZ(^#4z?HY!u zwLL=~c;R1#PT##L1k`=$kT*e^Zu7X(tqrxqBdBa3oU15_Qz;xff4+%|$5IC5tKOEc zkXpX<)CW23zO5~Lj8KCULitbuw~y>wf7dhPv{rnCQTxHcPSI` z`jn0^*LA6kj1nS77W%dr3?Nte%AzUMejnaCT)2ZMacih9B<8MK?qWWvm! z`w}Z=uy&WR?Pz7c5d>GS*_AEcFQ(ZNNJNy2Ojy3K5rWTo?}oUXPOYu+yi$l%bt z= zDGByM-jgzLfh`0p=Y}1TfymRY%VjR5gQG%#V%)~QIWVmSr{H{D^+_rQNBzTwH_K7J#xRGMLA+Zw4lLZ3r@GuYc~>D;7Nr!0Y%t+-BPQMeYgglq{hoPRtHO*^(_MvkJWHzljXg?6l6v~NGC0K9S$4#} zeztl}5wEgbLTbV|6&-?`&wAxb|Mf+0n{TcGTR(oh^o|+BXVn1~J?d zi42?F7%;EsbYd$FTnF@0yy0wYf-SV<%8${r?Jw-dz-ga8P6A0+0%+*@%mE=*{XtoSlEj-5}-!F##{yx^$S-o%FSy>;5Vrj9q zkSGO6=jS!L{Q#8&0mcdA`}$u`M<0xee-0W=G)fEgK?UJQwEKltO)vD6cUDcA?(*tAF;Xj z$C@i6ck>HU=^zwLSjKve|iDp8X9lt5eoZ&j9f$qdtCiX zp5C22=tP0OUlsR?tVV*E(@(%-lJ7=iu7>uArxvs4jF9~%aROom2A9|pdE{K%Kdqg=fX;3Q~*hC)i# z$)N7H`_Y%T-@gfvKf>7df%V7uy;vN_)9R$7WllGQb7cmiq8L9j2dJvD&Mchb;oKAs z%G@k0Aj!ntPE33z<5T10a77QN3dIs|-AhXc;#z@bJ3S|hSAOnIMZ#!a50mq9a|16n z1Dan4G09O7F*p3T`*D!*-S)>g-EP)>d@Szhas=^#ji5i=b`st~Js~GYLEqlwaiM6; zL4R<$(M9ylet+xR?BVR~ZBUMIDs}Jp*eHX#hK4oQ)%m)n4p1W)@!|GHpOH>B(&RQ9 zcQ5%vo53rT7H#%q`=0)s-y3}yWhwQU&hc}06`1Yrw3iz}@wof*4q*otOl>SLzrQo| zT5DvHD{{tR|CP02+@?Gx1{M*~m@JT5P+1b~p&VTmw9Jjkwc6eQsr3cR(H66{zqN0om3$r#ZPsDj3 ziTNd{x=P9Rer*_ZTA&a90b@n@EAEB!f{Td9r64f~7VvN$EiIk8`{ypWR%Qr(3NtZp z774Cl96J*Vv8#1gOiM~3U*KaLpo5FxonpPPnx13=6Y)c?9D+PtQ+ga~bb z$1$s^r>k}SdDxobXp-$X5|bxf%1eXV-Q*33|_4wrNitW&9s%mEOOa&?n z!0c&cb&Mc|w2VwL>o<+?LW{C&GmC%Q6yH3*DT;{ z4979&aE(Tsy3(UxGmsfNL;v#<{Mh1v4Vvl;l;PZh;Icn*z-~iVo1raSKQEL)LGE=c zE61IdKcwXtUGBznj@CpJP~p*E9RLgpn0Zk1t8~fXCOK^(z7PC>5#3Epx`y9=6 z%*|EkHe!?%?77qyyLDdE zAwij!FJYkb(T5nZ1UUS3b`+FTE$`A^AP?#VY;Lb3C@*Mli>EB93mzHS#vd9rTflFZ(?up4=^JCp`H8(AoqB<8Vy zyxv5BOhenYq@<+ex~QW#*yxY*wkIYgJ}QcSu?6JKM)<#=2zc?4i}(@{6YB>=C0yvN zy!N1u;Nsy~+SxJH6!+azurDnw#s0%k{sr2UvOTW8FWf7Efcj?8#s018Fa6@X1CD>@ znc$q)NVKRo*M!8hY+@%Gs6>+LTg?564BI)S!4gp%4VBtFN8i zJEf|;d2cy#s~6B)vQ1JTQ1;$~WavhI@8xd&FtRf#mN#5@ijkRBF7nl*W}$c-^d(cC|SPP?5|AL(fHYa@>PJF>!<|0e9D4Zmkrq;oB z*W&~y7iuea&*l@Se>U)w8!0@VRbM+w7yaws>nlG^zAvZeesr~h>3Wc)8x4Q5DV{Yv zihzRC{;W9dYPJC`TrRlY7d-#@8p7+ok86 z>CKOKxV;vQZg^QZPf1NR4vYd*Gz102=BMsnY1)(`e*{31nQT*EdO@~CsTq9`VgqPzMw2Tfy@~JAvyZG;g z;MbdhO5w)O)6}>hd)i-52CJA_T_Z~HuPyvGQLBIbm%g@1k=|`ZbzJ;&9v)`uJ)1LZ z!naM%KKTO`&+oTslSbGkOnWqx;c%_t+St&DR_z{#H`83CKL>bWZpZw6lTiyWo#c!c z&zjx1IHtWeK4;%Xd*e@4y-XHT<~x8GE%vNmCU+@W(2{^JeKsoW#sLKOG39SHK$r_B zFXkhca85X5(FOBp4l~Tf$zTvzITqjhVBUH4%d)V(d$?ycl^o*Yym$lnN|Gep40MbtDAiCxTzRe z=Qy8j=|&awS|g_Q5Y(?|^*Lvq)b4<$f>+Q&&J|$IoKH$^E5I#Svj{G-v$k=bH?rdK z#{*wm(;n)XAz{zJ2x{t>r|JYu}^G8D}Bi3CJ|jV9EKknRGz!MMoy@h`DKG-i@&n{ZnN!&d%@uwZd!he^cRo zY)x4{c&`XA>rm|_Ei%ejx$PFcF%$}528%Sbg);m1b+(&rWAKUyB?5^RPjxW>@DcUi7JE&G%X%XWflIHfW{4 z(jy9}JA|9U$}kE%s^TgG>Q?7&JizSXS;L1+jmrw(&2$iiSci~(tE!FCnv`>jM6AbOfhLM+6k*bmS7WBUWmOWd> diff --git a/html/classcore_1_1TCPSession-members.html b/html/classcore_1_1TCPSession-members.html deleted file mode 100644 index 87a7975..0000000 --- a/html/classcore_1_1TCPSession-members.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TCPSession Member List
-
-
- -

This is the complete list of members for core::TCPSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &data)core::TCPSessionvirtual
protocol(coreutils::ZString &data)core::TCPSessionprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
terminate()core::TCPSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPSession.html b/html/classcore_1_1TCPSession.html deleted file mode 100644 index d8ec44f..0000000 --- a/html/classcore_1_1TCPSession.html +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - -My Project: core::TCPSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

#include <TCPSession.h>

-
-Inheritance diagram for core::TCPSession:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for core::TCPSession:
-
-
Collaboration graph
- - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
virtual void output (std::stringstream &data)
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - -

-Public Attributes

-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual void onRegistered () override
 Called after the socket has been registered with epoll processing.
 
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
virtual void protocol (coreutils::ZString &data)
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TCPSession

-

TCPSession defines the nature of the interaction with the client and stores persistent data for a defined session. TCPSession objects are not sockets but instead provide a communications control mechanism. Protocol conversations are provided through extensions from this object.

-

Member Function Documentation

- -

◆ onBlockReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::onBlockReceived (coreutils::ZString & block)
-
-protectedvirtual
-
-

Override the onBlockReceived method to receive a string of characters that represents a single block of data of length determined by the block length value. If onDataReceived was overriden this method will not be called unless the onDataReceived calls this method explicitly using the class and member name.

- -
-
- -

◆ onConnected()

- -
-
- - - - - -
- - - - - - - -
void core::TCPSession::onConnected ()
-
-protectedvirtual
-
-

This method is called from within the protocol method when protocol is called on the initial connection where the data is an empty string. Use this method to deliver a message to the connection upon connection.

- -
-
- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::onDataReceived (coreutils::ZString & data)
-
-overrideprotectedvirtual
-
-

Override this method to receive data directly from the socket as data is received. If you need data split by line termination characters then override the onLineReceived method instead.

- -

Reimplemented from core::Socket.

- -
-
- -

◆ onLineReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::onLineReceived (coreutils::ZString & line)
-
-protectedvirtual
-
-

Override the onLineReceived method to receive a string of characters that represents a single line of data terminated by a LF or CRLF. If onDataReceived was overriden this method will not be called unless the onDataReceived calls this method explicitly using the class and member name.

- -
-
- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::output (std::stringstream & out)
-
-virtual
-
-

The output method is called by a socket session (TCPSession) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list.

- -

Reimplemented from core::TCPSocket.

- -

Reimplemented in core::TLSSession.

- -
-
- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::protocol (coreutils::ZString & data)
-
-protectedvirtual
-
-

Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the 'commands' added to the server object using the processRequest method on the session input.

-

When data is received within the session two modes are available to pass the data through the protocol method: LINE or BLOCK.

- -

Reimplemented in core::TLSSession, and core::ConsoleSession.

- -
-
- -

◆ send()

- -
-
- - - - - - - -
void core::TCPSession::send ()
-
-

The send method is used to output the contents of the out stream to the session containing the stream.

- -
-
- -

◆ setBlockSize()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession::setBlockSize (int size = 0)
-
-protected
-
-

Use setBlockSize to set the amount of data that should be read at once from the session data buffer. If this value is set to 0 then the data will be retrieved

- -
-
- -

◆ terminate()

- -
-
- - - - - - - -
void core::TCPSession::terminate ()
-
-

Use this method to terminate this TCPSession.

- -
-
-

Member Data Documentation

- -

◆ out

- -
-
- - - - -
std::stringstream core::TCPSession::out
-
-

Use out to send data to the session socket or other session sockets.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPSession__coll__graph.map b/html/classcore_1_1TCPSession__coll__graph.map deleted file mode 100644 index 95ab801..0000000 --- a/html/classcore_1_1TCPSession__coll__graph.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/html/classcore_1_1TCPSession__coll__graph.md5 b/html/classcore_1_1TCPSession__coll__graph.md5 deleted file mode 100644 index 65a5f32..0000000 --- a/html/classcore_1_1TCPSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f4b2ea20b43a4c6fce9b1fc6f65cd817 \ No newline at end of file diff --git a/html/classcore_1_1TCPSession__coll__graph.png b/html/classcore_1_1TCPSession__coll__graph.png deleted file mode 100644 index 9900017b96967953c739efdb32e9796db04c7fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55825 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 Hl+XkK88&0B diff --git a/html/classcore_1_1TCPSession__inherit__graph.map b/html/classcore_1_1TCPSession__inherit__graph.map deleted file mode 100644 index 90087bd..0000000 --- a/html/classcore_1_1TCPSession__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1TCPSession__inherit__graph.md5 b/html/classcore_1_1TCPSession__inherit__graph.md5 deleted file mode 100644 index 96bbb72..0000000 --- a/html/classcore_1_1TCPSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -39b44b8ff3d3a261df40d4e8e510c5ac \ No newline at end of file diff --git a/html/classcore_1_1TCPSession__inherit__graph.png b/html/classcore_1_1TCPSession__inherit__graph.png deleted file mode 100644 index 1615f7be49eb814f484308bd36580b2776ff9054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11833 zcmd6NbyS<*wk;Hg0s)Fs9E#JT#f!UJaVt=~xH}YgNpW{~D^QAiAwY_|yM*Ap^qg~l z_uPBW8SlNn-b+SCR`&SvW$&G}*P3h18KI&ijfqZz4hIK^DJvtP1_uW(2YacYzJQHr zA?Mb>-jGe@r6u5=|2%U$OOoK=DB)x!L^V7zkC#35$8IT5&L-Vsi;D}zfnv1M)kQAv z-G=#TqzT*b@|#e-f3NCV+LNXdq%a?8oDAU~GHKYxV#yUv`<7Uw-}-fTi=d|vGtIi+ zUHJ)L*TtRhdw=g9wCNi3!44|6LWKK)6SWVUi6YVlCR{V+3Y;;6b#)r!v%F4<_MMV{~rxFp7kcx_nISeEZU+A6I;1UrHxuCHk zivkpYzYc!Pk;2)Eeuw`-(Dye(l>1X8@X@Q2wYgIL{3mnI~0Dw-O$i;lUVos2YEv6R71 zrnynx$$AbAb&Y1i)|S8sg+~C0V_Ti-EDBq{upNvwM`K zlF}L}V3}WeEjY&FO}G_*%)4yi++3xsp(U#{V;D6==XOXD`6)KC$idz!-ebfW8X6Av z6g$|Y_!OgLZKwHJb|583O6h%J2V`fzsF;aynrU6}-2Z#OnE6A3Ph_zqR50C^KB(qH zFftA*qEV)I;x6gkCCaf3Wd(0!0r+|o8zNV3o&5dx=MmmjT=qP=cNq$|sf&hkOp9iM zyap#DAbH)oaOh{2^JU7(OO5xyBkz1cRnJAY z?+2<br^l1CF!4TEpvbF*Mg;$5JD9Y_ZMb<6gw)pw?>udUUY3*6B4 zU~qEulx!6yRS3ZStT-N_b8f(~bux-|xZS@@Bj14(Cb)9p( zieyep9+UfcaLg56xXT`CBF@&5{`dtB&z0}G*eZPlb8+*+PFsjyol8;s zdt0N0nuw4&o3^BXz~fgN2RbeT&!q~EsqP!IZlna1WogK?=KA@fYm7*Xh;l%exqz2WY`auj&4usX<7F#wwV{T)f6bvZzy4 z(Nak7?x9i#f&_VQJ$4B#k%G)lEu??dI?qzV!^0~nDZPar#8RRLepuVv8*-tlLOsev z2w?qtjQF3%X7L4za&ZNm6MQw_GZX9v3P2S-Cnq$qki0x}P$=Av==bi(q$E5L-Ar*g z|4S+j{Rj45S2#X6?JAQ{+OjTRe`!=9-}b=quQWAtSaWcdOWn`qxw)0Oxkpcr+6v$o z-%!p6M$$Or+VpvVqr%Sgk^8!Emy|0vfC$>2o+;CJj08!rcd@*0`;l@n`3DV1QiE$09zjT`(3z=n21E&b;u#RO#MMZ1umNF@xtYX z>H6;d3y)wAGiutcGzqoMG8tM~gU-9?GOqx^01vZ`t9_XuN^5RpBuNgnm+^Q22ePg0 zl&_(k`K2U!4w3o2KMl9HejEzxv4`_wvFUqUtfP%^*>m9nK~;`1@>E%6QbVnpP|w?VklT+7VUr^g1`At;Pe0vaJ5M1$p7CM zh>9QuFr_%92!8JqvU5ei!^IB@d5QAdnEG zxrVU8nw650Qcyqx(rlChoJt`M{zpdqM`}EXh=y?4aPCW>fm{RFgFXKEW{VH=MNX-N zPvq>tZ6z#wYztqUf3r0yEc&_0XyZ>mOp*IraN7UIt0KJ z#n)!~z>92$pE84aA9vq#f3g@!UzOw2HeNp-Qh;JAJYc5Rq8i^wBq5uTz3=n#T(w*9L6DkS!$YMC{BU+_U;2P@zoX|4 z-eE3tzje!71>r^(TRASIxT@bBwyd9P2z=x7`f4HbIlcH#f=CHtzs$6nFJp~!fKCdO zQ*N9h^>$dD<0mh;QnVfA+>9W~Z!~{nhCFbK=^r{5k(|S#5kY9p!2qX@>vLA}hLg|W z1txI0s`SBfYM60k#O*mb9!&s+5u$UMa|04C)Mj(#`13oO^ml|HF2$6G76&IV8{T*7 zCC#|aF?7a!k{;@EbQhIsiJmydtlGU+%i*`*7$Cjofw!~zoP z3}a)vh9LT;CZbDaWpv)hnVon{&kRt_zQwsWOck_mtZO8< za62H_k`T7Q=x(=1Mewlt_^r`N>W6SC)Viy2R!m%F&yy~|Ilr=uCTVK)NRg5SzHXx9 zc1Z#r*1mnGr&n2-Tx4U!#(zu02SN#J%D9beP?(7&8n~GpT1j2Mu_15vzB?E3WW*rvpfYMLdXU38}-J96Y6Ur{d=3pDtf^>}hh> z3lO`C%@gaq;t)fvb6Gg7WxiKbmSykWUkN;Z%2O6|mBI==h$t$nig+3y%Tqxq>oERQ z4^}~94=Va4RRe_7`(L-ZnNo##d@a!Sh%*cX=%nMGbT9OqD`e}A3CCWI$R;EY!(iBd zN#QYks=1Cm6Q1I=ke62y5jE4+m0c{a4Oms>)GRb<(h|P~H9{Ii#@5S&Rhp~2sz=^; zA6YMQmhZK))~s;5P;i%<{cH;uaw7Jx5p0r*jGQLVF%YR1uVQy{hqrpeVH*rr#5;%zP?g8(RH5@4-u(vTrYtn^!(Evay{m-@B(5=Ljw47HfqG^uW)p{U&7wvPr7Hk_5TP z45=5}z>mQ)HXQ>)A|*gf!r1r~sOb;pI8R8?d^lUTNi1ZH^tyTbjwWi;h5R9T;D|Hlv1ze5HyYCb+_e^d*FA99}6-F!o1VIi4R z)Qgv}U)wmEAGGCB?F=0?&k=bJ`6ql3Q8+;N5{5|tf~Mu)|`A0daCBkuSb zz{EsCyvx*t#6NIia}9PAefwkSdg_o?{pEwjulAf_UF{pi5#3!t@_PDFG}Y8_1Og8l+aRBN9>cpbFRhK5hydf>gb5OIh!1L zi%s^s%?ssaGSU{@(z~x2p%`)0Ay{PJ#$BiaJZqh?{;9hBtIYg=W<>S6z+b>zf|Z3O zdY_3z)Y_U!jDeCe0Olw?xuU@@U%vcSosUHGIo+ZixeWjStZi-ex!~s_{{x@mvl7{M z+O)bJ5`gFen0mvoE!#r~uwy&_s&)S|dbD#nUjU=;Z=I+f?x=It#@h6~+#g#QvrX`u zGSG@}4kw-+7=Ub%9X=ZpXPuVAe5arBm+gz^+&D}87G>++Z)u0wVfUlrAOdS<=Vu07 zhob|JKcYsciTOSYyB_Xmn5Ie%8ftB3S^mD7wGA;>-s3y!JUWB)!YjhC3@};RzMUVJ zDkOeywF%F?!WLDZ@9Z%@AA{n=u$@gGY;wLpXOYF-`ZF`6^w*^}jUwSoQCLJjhLX9T z_7YeK^4I%4E>s30UJ{>ZTC^Ply-48nzF6< zYks~vylp~A3dSZwZ6!?7sV)UuZY>pEhLJK*N)%-~<@nFKwA9$RyFn&7nBx1;pV}1^ z9-JSS3~~ zZQs%3R`P&6V+5NY(~a}pI0yk!pH$pbC z{gH&Z1O_F5!kj5%7h- zG`qfF-Ll<>li`9f^m-$NgJ%M^gx<4Ivg@2wv37)ZH+ai!)uZT zkH9ASz(O7^==|-EeQxt7A~SBJYU`G|IiZonB&YRH`pyAamtMISP8axBn2pwzU>85b zyrAlp`;@FAkRb~G&bE4~kXU%pic$ebxQ4w}^vkS$B$~q4YJ<0M>3Cz0UdFB@CZOGzHRb1_mQ$vY`fL>M*WL`K?j+Zp zs$v1|XBE_rl08wBr_TFA(pa<4v@2g}?7Rmlp!}p+=Spg-i8$`NHvpeonu_TuSwkn9Tk?sq2Z zUy^IbWn9=0Mchp#S*pXf*swY6_>5;0#Iv1BgTH)|$}_<^t_fgDTnWCewb~3qdNW7i zlVB*uZ0+)vxbYK6kl9>J9odkN1) z)4JLrxBa;CMZENZNZ9B7(&=N0@haMX>2m%R`TsKXUPk6~a(psO*D~VcGdF#w?-<0_ zYF&kV>(k7Wv79=|tE$Gq$ks*os>{C6q`cW?m-bZ`8+%+?>Coq7lNX){+Etnfy+DAb zM*P&&?fUwBjS-Mi0=hRfH$Gm76Xp-G)|HWA5|dF+va~AW{F0lRo-Rg%^?cYPAKr!A zr$;U+NteS9*;{I3$Wu`OAj+!Q@*GZN8S%T%S@+e2OC(Z>3vzOxGoU-ZXGtt%WocK) zvFEebH=?7v9pU>-6y8EMJi*rXWqtU3)1=1G+_BBJuJvHx9ah-!4v#J5;5sDllh{-N@I~7V1Nq#7TvpA*1Z^-j)S&Gmnlc{N=ZGd0 z1*E5stgk<-YgPAN0uLOnkHlN-`{il5PeiL8oTjF&H}^gZ`?eS5nRFBraeuZ3IDEBR zC3m_xTh7mSB8ZYqR8um?LtJQa*eR4nNG}bTnR$S%MdXNa=I3@j9q!0<{pfmcb$NND zq6Wfe>a$*=-n;8#6%E=#D_ZVFGOWd!nJ*iCPm0x?(872kN(5K^;^ZM8?jFAiV{dr~B0fg+$_N#_5k0QJzqzFAi4W&`P8`j5BF793ch;6u*>uP3Noyy-u1C>CTJpwP5J8|^*KG^tUJ&S{_lZxGk|2smpc(4Woi*PM;mGv2%cER* ziGdZ{+_GwEn(x2|ij(fulP=hFCy%u>; z2rAm*JYbtN2T~VDt@`-R>*2-^HE%cx1reDoHdZN%%gO=PZsG(Zbm2anj7LYJ50`7g z!=PuCk%-mFQr_&d%Z7x9ghV0`$Vn5r-1YkOl)~?9?dYHc#KD2SJ9e(9%zk#BW@Ba5 zCu5Qe4_g=mg9op}%KGjk==wAV@(5Ks!NrN76(l#~y^QFm1?t^nN}sMoq_XfiURoSA z+r`GlA`mmaoFVM%XzL%eoX9>F2kiZ>yB!$dR{*MGb19xKxVr96R9x=(cGxc$?ufX- zL0~votHoiEUEiZnk5@=U1n73G(X|x(z~}!oe6d}EjCpWyEL5RL+M29b4Ql|$b^G5O z%!=~xJbwS4NxTGo@={eDzTCOBvMwhR7OXLoRxBQc=YU;^Agg8r&W2ug9In5!?vH$@ z00g1J!1fMom5SpcE}tiIMGex}P-IZf?VXB>^82IWmOJk+CPhlPmt%~^Ybq;EhjE`t zc}<(`oL!taEZfN_k@`BUIz5wkZBmt0Rp%3EsvqxMjoUM&v^?wWz|}TvY~tYREQZ5o z&L6MB-SHwL<+269+Io7BJymUAU)SPMD<(oVL7nEKBoCbF~%Sowv`26Dy2 zc1&~ZLR3yy?tpBpHXtd-pCQZ8(>HGouu5TskrX|yte~J05{h)oPdud*kl*=+|KXfs zwtzb-Xd5ovy&;8X#sw(eztz*!jM#V5We<1XZ1v=Ho60v^^#Ps# z%HyjQqX{wmE|bGKs4W`kd{t@#uCBTpjTNmuok8{SIT=fL{roe;;o*_+Lo+kvpooI( zyN06T@SGd8)0;hwtt2I=3aXtTQ@ZLevUy7JG|IlYw7l+^-xMK{n8J*-J1Jt=;g%RR z`imV3M}ptiv5t;0x-%*AuyxBLU#_tH;$|Q&dz=o{4}+x97rw z-8Z%p^Y92y0n1qIuwG%WnI?0g!TjwYbsLD=!3+XQ*kdpXDGE}Xc=O>zU!ku|cvx)g z!OgiLuYKQJ1EmVM^XjmX3PtVemmh15zqLSFBqiBE_)Txq)0tlMXz1Wn~e=CS@xu>^@g5#A}ycRPrX%)R8-B^uOqOfzvll8 z^AllHGfvonFlo?{jva$J2XNo%EvzeR1Rx_jUaMX0lXzZgqo7)hsjyV;j0a!~bvADf zdK+{<1^v11Jar!gM0{s}^OcJ$Svkw8p>BV7V*};QBFXEcOnL3w#M}nUg1M@S$3)6s zuV8<7rJnoB)RfOCf%p6QxsQ}9YCaya@h#9w9Gb%Kw5VL6dMz6;&tB;4$gXja_Zvy<^CD|Ea#KI~>Uje`ALZO9)azb{tU|Zg9a-l0R zvDCxEia3f>SIB`g?8Kc@u29_GhfQXBez`fz4h)Pk*^OsBI2d_;Xc+408SC$N*qva8 zMTYvG2|h8@1X{=-#V!^_SJ=3G&|8&Tx#siD?)fGgCjIBdw}8_)cC?ENr|kE2BB1Sn zxTi$uOP%TtRYEI_jGhga_pk6%DEK(AyMc%%l#Gm)b1XUa^^r8v zJ3YP-$ZUCBXF-1A8-=rtFCTk)+3NbrMbDejg5^`#IJ%svV8ia z0XP5j9X2#GGjqV2sVsp0@}+IHSAa`Q$FM<{Pg_BO84VU-=naf8X=*$$bAUTT{%1-8 zM%zKW!0|k0zRp`G5{KFW9{xyV+Tp2+Pe7SVEr!8!w*PG7zXdyFI_+*l`?&8J{#BEH zve}?Ky|#rqtALPn#I$Z%NK zyI4+1X-D?Z&;!c5cuTcFzPovWz8dn{Xywh^=)HaDk=w7agN_fxA*1}Dcn=T~_T2QP zHcU0J@ka{)Wha^vmrkoOxyo8xw=CiklS%Y*?OcXK(3I?NevQI!*Oev!@ps;MJ)ux zWW3(FtSlcZAqbQ+GTOM3ayaiUlgVkBjlZs%91p}_G(aXTXJjgOtuu6_in0Bn;2<}~ zrm`TdGyUxB< z;fexS2()!tpf|HUWjU|Dj`OQOd#Kl7D>Ti=3)(^-uf7-lQbeGhT*9H|m>Zp%B5cc+ zXJH8!;BNX=Es|J1?>ap5232#Zo~GXHtP1@GF$( z-8N5UcgXjqhh4Zb=?1mk?+cX}Fak&Ylhp`h^@^>P+qera^uphvWZ<9)|K79iQOh;>(HxEHknR&ZO>z2z?Je!LjWuD;&OPGu71%RpC)47 zw%V!_(*5&5ouMg#9?u<1i+D3h(boiv!M|k}Q%AFPk_f-zxW@YBj{5cA9!BY`u0a4? zRK%S9fO#Y)XH;%!4L;JaCF`0$MY)R>q&_|B(C%)mou#2l z;(KPNrKMC=Gx2qkIM#6eHCe(py+r6$NYn-~@ZG4m+^42drmxG+`{&}T{SRDoKYjLE z`JM#`Qj}?Eo9ZT<15`jN6%PnK+l-VE64cU`ZfOR&Ij?^X;=n=y^+LJ!xK!UZ6GK@U zqh^ycerut`L3Q^GpV9Tk&2*hF=FBTT7J|hej}|(9O6zavHtQy41XlhM5L^Zq6;#m4 z$&OT7)2idD$2VtRhXrb9(SJHTI4qC8thn>5e6VKXw_m*3)%^X>5&~S}i)Ko*?iZE_mN$uuLq~s3pHKqO=g5lHf z=iOn3;*9|ckkFvf}J0@ghE_u?M4AHqul56|AdfJCrgfp z_F3e&plhxuX_pp7hY;WDY1bNe9&1HG!HkCI-l1wGbIuuWyr&l1V?`iU8jOz{sN0$?(N z<#vimT5Ki6VQ>Lo1OFX2@dNPCswX=V9FOqgMS3@uih-_f zdZ1`Q=a-T?^0bwprLL^=;})+RLBdu@nV-Mx_G_~b)*^b}`#SHuyuNC*Y$y2IQ^)&b9M;2Uer8YLTId{Lebq;5EXhI-t5bpi zOiZ{dZFrL|d@$|+p>nAmUr&u%4At>{B@FR=V+%6@I0U4CN($bS5s1l9Q?VQQ=^C!Q z$Z=Tkfc4}l%+2w^HQn(t<>b-~xU%+3;U>+r7BDH7aJ9atmg@O=-djY`OySqV#zHWe z1A@;V)71BSDok4O>(}p}KRJ-)O<|fXELMu7jg_x9Iih_;XP#;Oe7~u$;UT|e){?O2;GVPBI^L_nMQ{zU7 zFbV^KEK}%SVs0D{7Y(0?XzKg+5C$V}$ctYa5|VU>`(=JNmO45}af2oe70rf{lG{2u z{rvpp9Crf*OYe~1&U8IqbU$a?+1z7-Lf^i0oA|3q^Z$<_3gQBB2hd9c5J7ZY%#xC3 zb?=jC<-f5N-l8JDkd_|QjUkhggCBR8uQ!KbECp@&^pK>aq#3txcN-IPbI5*+z>nZc zkKVe!$?N{&%!0Loy*h1VGU~ecs&-qbVZxg6pa^!ta9(4?l>4DUv-;44RP?x#%4NIK zOA67tBBweX)_;Y2q=?xnq6Rw?<2`l9J&|7Yk#dRrdksRLiwWw#5gcUta0Vh*!HLOG z0(`ninVx&PZs(SpZsiUPx(xQ9jUo9~x|wd~%gIl7b{>MWSQfF_dBnKs#a6Oo^y=H| zqk@*YZq}oli;tJFOyM`)J!kg1K1fAw%hGK3Z@MyJP%E|1?w$6*txZVlj-~2NxxHYL zCUjMndDGeK>Nk(ON=dVz;o?NE&_szGOvT`IYU|8(_)9Bcb;9E;`n7xg@Z`%7g(bd^ z=F!SLntYwp*7SI8SZW6iJ0f+-w=}LKMFf;hbvwTgdDAcrx@sZFs8k`PV3gtoTN(1^ zdp|EjwY_5a1j`dt9OA?6y}c;?Njd_8zN~cJdho=&Kw#xj-o`{4Lxm7F=jaL&-=}-U zmibJ(L%bBtM7$<2wNu3MT^My*0rh5$fj`LgLc_T$x!c!18p>?Vqx_KM(Vw)8v*jwB_2)aEJi@O8ll+ z>@#Y|&dke_NTkeZe&}0vde7S3{$bTa@?&VFqvnzmuL@Z+6!UgJM_52=`}A4^BEEeS zty;J66q(#-%L8s)xig~D0S0O;`uP=G{7YQY0n`nc88|SjIsG(}o5p1G;osper=m+XV$S5u3x?5YUtRzDp{xLl> zC&8CC&3|)5gvO28G$I1f&wi08L(A2%JG~j!6?JP>8G8H6(fP@pg(>Ih=Z6*Lnxk~j zKXL>VY1*CCEg_-xe2)S1v5R*|kaAUcPYAf(H{1md+%Oi|CxOY@NC?i?>cLP(o55D3Es!g* zjDfX9g$v0>yOT9|DGb{X#L)p%3y2=5NgG3kG2kHpQ)uQ6|9ksE>Pedj$)6j^_hC!m zuw-Wivdnwo`KF6soB9cFnU`!};q-D}y}jNBYQwQ?r?NHB@9ppgUla8*iCW3Qu6^H-?+t9`m&SO%8PEux4Vk zBJ$ncfi`~2w`$)QFXB$R+h=rcW4c2);??)QUq`GNk$B#SdnAw`ccGY-*A5+Y0MAZa z9k&6CxL7a8_+Ub)w9B4KJv xHov&&zV~Y#Q1y&}_xnqG=D>#;m=+vPR#Hi#TFf};e*wyL4DkQ} diff --git a/html/classcore_1_1TCPSocket-members.html b/html/classcore_1_1TCPSocket-members.html deleted file mode 100644 index da1757c..0000000 --- a/html/classcore_1_1TCPSocket-members.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TCPSocket Member List
-
-
- -

This is the complete list of members for core::TCPSocket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data)core::Socketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPSocketvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPSocket.html b/html/classcore_1_1TCPSocket.html deleted file mode 100644 index e4e8c64..0000000 --- a/html/classcore_1_1TCPSocket.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - -My Project: core::TCPSocket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::TCPSocket Class Reference
-
-
- -

#include <TCPSocket.h>

-
-Inheritance diagram for core::TCPSocket:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
-
-Collaboration diagram for core::TCPSocket:
-
-
Collaboration graph
- - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
virtual void output (std::stringstream &out)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - -

-Public Attributes

-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TCPSocket

-

Provides a network TCP socket.

-

For accessing TCP network functions use this object. The connection oriented nature of TCP provides a single client persistent connection with data error correction and a durable synchronous data connection.

-

Member Function Documentation

- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSocket::output (std::stringstream & out)
-
-virtual
-
-

The output method is called by a socket session (TCPSession) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list.

- -

Reimplemented in core::TLSSession, core::TCPServer, and core::TCPSession.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPSocket__coll__graph.map b/html/classcore_1_1TCPSocket__coll__graph.map deleted file mode 100644 index 1ef8ff7..0000000 --- a/html/classcore_1_1TCPSocket__coll__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/html/classcore_1_1TCPSocket__coll__graph.md5 b/html/classcore_1_1TCPSocket__coll__graph.md5 deleted file mode 100644 index a957225..0000000 --- a/html/classcore_1_1TCPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -09a4e1b2bc983192b12dee427b95649c \ No newline at end of file diff --git a/html/classcore_1_1TCPSocket__coll__graph.png b/html/classcore_1_1TCPSocket__coll__graph.png deleted file mode 100644 index b934430a5d906d59602bf3092552a16c2125e455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12832 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 JTEaN^e*pxjOw#}W diff --git a/html/classcore_1_1TCPSocket__inherit__graph.map b/html/classcore_1_1TCPSocket__inherit__graph.map deleted file mode 100644 index 2ccc234..0000000 --- a/html/classcore_1_1TCPSocket__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/html/classcore_1_1TCPSocket__inherit__graph.md5 b/html/classcore_1_1TCPSocket__inherit__graph.md5 deleted file mode 100644 index 9dc21e2..0000000 --- a/html/classcore_1_1TCPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b00eaaaf3a0f062e6988b61f3e846f66 \ No newline at end of file diff --git a/html/classcore_1_1TCPSocket__inherit__graph.png b/html/classcore_1_1TCPSocket__inherit__graph.png deleted file mode 100644 index b7777312be1a9a03baf762b2cc276b0499442fb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16595 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 - - - - - - -My Project: Member List - - - - - - - - - - -
-
-
core::TLSServer Member List
-
-
- -

This is the complete list of members for core::TLSServer, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
blackListcore::TCPServer
commandscore::TCPServer
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ctx (defined in core::TLSServer)core::TLSServer
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSocketAccept() (defined in core::TLSServer)core::TLSServer
core::TCPServer::getSocketAccept(EPoll &epoll)core::TCPServervirtual
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::TCPServerprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out)core::TCPServervirtual
processCommand(coreutils::ZString &request, TCPSession &session) overridecore::TCPServerprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
removeFromSessionList(TCPSession *session) (defined in core::TCPServer)core::TCPServer
reset (defined in core::Socket)core::Socket
sendToAll(std::stringstream &out) (defined in core::TCPServer)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)core::TCPServer
sendToAll(std::stringstream &out, TCPSession &sender)core::TCPServer
sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer)core::TCPServervirtual
sessionscore::TCPServer
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
subscriptionscore::TCPServer
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")core::TCPServer
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
TLSServer(EPoll &ePoll, IPAddress address)core::TLSServer
whiteListcore::TCPServer
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPServer()core::TCPServervirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TLSServer()core::TLSServer
- - - - diff --git a/html/classcore_1_1TLSServer.html b/html/classcore_1_1TLSServer.html deleted file mode 100644 index a80c7a4..0000000 --- a/html/classcore_1_1TLSServer.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - -My Project: core::TLSServer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::TLSServer Class Reference
-
-
- -

#include <TLSServer.h>

-
-Inheritance diagram for core::TLSServer:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for core::TLSServer:
-
-
Collaboration graph
- - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TLSServer (EPoll &ePoll, IPAddress address)
 
 ~TLSServer ()
 
-TCPSessiongetSocketAccept ()
 
- Public Member Functions inherited from core::TCPServer
 TCPServer (EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
 
virtual ~TCPServer ()
 
-virtual void sessionErrorHandler (std::string errorString, std::stringstream &out)
 
virtual TCPSessiongetSocketAccept (EPoll &epoll)
 
-void removeFromSessionList (TCPSession *session)
 
-void output (std::stringstream &out)
 Output the consoles array to the console.
 
-void sendToAll (std::stringstream &out)
 
void sendToAll (std::stringstream &out, TCPSession &sender, SessionFilter filter)
 
void sendToAll (std::stringstream &out, TCPSession &sender)
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - -

-Public Attributes

-SSL_CTX * ctx
 
- Public Attributes inherited from core::TCPServer
std::vector< TCPSession * > sessions
 
CommandList commands
 
IPAddressListblackList
 
IPAddressListwhiteList
 
SubscriptionManager subscriptions
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from core::TCPServer
void onDataReceived (std::string data) override
 
int processCommand (coreutils::ZString &request, TCPSession &session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TLSServer

-

Manage a socket connection as a TLS server type. Connections to the socket are processed through the accept functionality.

-

Constructor & Destructor Documentation

- -

◆ TLSServer()

- -
-
- - - - - - - - - - - - - - - - - - -
core::TLSServer::TLSServer (EPollePoll,
IPAddress address 
)
-
-

The constructor.

-
Parameters
- - - - - -
ePollthe BMAEPoll instance that manages the socket.
urlthe IP address for the socket to receive connection requests.
portthe port number that the socket will listen on.
commandNamethe name of the command used to invoke the status display for this object.
-
-
-
Returns
the instance of the BMATLSServerSocket.
- -
-
- -

◆ ~TLSServer()

- -
-
- - - - - - - -
core::TLSServer::~TLSServer ()
-
-

The destructor for this object.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TLSServer__coll__graph.map b/html/classcore_1_1TLSServer__coll__graph.map deleted file mode 100644 index bba46f4..0000000 --- a/html/classcore_1_1TLSServer__coll__graph.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/html/classcore_1_1TLSServer__coll__graph.md5 b/html/classcore_1_1TLSServer__coll__graph.md5 deleted file mode 100644 index ea77a29..0000000 --- a/html/classcore_1_1TLSServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3e243acdb497b9bc4cdc223ddc77fef7 \ No newline at end of file diff --git a/html/classcore_1_1TLSServer__coll__graph.png b/html/classcore_1_1TLSServer__coll__graph.png deleted file mode 100644 index ff424d976933ec5251194da030cbb07f4ff325cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44998 zcmZ_#byStl_dX7zD2SAFgMflacY{GnDM)u6y1Pr1MxHIz4&B{wXnu2i zeLwGip7q?W1qWfxJ+o)e-q&3F+M(|irLiBAKSn`8!IqVgP)0#{=ng*bKSBdvW!~3Y zfp2I=a?%ngcgTO=8}egOP@ba5O1%E)p0+dV=KS$=yz_8>RNnJZ&R^{fNzWKM84?Pa z4~t=RVPQW4!$LfZHQtvPy{`Xb_4@TI$%9{nuQyda_dlV~V&uRq_Gt*-C_Ku-lFb;@ z((LK$5rm?D>*?dZ+R1F$b*;nu-xEXEwXu6&;(t$$J>fxE$p1ZrA0E3){_l5TFQ72Y zCrnH`u8bBIn$Mn_eoaV_w6tW<)WkvI;;L|JB1R6&^e!;ao0A+HWzw41+gpU4yB|Vu z@1EEL^ecSAmGBmW14uF*9bHGleZ81o6PR#ll-O$>oyT2K&mFGaxys9XD8)1S%8h$! z5@Wv&H|YNQH?ShmMbj2UhoF zaq+c;6dE4!TFuVB-SZdSiT)@QzP@VSKCCDj#Sm|w;<fA(g}+dFbm zGDZe|{AexE6HO!Mr3(oQ`>s{V(b^XDLWSWe;)LhlUNQ;5;0iiAFAooyC`D6byuDva zM?G^qF{eYvWw76Pf1i_+(dq3%^DAxJ0}3J{#ocMsf)Dh8V7M|3dA&w{u(pY)`+7`= zOUo*nO}9@e_$ZBTJO`zfm4%4ILoZKzRZ8_de*B=iB?U=w7z{rBm zF9L$lmHc+5T_RA?m&)PkN&QkU)!AYx&c{orWQ(;-L&F|-nG6dp)6pqkzgURJU;mr+ zAc1YRzrwUmv+fLKXo!)66zgNL*5}Sh=8|SSrhZiIF!(Tlty@&<9H*w$aa48+UCwvzk zZNx=Zz4-avZ!7iKDjTc6MVdq|>;GO5_dfs4d?W>Kxy6VfpKSzq0VyR82^jA04@uq> z{?a$cYhyoE@{4M{B_&pB^T6Q2z=4TbCOcL^<9L;6^caYS(Zf_h|bZdp(hSmrehhM1v$>g*7VLpch?#>D15v4LFh3 zy9&8FqpvaC4&*fapJ&p~n`7rxaRI}s~ zJx?}<{Et@UJnG~@$oWio@W-Xi*6nCL6P_gK#OiljgAJn)a{2Xke@zu_d<A2L%)>vGg0<%}02p(Qd6bMz!wp~%#@)`A? zX#8}(bQtCM-6e<|ywd*lk!g8%_`gjEOKb3oKJI1TzF18>-I=43tF$yc*&K_z~OPEJUm=ceRC!iK{}*x?D8LmC_%kC>)>?RdYPxBukhy0 zOPlG@?@F1F8CPw3Yrb$;F9BXm;j4S4gx%%Fvfh`QZyN7>pNokRQ@ej>4MK;}^Nh~J zb3_001woK_Fo~^=w?^Yxw0;LI80cS~SadcA@Z%E^?fsk3W94S%3n5pQ&}i}7*!@QB z*XHIZ(IUeE_fWN#*Ue5{E&j8(G73N*oHo-hea{Vfzu=^QS4e%aS67NXTRYZe#Od+R z4dj7;27<(x%(Kbfco6 zz=JE2O?Qja{5{2VWnn0QOi2H5#2`F)i~_buKB>%~NhN`KlIXw8PYZ0(bW;^t+N9U{ zC*BLB+VvK6_z29-DRPYfkBN@(Ai^!1-zbjhaF8kn#qYxP{bps7xdKGa4TRBf>SMk? zO@+w;s~mzcP_(Ps54H-S8jarUqF#I^qd&EO>WR+4P5*N;89V|4r*G_y8hvi_#mxpB z90sqLKV#K|IZ z%AdGZ@52rwu;QBCDk+h($^Ow|?E&Q8#|b=k56?O|v1U-z>241Vf1xYnPoh^H54W?+ zF+Bf&YmuDVRfP0kei;9$PRmX!DgAcZcbIGwLnbR2CuIYw? zj7(GHP{IsM6@!Kbid-%7i81Qib%h$V@G;0I4c5A#TL27!9EHLz;s|*dIx_Ch85y;G zej7n{OrOe618Mdj7de)9dzXlF@PAfSZbgC|T(P7s5TcP_2suC$m6cZ=3m9MSo*iCd zQqsWH{@`k1X~J;5hw7X+l;35`d@Y91k6EqgsgTe#+*F2Bx!g!n3ue2!%Y`&jSR}92 z+3{hQUj>-l)+kdi*zJwkIwpqLA*6)}0agir0es@OMWOrE?ww(IlE-3j28gfnPOiD_ z8*msqx7omnE17Zx_`fe?+z|IVtbgk@0}u}B^uD(jGypz(?3AZ&jukRNpn>2-GQS41 z{cY5tr{{ereYO{Ayzv)DQM+3ykZ3U$BPmK8+iNkyTP13@%uIQ1hyu4X^h{eg~F$REj2NU|)q@uO?t-Am0k5{ud zR-&7rBz{BUcXuPgs`YWTW<75tuRj&!DXxkNN@V`c=~iymmgq}{2Au8A8!filcptQg zdSC6feJoJ!{6D`8(fMXM)_OkZw`X{9#Ob^}?mwY-1@_T97Wk^XYZY>Na=HEpA-9EB zB5w0HWYJ=m*swWI)NqofS0I}-=qCJ^A-YYO^cx9Fo94n-d%ONtT8ZlU`S4K*)wd~$ z7q_hr^T^`G1S&UgKUc{sGU!ja@vwCh&_VjKkQ=qMjt*DTHCI}>@zoPTle*8UVIewH zB^%M3q?5^mQ5&Ik;0-deBxGcL+IFYNY5um+4$9BC%t*EKO%!zE`)(Q}A;G42uav|Z z?)r(-*w?(rG(O0g&`BGB77ban&=bnD?Szrq{E3OF<*!m!g1 zpVB@5@bRMn0RxsnOQ0DD%4QpXOKWbM&@RKksI(c&em#jr~br!|gW>bMBk8al_Z>d>oQhiMnj$X)DA(@SyAXZZ|e z%h3)q7U^vh$KUF8zyI4>b)>7w#-eeW4X8|7LoQD)KHc6hR#>R~{?95e78*Y1DQI^9 zZwzW%>}wbR(aog$&f)Gxe;A;$1a_J>0OJ}oa%B!z#cINoX!ay_ANgIsDRdg4zw25{ zQ`D61)6uId#2^Z^o(yCjs=w1_5lJ|%+nO1egxs6CKGB|;sC`V!=XZJiHA>ilHTLtI ze6hWs_jT*f*;5PO$@pX^D@E7F5&WiF_Ofw@fZnM>QpAZ#M6}{^m-^M;-$oo_#1vU$ zT0?ey6ZNygEBITUsjrJ);#nWl7x~(Cvch|Z4-v!lMo;+eWKzTqc!iY|f|&Zmo*nh? zHj-kYMMz=Z#+=ri2J45qraAS+ER)XUf!R>dj@d$1cG}WBe?w`KI=FQ$pKNW*75v&I zy&NMR#yrY&-3vi;yD!&yn(vYO#QUc0=hT^gebX}>63uI#GK|5}cdHXuZ#l`a&VN(s zhhzfs0AR#99viLX%@G>o>EF^a3jI0K(RT+2ZTjV2ZbkoW%?4~O<+>-*c|15MvhSJL zE2)-{K9IhBaC>!wfpK{J#)a;=zZFgF-d@i(y3oO51u6d7T~DgQ_|eFcyuIyuknhd; zH`>1G)b1WCl^Wqy`n_5=Ixolh=pM+S(zdy%AyL=xNYWHSAQt^(rFa>3+)=Bcyfl9J zp|?`RVZy5DPp!M)K>Bf#--|FkH`vp``OEv`l_!4i&65kysLaWpl`6P)|tNa;0=hC2q^hWNvGAm&_-7sp$dm-Og3{)rD)$xOCB^FO1U5LdQu^{^7l4UP`$z z!~n>+umgiCXO#9hZ=7X69wAY6HSXbDu9)$WRW6f z&)**lt9afSY`pE9XKT^%6M;6wF)HVNfSrXqXPLLgvdH8i*6N`@S z`Ii=h@7l1-zRWuoWC*)B68&w#o#3$S%g9=cl1>cp0)TT?2BSa8cHkt@Z83-uJ3t`B zD)}lYD+efQ5y!}_hgr>b*3<}GKE6;Td6_a&^wi7h*$kWMg_;Vw=`CXR@9=MXy5oBZka>w3Y?uWQNcWxp-!N{X5ddqv2h) z)VyfF940EIV_^F7ONOE$D^a0x){|}Nlr51S*j+=Y&EV;G({R@r$GdQE=w7?3_D9xJ z4L)JtuysTif+M#VLfqu~b;GnrV3%#imV*>K$$H|cE^!RABZJfj@nzb5C}~N*UqDFr zX}dYk-$HeQ1U8?5p=__C)kHb-sUw%hb0dew(gsP1F#3n}>Qf-Y8h1wU3ZxHsHw~^j z#(e$yr}qN8h6pk+TqG!YKVfqoD}uE%0X=j+eG7_hx6q8sJGL- zI(#ns>NLvBpQyx%g|BptJ40kzm2n&o+BYAx;`#WuU5K-+wIrrA=&cpj^lCzn_{BE7 zzpB@Yx1JE#Hv6}r*dkV+Q!yeS6^DfykXcx40nFBLQ+tR~FF69f*|~ckk?c}8o8)tn z|8YgD`kI?F?3N67P9*%b#EPeBc@inO3^1!Vc8el@Ba^WGasNINO(BuLWB-Qgrs{9N z9Sw>czipg1E>Ch)T;_hCuP6u@fSx{3y=K?X%Un&)Z~oeSQ~=V&Q$0MBWEGj5`*b{&OElY`J;IsG8~dOI9Ph#FqANWKGO6 z4DM2BJeKFylj84_=$iCTe>3Y6_dg!FJ@MH!8}G_7a5Hgmyn6|WXvkdmQ)Kz5s~#lG zoQ{?FQ2Q0iJvH>MiCY?Wc@4$aGzEPwSAU!K-gQQ%w2sG4g|~5GI+%%m3{pel%Zpl>9Z%_$<34>l=Y;eXvuK@Ax@^TQ z$4ED3={JR1PvQULBua!DUN*d|fKp+RagpVZc&PCw_n5SspNLqnYx5=D-e@08nIXze zdnv9j)}i$Wt;K+;w~J?0_9iPl?jF_m$XfFLT*)G5KBgFPkx$kzJ>9GmjW?3d+07ZF zUHAZ>a4d2EhT6Cj(e^V&J<77E^R0^C@i?1{uqzUb!&TceenqLZyJZ>VZiXBNWjrhM6oY%A&?>L5 zExE)TmkHCK&=S`3${l7d=5a}%7^1wju%)>mT!qZO{?rko1V4QElHI`%jYygN18ogP zL03f!3Y*tl)?N*<2rRmE+GZg&iXs_o#)$3wA0>qC`g(w{#?fV#H=jn;SEqe|pD%}<-@0|_unwy{o)I@xM{~-Y4jQs<-?D2r;4(PnH{=N5ZI*a1Nuwq5 zL2U2_`YpY^NU_tL%ixgPkcXn|oQzWoOT#-d$y)0A-L`^sjbil~SGgCa-m*nw#`%NY zHhfJ)TivzhqNv_pMYP*=CB!J$;hN{rcT4DQF}B6+(DU-RNRuOt+}g~#m$=CH@(~ox zeJ&WvP9r<3$9Tcv$pzE6SCM@6-jo_MsU_;}cgIrwiBAN)Yxvj2;Ec$++3jo@eZpPmX|bE42gfQP(-kkre=~m-$a$C<(9CI! zeNsB>H#?|OC;eT97LB|2dgL7hXTUpqHkTC@NypNfj>8 z#X`}!E}TYhMPOeh5bIH;R;x8PD|1-4mxz`$ds3ELh6pLt1QdF-?0~;7^tVoNd!6of zJ~AE(4?DfFKvnajmxAI!OYvgI{HO8=B3G~k&5Q&xyfO?~yYQFUq{DrU&o}l)%#3ny z{Q|TLMPAp_rlHN!77-5|>e~DnJ*$IM>S43hQFwjE%%2VB9to!JCE!Rcl6t2)Sl9Oa zIYa8Mct`qJO$0@SvPd@X{oc#Jd%5pC_WZ1UUOIi=`Qzl(j(u-NtOk++SK8}0*v*#~ zP48NFq)6jFviM$a>NlRm{Zyu71LaN=wP3PKpLV z^Q8Q9ZR>THgNz^FOAq#Hy5K}QLM}EWy2;6BGyc4soXbTAyv*CqPgCcsK7IN~8HMSF znL*Y!ZJof)cBNdPZ1Luew^Iq?K}CL5`eTR16+>aB(O~#7$5{8@Scx5nb z1f5DA8A~O$>N4P3aIFpRptF(+zef{}QT^MWyR4pf9`6YW!Q9`>fMbfKZu_O*bxu;M z?m|gankC_AC1|ntVx#ZD2!@Sz^M#Xizs4^;`;q0>c+YMpkLQ-(8KF6mzD3D*Ma~2l z_!?!W*5h;+m&8(aM;Oi9{AtMKz`Kf+(8{t5(L#vuu7rr#o{dNJXG_D?h7;^fJBelF}PhZSK4mjcVAZF3Jy zyT1G?3e7%i5B)9DMRtCkR6bQSX}t!n$=pGjN{KrcaK+$CTH3}qCW4p+IPvucGdtfNWh|ySvt=gBijDPn&F#lX1R%8$K4fty#u;^XA%7nmBDMMbs@d zI$98B#mB>g5-yof9fGZ_fG*qpWu_?V2eXc#=Kn5%)9r#ft7R$g3$K z%E#tqYKQ}VdkXFI2gGJW1?pc;5wNW9Se&}!Rg#ymZPsVG@eLh3jz07 znXW){57f~<$Q3PS*6mHiDOF`U+5OCavYen~<$ixH&3-awvo(2_L3m8I;AcI_2C9ru zT+g&p)SC1C%sWJl<@yt$rdUKPKWCwe#_=Iu(Y=iKQ`Wpj7#v1iUSf$Qo6@JY9)l{* zCe_^nhT^l8JB1G5^7>rU#DoLfYZo%Sv<{cT#fNfxy=L6>DKflD&;tT4?i2{{4*5W> zI0IlVs9CAmQhV^uqytuXhjWX;=%#b*w{H$Z%es4MQ?ZOA0NLprOsX3VSZ@voB=viK z07W`SChxbbadw*LIPfr=z#6*`Z8NqjV;lLSvuR2 zx)NkZ`))NcS6eV`hoRb$KxqE>8K{1cxZFSa?oI39KvsXTR_cA+&jnah$I`*VZK9d> z_Gd?~!6z~I({*d56iq*J5N$ftV&4Y&*_=F|^pE%XXC%*z* zerg>n$H58T;KV=q59vl>)D*t$T3@o~x995enPNWmx`8sGkSa1xcr)Wq1E*rSiKA@i z;?}|UC4YrpxW$N?Rbfge^d7q;nBh3uKhN|=D9vQ{be0-BK)<9NqAQ7@#k>HU~ZN)0cegqj-bY@*Xo7Z4vx!=jJXNnHO2j)j7F-Ar@a5n8cg(6%5oVX4*hZsIXjwf` zG4m8xwms54>fAzL;q|saO0?Dwe`9V=Gw1C@j}}CM2=40Dd;jho8lz$k-jf9k$RM_r z(ibRl{ou#92H&v@D@kuRdU$z_+8+U|z73EcX@N%h518DO7^`k#>&BIGVzXbFqliW@%SV~vdD&g&Ehdlxqk2G>bFp4REZuX%iTvbQj!O2cC>n& zu!Rnqgo!KGW+{3KOS27J8e}?%GP$hYij4o<6XCa@ELLx5AGy1T?`ORJIk8XGn8_2O zrS=$x8|v-krHR(x({8}AOraMZ6*Lc7vVtiOd3SQ!UGl4{`L-%;N4>70@Hhyvb4Q## zPC~f~(2Vfi&}3j2jS#LN^Ff<19;x$k|L)K2K5NUb4WrI-*`6CMosZnu_y{y)DjCLj z1E4nZ0`M9i%V-GyF~W4iQE=Ir%w&oe@R9V%5#4`@SP-LhT`4~G*w%8AlQ|=PpJsr{ z%%P;#r`4Prgylw@Qh9K}P&B9_JM6&->aR-kpPZ19QKc}oBx!8Z0{qFcV+~T%P=DBI z4br2>asQn2*2f8CNeD&#N6%AUKXsdCeKE{eQh$@%hURUKSwqh-E)>F^1k^_ zEU4ubP>9JY==P5&Mdz3e3WG8(E~pBxMvL>se*GHOVbr>4uU7`;=jGkLW=2+vR(>7f z!WL-s&iBfv-4e3S(oIoBoFce&1-Q~o@;w`?f>-Xi7Dt!d$uL~;l|?ak1i3_w*(j6Q zw$8A7`4?uzxHC@msr%Cntq+eswG-I0zPi1A+S~fz}m4;RGO%WE^p2j1!=U` zoQK2Sz^c}@c#y)bZ%zO1lKp?sQEb198860au|n8AU3>n!NBBHhnFR)YVWtmxqVY%} zkJSw$uJuhgW1)MMAgn>QcMZB(=PQ`~Yv0Ja7t*)c6p%YO-uyrS)+AZDhUsq5QqtxYA$z<10RI!p;o2+tMiMrH%apccqHFc-8`KEMn8pMO*v!*Wu zE^x!Su-j0tpnDbPF7G|0KHdEpcPK7fafa&+i><4!(XEZJjb`#E-9XWvd~@pa2&#e} zU<`839_l;Fjj?b3_GMDaZIXiWF_TtZ;Zld4Nc3rjXXdyfiX)~~%D}A(3k_BL`T+Ij z@>EzivbTS&{|jK^g~1L%M)E+BhJ!p(fHI?|UQ7&fwojwJ0RLAem7Pp(8FFFDnCdDR z7@>8lU3VN~qpi7j5^Q}flrTnMG*G+uk)*t1UShV<)cm|OLl?oRtdc(AxyQv zVA^xYFF%lj9DBz8t)y*r*1uH%!QAi3CjsV;0PYd)K>+}xG-j{6-crt|b=JyCmzh=DPYv2xTZlaS z28m7p_juHBe8I98c;TfOAY&9ZnPrK9kKs)*!@M_aweK@S2yJYpB{=IacbpHe0>a4ye#AV-rS2%KWf3kw+hE6xW(KXC0QJzTc1u}|~e_VZ5m zW(o60IzD3$u>b-V2zDXR)2*4GNHcW{dI!p%KOho&TH@wLdb)>$+Pv!+o1Ox#)=eivGUX2iUaC=FPp|5kA(CsG`^<;p}-_p9xj>W0#H^c%i04Z#X zdzwgdFkbV8*51zj?%5Fhrrj;X=2)<=qU2>3aVEaNE9Zm;?#NxJ|{cu2MmT&TsaP!*-O= z_WHZHs!HO~fZV)&_t?rybsUD+7@(Bfo|Q!&T&7_xske#-ItLT?#_HmKc*5$?aWxA|huHjhwxnB?(&g#p+;wxo2 zule~8RUlv<0l`sZ^2O|fi1?t!D4#s*GQMnyA4~eStlEJWZ~R%{Jp{dIeM=upoW@0Pl?{=9CJo%6=Ml|k!RzU zl)I5s3Y)+_OHsv`mpbK=;xmc9!DOWIWUO_zQJW%`_pM9q1LB;gsD`5AhCSEp9>zNw zo_+%UNrb4hswqRqS?eC<+K-anvNe{KU zlaG{Qy8O)BY;)~1+L@UC4en~1{@W=h)$MINeP~T0GkuJc-DE z#9;^s+C%ZvDW`N9S!W<>HJ@)}D6K!jj21bFvXUUt*vUZKK1LpHK@5jMI@ zk+6P?e)o>fP)SJbj=Oacg<$*@0U-YxO<6Q*)q=BL|5MLPNYr;4 ztb8M`wc_ANLqlyFteac4k4;}|x9%4gIL6>GKIDx_-+FeMLi+k|8xftf#yd3SeguGLfZ`{3?V2i%5_b=7s#oYfjo=Z4Z8~5_$78_0KeSr^0 z6xPJ%!#x1LW~R7xswpqn-5Ym`%>g`ho^M=Q_kZ_e({m!tc=&lgdEh4zuo{|G5q zZMSv9r}7DW`vqUXdE)`jm)MpdxCaokA)gq!EbtO<)XDIg&G*zEZaWZ{>2q`t$D9K8Ws}R>kXsapcYYlg;5&%4U%cUN&+O+VG zMzFRAzNR;uRU5G+7sKNy0iQnQ+Hh($FWv!1b?WvhqBMEI~iapPby_T$g@=WbTv zfs>OaKe7n~-2W0RQ47U21GzQe8Up~yIzMVJ}(;pHAOi z<1fr`5fmN^6`hrI4GStVF>73=MFA8dBgEw~+tuboFk1G#d1Z)o7R1&U`Z)L3x*ygd zs3OGyA}B<_;;LcpO_%IHTVXw4{ipM?_|IyJeghyq}sS|LXMNN}6Ot#BO#8j55k zzEIb0Y9+G%Cven@i{E)l-}1T>1AX(*l}mBDM`ZE)+^pgG=QXNV?Bq@;(h1@IGRy(1 zMGq1Xv_F5~z9uS4Vyk$i=imyo<@8eW#;038TgYj;>NVFHbv*8jrr9s{Eb-dhgp8L) zw@*yG-krucznE&!9X55S!D?@RfKNpg0{7W;O7Oif73fb@Z#d`wCszlmPMGb|2XJTp zMxLs$6=OY2;HalU(JVgmu9T_r5Sulbk)m$aw(-jLd1*aY_@DURgT*fhOTN+&!fp>B z^Pa)xua^hq0MIlup|{=f{k2U!c&D%@PYnNDQX9~t1`V0FuL?C8BXmIeoUNPhgfL%k zzW&b+%8r6uI?reZ{@j>zJf#fc++WLX(ifF6@L;Bmw|Ssmg{Rz+Kk0J22ijneQo8Qz!5EFMJ`y)PNzvHp|7+UMnyGi&@)dX}+FVm)MkwwvV)a0CYlV#T$PEy+M zMYy!8)}N%N%sK1bo$H0t*%%Zq!+|Iy|8-E9e3Cu8>aVy%AQp8@M@|HpZGaxHN7uT~ zh!c-;rz=M`$b7c8HnFhIJ2}}^>|#ZUL0-cjj*au>xPG5ARe{G!?IGZ1fCL^iQUM)u zfqs(+|IGW)&PdTLJD{m2J@!DTB9%bkDyJ+6oqZ;4_N`hxygexS*iM5VHG#HK#;(-nch`zIp1-8#s*T z=^t*3;isUrYBznUr0n7tc65Er9TG0rvM4}xbPLM)qXjB^fmeW*I@=Q+0F*4Ukpt*! zp)OWfiuvIoA>X0*=YeoorPjH*vR3&2`Q3d}1|fmpJfWYc$lCX17!A$P&YT&gpvdCh zFT@MUwg9|2Hg2WuajJz-#zuNx-dKm_%aLMjpMTZ_%__k>wln+SK9D)NOG2%`uxz~4 zfY@7$5+?V`s%2)Ur%y%J-WW4kKpoVWFLe^SPSv*-i0i2&*J}hiFZgVP(kQO?=BUEq zy93xh+Mq-0cum#f?|0CzHD2f*EwRE<;uB%#hk8si*=2|O*-!vc0o(qkYOZOWVFP^d zCWaTx?1{$EyIC>AIW}f}P$sXxy|e~$`qzNja^Ef%JHNVe2R1$A0+apic`CM7f1E7> zqrgI&vE@fa`@MEL;bjQbEHQLZ9|R$mj2GF|=(^VDaa0kVn3mQ8T(U^7AzC372kLwC z8sHhgY=11J&VaAN%M2fq^Otz{WU~V{&ufbJT}yuwXB+&vj3LmY*={&&UyjzgSb;u> zMId)x5&F@!{Y_!eD?FcwS&hT@`dkF2E^9406?b{9;!3W$Hfp6Yb%BrXJq67NWRk_l zf^REhT46zW^iqGpD0Yb-%$K{O%{sz}=Gfkr#9-dkr!;(&iTSP zYY@S|f?0#}R$}U*u5h}w*q3%e3L1*^W0oI2ych7<{hIScmU{PA=y2tNo?|ZCD9RE~ap2zv-@V zVX*N2+#9acNMwf{=%`tAt{s5ea*^5BEP$>DZUDUWejaT7QqJvD6?T=7;LxpoFaoN; zC~1l$UT0|;>va|?JoCPFY2Y>pNNdpMk}5n08pO6feL>G~sn5^!P4T_C)UEVbSab6KK0DWkL#QoahtlCrb4E*`7#>h-#xbxf&*UF#Q4AG@=^{en}eS!MwDm`LqM zwu@YxF9!gTbQ@+o5j!~PT9tGKs?6USeNs`sCR>>GCbU^kKI#9A{RMOa3db_CgDzf` zMsFr$pX739e3?dx-V;{G;u?a9ql=&Gq<6hBh zQ7i8qa=|=Irp1H;G`yWSH2v$xFg&|Q`L7Yu9_wxE)q=`5pegI$BN=~xt`{`!?Luqa zM4jAdxww*msCWqUXR@oQ*H2j!gI0%kP>8Bishn(&39|c6w{hMZN=cLX>w;1;=aB=I z!I6JPy(v{cY#TDdb@ITkN!0(ITZ2@5rLl!a3oi!ts{tnMfnD#vr8N3djU7b|K?Um? zUHQ0Yt0i8jn%s8|Kf=0F$N%4Ko<|K#HDJZRjL*}lQT8`8dHc#Amw@pW1huC~oDIpF z?IlWJ0hsXQ*owb~#SW;*{F?+@@{V5$<<*DZx_*tnknIa}-jis`E$7dif-K zG5;_ZXgI?FTd4xG%@8aH-Ao3DOG8N5FLt#f7DXku6t52Ps1XV{UZRWhziUI1)#iSIdJ& zyL`3citBCtVkdN`M0Wi!5V#NjzSSQBEvKFc+pSqT$((L($pl8O1>(7xV`kh>x&|46 z!ol1mn$R@p6dqE1NOwl#^x9OZdt0PBG3e6>ozDL0fBi8bgsPsZe#uCE1!C51*`tu{ z47B6niu_IZkPRtw+jn4BWt2=2&gg+nD!N%^Tyn&lZd~s;RZ(zGz4gj?Dlne`&g zKC_HFNR_6uY;Bo-jxAS){mTrsVY^X zS-yk1%^wP;-_dmGBl_kjXwM=VtoDDn?&xY441sV3kt-Y}QT4*Kgjo{i-jMOW+ttFO zeM`sH_Cdw;|Fi&m&)oJ7uju*6*3u6>#HguL^w!g^d=%3h{03Y~R1h70TfFIgv^PGk zQMPaLYwnEPTj;(8`kKwH`#drq59y?F&e`9XvKA${FrPk|hN3bZG)gXa!E#>R!@WG! zR#aAYy)>hrOOK;Y_Joohw~2QOvzY(%$(xmMTwx*}ZRmmRdOw4GHOy^4c))(xbxC;fNEtM-0ueJO)k){TX! z@(>)F#y>wlP`psx!t^}R=v(V&l$GgTV`lr*?U`0v!MnIvnH$yYTIGIn5t)NNk&-vb z`@4#Z;BZ@dv`9P#GgsX7rss*#5?#$X981dr2K7eVpkvA{Yw@6G67)g1yP|ZB`;sEh zucEW9CW5VJ+yl?gpUFuROeOEY?NsIE=>h_}%qMKAS9_z)W~x~!#eHXo%PY|9KFd#4 zX5L&Opni9D5v4Z4PSDMrsm!ChvzyC@yqP`{r?QvaEacol#%#OE6-E@o_t&}dbnn^P z&io;Ji#83#KyH9mamqtXPy1~(AZxdSIa9{mTl11mo+uUTsNX4bVU^jvCwIZmwmR2H zYeGT*PhgDB<{ek`C>S*)zj{M6)5fD`U@7Ufg`Fvdu=Ewsh7Ym5{~~xPfO$EQ{WG6R zt%{n^iYKkPHxyT_zdP6Nmw~nsRu?w=<;CiY-J|2%>O~%&+m4L3+7s?3`cMS6&Wv*+ zt0)`Z7%0QR!44uRlJynP(fA3w_Qh7I=qKYV6(HI(hHK%;t@i z$b>$JNZVWT`8@B+3mV(5&7rQjrS{M4<{QV~YYSPLL&S}zF0#%VMRR@T}+9`)=>hv=oY5?XVn5^%2ZI5L(O zSb0d%L>fygsmDEjsKyIvEZ_CpRDLn*k|+@{)%B{|Pf z0k&Aqj#m3ndmhPScWFfKso7~dE!(oAbKiZHa-!4zd^z0LH}bUFD-<)PreL;8Ome1ZXtFk@X$c)Gc{25A z>jWO~8!8TKj3hfhe42u-q41Z$XImaN&RM-F{a}u(p_NOeYH|DPNT2rF`uacw8I?xG z%2$zZu~W$<<=>6D8D@XB?KHg!slOFg`9oti(jvj3XP|a<#*&AtT_WYQzoaG9Ign+u zexc*x%rWd_KZ5b=#y;-7t_THctLAVn*+{E)*@gsZIUZw@%BsNIX~mTd?K+Rrg`rS} zx5@K3K1DHit`gSi=HOCITWAN&*SX+%ycT1fL^?7FjOUVew(X#rCXGxeFtUpk3 zzF&Aqu4?y<%bglXg5>wE!6ir-gn;Oyc9WlcTIC5cQSwVL9DHT2aXglIKxyvHW^khg ztG4a_-b8Be!N% za=N;gp2@lR)7cI*HBlkz_BHuRsBAZ(pJ%DppI7QNd?9PEVyDq;jKP=fhZDUuzl6B< zcHqVaF79r)#(HZY7BQwQP2&Y>!abJuY`t6g@mH`l=Pbd{8ix~&ctpZE+e@Ro{H-8` zFEnMFg*>4bLr>L=)Z1a5`Sg^ZuwFjB>VRu&VP`S#g&s`&R*Wn5_CgYzx zt~VD|`ST+SCM#pm=fr5W)J7t`y4z8MDexGJqpW$i093>qay;3P%sayjXLkiPl28ANY`4|gFvn}CHniZ{q zfAoYuLPFer#QZ+3V1PY3d>a@2i{tsC`Q(v@lnh0=YW)H2Sc<3g&TwoJt1Tru&Dwjp zeqD67z@z1fQvk<7WNKOa8^g4)MChyz_Yl3`do`L}QlB}Tj99@~qMo3+Gz5bfptD*5 zu9;&9mnzvq!g2;k6%JUCJfb*e>Oe1zM0k7d)3#y7+b!!G?uL6`>RuJ;`JeZ{ztJEU zc;uxbJ1FZLE=M^AZy=bzU&U^Fwoxx4n`@!LL$T*AeK$R}zUaixlOE8JUsw3q%v_qn z=~ya!frr&*@g3RuF=OU>!gY302yjOhv+m_8oh}$2Te?~g^lpj8Tq^LV_Qmumi^$-2 z_lLzyZEb&hM@+?*iH_A>QE*xfgNakbIBN~8TUg7;-NgGAdK*Xt>+bC#%e&poRM;<7 zKIQ6xIg^7~iOJ#T<5Ya*&~mI3m&PCE7jU}EfqpTUO_K4IU+*DzrIMhaKaiad@AUPo zm(dXgMfrKc-YC-D4f&H}?_)+!A`1*J2q$V^Ewp3cqW&-@modXRBUg>oJ@m?w<|Z!S z+Bcw%>w?@DnZpoWIPMyq>a2CYn=NEVH0}+5p8Qs3LqB^Hu`IqBC7x>b*aAO}#A&5^&t$ay)F1XK%$65hiz#5OJr!Z!Bcu7CjsYW9PCF9? z{6&=+CtVrd3BJrH6g0LYHRk>5Z+lY)K}VyBwA;Xmn_a zeG6Sa`P?NPEkBji3i~T#_ooh1MKQTfH2))KsU|NjA21l|jh)#{+1$BYnIDU=;Qam6 zUY$>N40zscf9mOj8l}sfM$YPLtUGnq=L`&RGPJBwsN2@t!FnDl3|`~ZX1Hr&KGR7i z&vxSo1~iT^jErW@mcnoCFQx)&vD@O;%xH5i-!6d)jUMd_;8db+tevabS(j73_~A{cVZeVnt0ckOsk)_tft6~>MIAzNYM+b z@;9FwUymyKTak_fm2ygD?YcH&0nsnS5Etm)m12 zscUk{%<|M)7b%mv?jBimuB%%qDTMkz)YYB!-lxaOY+_-ujp|%)zpDBbjVx2+^)( z^V@^JSf1(~7Jb_NwTXq|!c6A~JP(bI+G!@_3j=uVkRM;Riy3Rcj7wZyt_#Pl!m_2t z6t_e>%TnUD-wch@KNi8$ykn#$!#sA6JA5=i74OMy23)g^uxF{>8Dx^MoF31k&+FhO zXKZ6JBt5=y%+r)N|Ip|qNW~)f&>S8Dq1~C(=Z||DZX|#t zP$c}Gi(Hp;XhnM0F8{)03B~Q4i%&6_8n)<#hXg)_|K~ne(I0)H?e*ufmlv{pG>O7^ z-)Ql5g~FAK2W(D;_>co*FRwAFwF4xY%=`G_(X_CabfIFzrORi>Qzklt-^DNzR6)I;a|4F=O*m`1dL}%diHsY{~hgX&8L`*E^E`s?y zjNT`V+*N$Nj(nHNph$VAn?7zUnlGa7iOB_Ns+d$U;x%ApBfrEFp}!bmZ5pFx<&M6h ziK@Zl9`Qw9GEM6OH&MyFcYrkFGnNnnl3ipv$E)F33ZX`u3+XD&yPe^od##|OVUsYx zZ6qJNq@U!jEKzu{*P<_TIDY-*gci$f@tvH8%C_sZ%K6ws3MI2|zI;l{kDSas0~s5e zanGR;=y#*L(t$Hp*_pAqn;B{U;6STZj@izAZR;!^KTNgjCqa$BNpEC-AZ^SgesjEg zYgu|VhhLv#CK@T8=(dtSrn{8#<64t>jIB|xTz z8TO?*LOhX=3P+ezR5j|oxif9QGrVu<-9}0$x4yJep5te8nM8x$2gfVg(Zc4;j}iVK zRP;H5KAVHfv(|r%u6gG<|1xY+sr^NR3qHb1(3H{PV?Ugy>0Z>N49yo`W!*7|k<)x0 z=~bvOG`k#m z>*a(mHInqd=|0ROn)Kxw_yjA~W)g)K}&T@92k z+cAeVZNKZ3EuE=$w9FFn{Ky0J(g5Ecj<<^y%Z+~g!xyCRhN~Y?To_YFvbnTn_IeeT z;%>Uf=i+n1h0jY1K6+wt6m|}?ZKOp}CNg+F%;@coBVx0jVekjckV@mu$ElcM#L)Z$ zv>)T=dHEMBG|8@Rt)DWjjawAG^pa{DJ2Y`U!sK{&hQX3Jo0*KqCG-|+xa&-0(ag<1 zL;HV-r@)H;jnZsFXN9TB8Npz#qps$F-IeniBG;o0L&5W*-&<6FONsk*Avz!| z@;cbs(2Yw<_Y=iLLC}0mnnj-Hqbtx>@8YnM(8j?7Cg1)255DZLw6sw-$II&MVhs&m z&u;7vdr^OKt*RTZHC9pkyg71$I--Nba(hi^Wt)mA9Z4SATdVjC?Ce&CJwAN+@NS_> zw+Ci<3?Mlo*L6k`VlCD@eD?MP7%{>5M$CJ$ZvRstoaP6VBngtTawd&- z_UF|ANx|>m-vNa$i6q*tDcN3iB_QWQe{mlZYQ(F73l{?J<8uW^&NDddnX$PBVRzvt zCe*aILESZfI-Wxx=u9Pb%GeLzBl1H?&g9F^0z^_0$x{go#w4{yl00hl6p`uaiVqAh z_O_)A%d`%V@K|HfS9lSKYF!2gRn04>tXQisN=;%$5I6EULK{=xHy8rKZ~ib z#~^^1np>78Yj@p`7U;tG1GxcS2Ol^3LnWAE(Z)cNEmab?C+Xv@@l!rKp8*zh)pe9s z8(+}T(6Cr|?WH=Vf%uPoOa^n-vlmd%)j&QvA0*7Q*=$qOf+~9e0_gL_gZ+nB_C@eSATTTpR+v=O5%Lm*kxn6k3!n`X-mqB4eoT%%sVr zwN(3_JCeesJdX@v$yqaPdhRv!%1b)O{Q$p<^v6B!Ki-3_U|w_h2g`n@N@`4Gl#8Kenj%* zX*1-%ZwGo$erAM}kpcG&&|3lIp7Bzh_BR~izb_60Fcho!!=v0n3+;y%r~0762rgBW zt1Ke3j**7GPI)IAnh=gTT^kyz!-N+>P|srcZt`L=gnC=Q-Pdj0E{Kj^cjvDIu?!0@ zv^@pL3Xhv)*)1;2;C{7v;tU1;jXIOTw0eY6w1vaA0d?tvlSH&>$vsiz_>AiI8G}WX zM;Wr2QQBUlqiIg5f7cWNzL*NgZ)#f68_;PALD_8}KD zEcAf`x>!h`sNQH54Y)+{0R)Vkf|(zc7+R|kOfrsp4&db#y$9u8R~RYqR^T;P8uCIk zw|wv8?rdm@&8T$edzb1QKJ+wSmvO1bPcYwR)s=qGz`E#*J1H}>gA?iG@(&Qhlg!m7 zrcwBD-mT{Kl#7x}4VQ0(OROW^Q@v%Oov{?AP}N$aHw))8NWyNU&vZIoQf2oUL_l@D-1YSMSvoB4 zr46>}+)Wo9C{CGpHjp2CRG)e4g62;cFqU1nw;xXaEeIX^A=9+Uuf74!UW- zzEB1fPnq8YqXP>?K%|T3>!}FqMPJe#U4clVFw1SU!^b5r+%6sOPQfWQQ?M0<=uo;5 zQsQ!8Npq{mcFxRdy0X}K^-1}|){wb+SQ~Sn?W|ih=nv6LTWjCcxgSDhHc-cV*JRdC zZlN8)=VW+K^MW#v<5g=@qddP*%CV~#VMDoDlb;*Zxczj033Pf=PKdz&CIH=*{5y$m ztl5dm2bT*CXdT#dc4^<}koRrGBEk5JKZ0r~cB7vQj*yiWeE$#eVZjQzB&;qY&O^5x z3HI)oS)=}^*ipZ!NSdF>w{Tg#dG#8H+-V+KYc9RGBxJ*|YvjZV{AZu7Fyspq3#MNd zwk}HlkL-t2OCy15>OnlA{sl>*T0@H=h(r=x$B{e=u7cULPBeHvW|SmJ(~-t49dTeq zsR_Nduf2)tq|b6s){aokUGV`1k=d20=-r}A!%bUnB!khG^8DhIZLc~Ii@?Q&5zt8V&y4uQ@_k${TQ+xhg>Fw^ zn!U9XUnKsXUbc*%wJ_Yq5!ssx~k zhZ-${sK1|S)7`~6M}aC37L%?v#`1tb`Azi#|BVDXT@zPnwEBt}uJH}}&4uPkiI?BZ zvT^5qz%?eQrjW_}X`V2}qD^!tWYMR=5@nZSY*bw;7<<6$QGJJyIZ-?^ST7#5_lUvd z@t}88A=0{bTE`YdDx~KpV@>wnEv4X1JqHReL4^=H-^Yjt zt-H{NzvQwNz1B0()E}XeQq@>MKlQ=+KqLOxw6%hj8q8A0ptiyW_2E%xW@KT5&%hYE zmJ=qWShLL~P^sK2%XFH4G;MKm%Jy$Wp(ot}D^MyPt=?>0oFcx?Nkf1?#qf=iASp+Hdg4a7Tm!3gJ_v{hGycyj>u?wH{0HQr*@X4cCuFS9`J-)yV zA(sn7vtFM^5BzxW_^=@J_S?Mx0N(>%&;XsklT-(#i0sBEeI#td9hN{Ar!bMXcB#6oeQ z1{#xdVB47ki3TJ-Jr3Y{@r`Peb$jM&>~}GkEiw6u<(jE*ME`zi(0ooLgB=f9^d6Sz z3cT31mkiP*Z*UV@UG@n|r@}4+#wb}_h{Y{E5xyOJEmTe=DZ+!!(Mpv!D5$+$xL8ic z+=CmM#lGG_06=CAdB0Noh)A*a*F5n7f>U?7A@ck>KK7q*H|TbvHFLfkRT>$fC}W1g zdat$_H-Wk9G3WBI99n{(Dzm`9;Ou%;WOckRS29Pr@@eMttWjJew$LHS+1DAwO z_VPwx=Whi8pCYP7Mk)YD0JipxjG8)_+42tpdSY*bCEnIa#>0Z%KYQLr`L^flB1G(D zh`!?j#p4;p((dcOyq9xr#xvz+90&8`_52XnG@~+Z>ztC2rQzkt}b1j#r;QI+?z6O9!M-Kj6jjUYuLsS@Cmsv!4C;A$)pV; zJuBkuNTv^24YDBFm4rVqp(?ET2;Eb9{4sI?>UX4Y{?KL~8S_)oHRX9kgpazCZd^9LO7H#L* zMuo$$%+5+4w82mJ=}F^5x$g{w-=OH*_N8;6^DQ^n7i+a6@I22T*Q@mt{bSo0_J=mG zx4yWyzuNKA1dfi0B!417<{4h3_S1OgJ9L;Z-b7rDLiLxSl z%=maDX>awm;e{>DIo!$`r=s%h)`Mk~2Wjl(M~#A)x+fHqJv{(>2RTbr%+)l-5Zl+9 zDQdGjJw-xZif=b5~ofBPywpk0t8;IAbosf#YSo6DAHKc!ABP(Upxd;ntHAkF0} z9md$xI!o7fF^H^B6W@+(zbjP|o6{xuWEK65`YMnx)qhJ2fD;J93HmGwdKn|qa**(q|!`zFx$VJtbDzVnNJsyTPPo^x%%l%6LYy?A9dmOcTq1 zF($zE#cJ~e498ijAJJJ@dc;uh{Hn3mf%DvNdZe4RdV|?=KK>VZX8fDcefw@TWQ<&I zhHCio^oNE2%YSJBu1*1QvoRL;^Ofhn4WqKlf?l6F)(C#ZH`dDT@l>S@TXEr0Wiv`W zRGJL}nq?XU{43XbN&70liPFzyu20grxs5QS72V;>HHn1=6L8dW4Itp##Fn>|7_U=> zy6FJ}LIvNB0m2tslE$PV;c4gT1k3s-Kv$0I^>qH@Up^_w0eF2#4&;gW^&HlE);RuH ztBb>5uPXB(Z1Ixko-v-2LN@R8%8SXZ?-+os@TW5MnXu-*Qw-QG0DkUb&W6vNlxA@# zW;7Z*W%8$(YkGC{WtK>|m4`Fg2juS;+F@jIsW0wVkt8gdnSzpmB;TOD?`#T^AH65C z&55Drf3xIW4rH<=yoZ1LTX5Q$Ir&8!j%0d7PZlBYnTs*6|x|60d`WSV7)`x?z^tJ>?-7)H9G(b+NZoX4gI`OPcybiT5xq zXyqM+8`;m>FE__Jb4qGM6Uq=5s=V*0W&@>ih1uZazWZz86f@e=8S_gpdK_COa`grh zBRjE2R861zr3VvU$bBHm#o(Z!B3^b^c|#gOEE3Rdi!(poJHGqEV#NRrc6C53sP%>d zf)b;@SiWOWY0dK*@~}PBlp5{y?N{<|j|30YP-;S{>S}C3zFAY_e4fTFomx|WEYJ_N z_^$Y*uS7k=;5hTB&|KJ^D`3eEhr!zjU4h|2mmJb|f64t)Q~2*JOE$0CVk=$UPYpHC zCSwNoN&ysq$ZLCx%DwC--!der>kQd=k^5s}3%0}qY)F{Zxm!X8;rq|p(#zZdSyW8Q zx-Ya}My++04L!39K?`fU^kVTJ8grNd2jflK=ELQrg(*G&0`kjSxzRV z&#%F;!>%tjqW9g#uz!TAFeX|u$fi}CI5Ii!h>o{A)k(;b)S_A1=}px#%Z0Pw)v{fm zBgFyv718moTM^Vnz5(sOYD-22eqD?W>E<_N=Ok+^I>&Jj%C5Jd2FBN7S|HBKEDsii z@j*r-4^DEYVzE|HYkQo(*Y>Cm&KG~J11O=ljcgo`G5`U1t1)r_$%~nL%#>fc&(>sE zlKM1=h=dgii{Pslw7P@`c*)|evn&ugseS}|h(wFgS*W6_1a`1GuJ3SHo#S&2Z-sPHL2M%les`6>< z7vx@T7zhSi<8JXh>F3&bv47VTk`&h53aAmk?@kpa-4F3etw|El9nscur;o%BYnsTD zJ$q7(Stf!dhZzB=cN{v(golx$mcuzEk4~y~MdvPa35cmxWp!})Jh(uf*E>mqyrrTm6kuVWm@2LL^-~rr0 zKEzIVt~=BlNSYfeLc*;PImas){9{HN62(?)AUe6R>UK_VH@|C~KeRm(jYIl#Lk6bB zszIA5{u;*rk!JOEO_|oz`6Bzu6rsF9>*;kk0DkXBM&Q@9pVgiNVJ106|5C0lKJ_iQ z(<1^v$QKrC4w94<3)m@!&CTjCoaL3N=(QqXlmoNXipl;L5Y+Kfy?#%?=eK~?H*`*J z3m_U%;td;zXW_!|FRmZ{cEt%YGHH*xTqKG*c|e*X5%)`y)sL{3YCU zsWQ;Pjwx5z`YS%~1i%K%lGRL)Mf7{ zQr+VmA@fY8%tj`RF(BRHLqBhtFF&!Ox6LN^E-hCCPOnYL<#LlL*}@=keq(tnxVtq~ zgB50(<~F?|WV9n-;RH0qoD_Qj&sf41LAd@%X_x9-igRmIh=OSL9xs+4{#erse*FD0 zDnFM94Yu9ynypGbU0o^J{K~Ou76waoPGs?mTd;3b-ab>jsK|sSeg?@vVcMo4bQ_R_ zu(fl>r9zxe+o{rViWRKIjvyiBekKyY{5^niMiJ|VPk=x5tN+L4uPv=cCtS>tnzkfX>X1YM(3Vs9>XU8GBdEzqPPs=AixNs-$)vum^B3oRD{}=#=sKh%5?PD5G+p)V6f4?fV-Nr z4K=j_)uSOr7r419T~Vd7J@HDd(EW99w#!}Tfnl+izsak0imdgYr4#ow4TnGg-jl`Y zfCCf;iWnGFbilk?2mWLny#Sv9J(Tn3$dLM$AOm168DBbdN+Rt`7{vglL+`Mnt7{z^ zI55l=?TBWWsF7Jjylt{SLUF8_7Myae5#n4q*7ruM(7gp)Zt+B~ zpj!JsZUTV8`wf-=&!Vw}G?c8UOSHz4Mf=f+77K4)9ra+w{R{{vQ8x2YR`6Bv*AqG- z9%nxEU<*wqRkrelDCU}sUt%ST>WaU8e?Nwn$1PNWz_%^XGH7rU*~|+hvVfy7!y?A* zvplD;4D?2q<`iF4WzQMJ7jp)h4{4%XXykhk`iZ1t<9|Y>`~wU>!3P?yBTJ@wO{6eA zpT7~2-=Z=9AD036pKv;`*T@IrhTof0xZvAv9j&Hr$H}4qS7xj%Y@=)c$w+^A#OZ7P z{E58;w9jh@K7hvVAi08N$$N;11h{ZXvPZ1EEmq}Dq2^4Cc=XK(J9RIUEu zXFTQO=4s}@RCRADt){+FIsMVTW4JcY)u0`XiloSI;HdRZ%HrOl@)>Y}9X(B2-jLWl zu%S?Zk@Ucbw@A}rNUnI(TKJY1f=9|Z-MIowJFRnA(LbjdS}(tpXwh6c_?ZXaPb3y2 z#}^5T2TQtF6=&0U%d{bjR;?AiGf<#dNya>l6Nv_>rkF=D9aryzNE6~>e zb)oUpC!cWVyHNM*1K!8fIQ+=k&q@te+m$mZ(#jbmB+r<<(1!1Yo-jtnS!7p$G|^2F zf?LJww6A@9Eo$3<(ET>U_;*%(90gOv)_`?epENRG8{?&B0%JYl>lu%z*HtYOP}=n8 z3m#rdZbMzBvsH%d7iPd<T_5dAwz?YHJ*F|F*@p;FQ)IKM$4==8d@5Rl)hYn6>>2M;R?)g; z#9GSOognWL(3;xR9LLp{bK>CuaM~bw-Y?1wJ!9j(iycqX#Tx84LF4s74?ybsCI#Oa z($=rNMl3sa>Ym2C_X?#MUKZs%J&WRCN^**|8W zP7@LBQQ=5JM&naF1>o>mGe={)hJZO*Usyh_eQUYb!B%;uOQ>iQF2#*!YcQaimrRg+ zY$z^|YXby2k<#=16+M>2S699DRiDMc$WXGT@-(w%S3TPk%Yf%~SzDal)L5}YFK-Wl ze)hc6u|;%yl1%~lS~*JtT#RYpU(*Q*VMVH^X)P^fc-EH_$DophOvCt8>P zlRVo{^D};H(n15LD|UIc)3A6x-1GwaLzZ>QKLs)CJH{5}%bvxh2&bRyqmu)wzdLaS zxsI!9uCr8fH$Q1fd7POFQG3dREhFi(TDf#hJmijksfL~X!BqBG2GzGxKDl%+!>ohJ z^SY3>fst8rHrxXp{NK}GJ)byyOtZgbLt(Cgsqy$FClLer`HL`a%z=oE3NlpaGP6-2 z@9_G+Mbp(*t8{vLNbeYihWZ_L(FqC%6$T0&{x5wv`#X@A_NY){heQ%r3N!wQs@I=; zFyjAIzSB138vE~AJi*RFveL4+2;+gw<9-n*5sT$KYT;qV)XZzayS}BSt+)w_oiQ_L zFtOulu=QSd8n2-g02=T1eIm6rG)9R|M4C#g*c|=fu(%`rY<(eL5=#ouf%4v)c>o_8 z?LV|A*%rl@tuvbR$K% z5PYGbE%kIqn+~K>&TV$KrNYtQ{oQcsQNdZld%)JT|7q5XRji0QBmDj5xBaOw(@iQB z2ZFGLAmq_vyEJ@DQaeWSXV!l4))TZ|J;Qoez`{Q3dIprC?hj6k+ zH+0=6n#S&U$UKfmLpfRKaRd@9z`h(f(M}u9igr}!NnaYuCXE`!ykMV;r9RA+yN{+n za?F-W14F^AlepYz8m)ytMx}jgpYwB(BH`dR4D%7LL||AqTn4R^b2Op%;T+O7B_=qE zzY?4e4gHUmO6WsVR)#=)c|MbdKb+CB$_re%-1wbOQb}yb4f6mPBJuV#E{VLze=dk| zSk+8<(0-IH%jb~lP>L)Nm!joz%YNI9fvajEE1ZbU?HrDyhdT<&!%Y0DS+Zor`-#A}??DYaX`p#22%O-GSX#Nm=iDPUpenYSc|jj6+#)V5ae7<^=HSE)+OL{HMY5BV;^lr`Q&{@5KzT~pzP^~0$1^M#BoB{TSs_qRGnU*KK zrpjPV%-f;ltE#ix8Uai4Z7Xg{4h{Wcmj30wICDx;cZ!EYqh|08&CJ&gEJOW@l0U(z zQA{>I`~X1nZ)DpQZbWfAAH;Yi>M{4dTZX^BrxbVIcoJjz(y^FIa?u` zDMod>W^~dr`mf@z3`c(8j$Br_hmMJ~Iq^%*`uYQ@QiEI&?47;{0zTB^m!nd>vsf5; z)+r`}=RlA63fv|{DHA^^kIW$hNK!_*pRIwEVma^r)^*!HmR`iHEA!r^+ekEVwP);a z)Atv4;AqVPI!29-qv7XArC*jP(73413_us{cI$7U2+2PS3%TInWHBS4A1k}=_Ahsk z%U2v_B@T=vepKkgoc!&KnL7VGws0|<@ui?kVtc&)Xi9M-w&jE@=tI~_8*bS9#JKc@ zFQef)3>l7GvfR_h%e0*Ldjwm-gI|dI%*h9SgfBO@_+H(>5YH z!TBC6YTi8O$qE(^KSy{&%PVViCIxJMM;Fx=@?o;jV`+tP^qh80*>$2$$j(IyFQX~_ zyHfF=4mS0oxstf&sC+^5`9O{f@`-4LfAPx<9+;EoUv@0kzFc%SufCn@=!xTNa~Gup zzlmrGaAxBe_S}1u?F4-j%P>X6Faoehj$k{`Zibpr7@S_W8x1y~>`~1@@m%W4^^{;8 zE^YXv^j0(s3RLOuo7}|k-ZA(cdm?w=s5F}0g%wh;Zea5DzD9+@312E-2|7)s06Mq= z&-ga4{oU4s=T)$*#_OXoi8F3rf{Ms3vCvY9$Au+J%&v36G)t!~9euQcCfTb6HvjVb z(xU$Qy$B}8-I4Rk9ShVkL>#kHQWtu9KrgA#L9>?-H6{RRpX5n7$;4kfQmHJ)1&(``3Befa|s3#-fh$CpXY8BI3 z3x(0!BFVRuY%aU1N!o9eRi&TT&K)poLpm!2VoYdtl_K8MEdxni8>VMlG#6oI z^`B>N)zxk7o3OUwdam0lCpmfDAMo`9yR|@B@7u72&$IT*FM}U$@)vK_Rzv*WQb5q; zLJm~%CwQ!Z8Ks)4)u30CbuV09-CHW0!&x#IdYxmq{<{-h8&o`v%X#CYp^&-?-OmRx zVJe*wxB>T!xAwoPW!{-vKve6F=|C4MB`W++*9RG{;=(^vqVd?BC2qQ$KE^%Vr&rrk zN{yKA7N3p1ck)*J{3twaRy^CmJ`kwztA`vqPeP55+z~1WBl+Ymj`t5_1Jznc zvz7iZ*CSE6CRK_8yxtCopXgnYIGx=wQp);62qt&LcF8?4{`Io_`KHHyeP_3unYovU zbz-~6THTilxaMLmCLbjjGnPUJ zL~2HpobY%**Q#`V1?^SR&UuX5lruhl^jVm^JdVIgP6&JA4iiESgxA)cE|3SNZ9%6? z!6z98fkz(?o|Es&kfD462cPQjbQc!}vM`o$3!go#V1cwqQczk%ko`I1L&etyTzc*b z1R9{&588#>C0`y%)w5iAW2K_|hNuY6hXDzh-s6pK7-oG2wWgQe?<}`4+*Oo#G4=p; zIlH^{G)Oy=%*ysYAoIwVBQKWCg=8{A**vUVuCZPRYp`Goj*s^c{VRqVgyoCqN3i>r z5L8R9zk9G1UQ{Qx61w=tm$4m2ERgsKnp(uyef}2Fuaseg!q>)4eikyXXKmfr=DJ#> z-uNXGIBVW7PIQIuYznc}bNTi0Mx~XFRpm}1T7TB9g0AvF~fC@54g%0oGR$Iy! zd^(w<5$mrgunb#R-kf1D&&+yw=* zmJ%L_eIW70pcH1>d2}yS-G~Qjasc?f7yYT+CJP5Q_jIT4tWNV_D~|S*fjoB-0iKTu(D_u`Zs~YE+44*mo*K+o*gu`|8$Ue(R`jp$ z{3eKJP6YDcMBH^0NSj8q)e`nd!VT0=W4EG-Kk%57GAm2pHqS&zKyp`~i0DWppIb@~ z@wI!alo6!HFtodrDo_ynLd+LB9qYkj)P(ehcW#wds!dkw$2VTM3P)h$fBm{q{!P6t zjZioO7|Wpukb?x%QCqQZCsJ30wz~Kd>;!`JC&p1*9U%9}7x=*e@b_nA(Qc=j_U443B7oCx^reR)0q9)BIV=!`p7p94D{ge@bsj@;Ro`TFV{v2n1UtxnPUxj6^=CIc|p?VFF&kL$DPub z{{FU<6kNyt2-b-xF8+dFU`Z0F9%J{Xz57;If0|A&$+kMliVyr#{0D_UIyd7-*6lgbm2?2&RAUUjc)6L;FJEL0em+ zyO}Jxu9x&=C{wMxe;-aoO2P(d-m6m>IFQa0hd}A^{nY4qDfjMicQcfRJIn2wFCl{X&Ew$P6=6N*-X9+7tb{IeKWyz- z2iAwSk*WMW_N2haO*LCkhG&X7fJQmkfRoYf_Deva$rzcc{`+YGW`NT{bnK$r;rO=} zfbD0{B|G4D@>^Y10rhd^fXmNfMT%E%_gfrX!R8y=CywQ5j$%I)kv&03Cd5y!yfP@! zIay>mIVxSy10h)|2s=d(h$w;xRqr5p1vf;<3;pAmMaana-y!8!BwXccfM!-m8J%Z_$xaPo%hx&khC}j?KSr8s^ zVOk$5B|H0%`^y19)((+GZwU7M&^}V7n+^=*#4?={cwqfUv|FFMq)2~@8rwV}(a$Zs z-pm$AwO~mh;9#iTN#V!ejn<_PRylvqVv&!TvZzL^xB*Y) zNX^j-5e$a=n83}Yka-dN%VaVmto9sqbJ{HbOF^=ibJQROMgUkzc9ovAnK`D*&3 zDhnHwc*b>3LjDpy%TRY0Ud`f#6f|W&(V6Rtwg-a+Ug{dFke8Tf{behdcoSs>7=`Py zF&#w#-3f{DliFv{EE8$*0~vWD4LDmi88l`%ZsL!*6;4y)f$=+eMf-+}NncNslT)8s zXCkfv&;E7)UAV1Ww3j~NMixT5-;Ylj+C8*9fKBwa*iNs&D!gL~y=x3aMm_-AM&QX- zJ6~FPfIErZSqJ&j5h?MQ}cck^8dAZzuU6Yl%a-%Bq!XorT*df|L z{j3Ds3K`AhN!S^|BmMfzmo!sDpi*l(nPFG?;$rlAmGf_CGEZPD4ZEhn(d~PN7?iB} z0j>H-bMm+t8HuO2kK-Qf&6QlI>3_#)pYvE7-s~w0BQ((1L)q;RtVSciuQVJ`xn+9$ z!aQXcb9bu3kr~#MC>>iWCdk!nEJ#;UqSuHT(`H2fld}J8qfI~J`$ERx5#q;WyFBz$ zYcXOtB=- zF}Jn0U3~I$??**sXCI+<-`VViewb%n$|4G3hh@O!Fk$AD+bsA69(M3@hrdS+T}q*| zWPx@b_!-en7kn^S)%zlpsJ(pEKSF}NTPooE6Ob&omhL%r$Joj7Z8}i{d+zDX-x(HS%BTiW8AGgnM=Fl z*R-|wNP=JNcH)wZB5m&~Ujr8>YQDP z_F~C5N0JUhlc4z;QbOF+U#mFnl}TEP5thSSiN-OI?Q6bR1%BC++T>J#=YxQ9=~En- zogFNaUH!sTg4ODTqu=F2)%J8j5A-kVdfU~GM?KR?f})O8^0xqBt4JnBqrY6H09QUN zG-)T*1d~+~@y>;JT@%GvU6yfUve!>r+<0jn?}s*wu}6*}ksCh1W9EtuRDpI_7aDQ4 z2I=C3SQz=X$Xd&Fq@Vl(2VTVjE4_5RPDMO4>+)V&;i)`dH)`;NE@J*w&q@!=LP@cfrvfIAr(bdlNT z=Lan#A$XiIh{q{MJ=zeVZU9Qh3s;aMDAzYwVqMOu_W&(9m0iyJcrBI_1Twj;r#oL^ z(Y`JC^vNl$OTGnDz#Seb#jl1=soE{$BF%5V%UT+LeTebEDi2@+{b7?0d#T6a?=%&y zobNW_%0YZN)|gD*{w)v`YHWCWgr0P*j)^ADzRc~G5s9SVY%jBA5BD;Q#L(x&MWU>% z@mXog*`q%Xp4t8YQgj(4)qk@v!2vJ5wcF#WauK`8Xv|qzPR-qppwA%W*^v;b<~dR2 zg?xW*uqynW@_EPbB(3g;WMEB|%5f1Um>4wqw~vfkcW#tK$7}pvTyPb0MfEVN8BozS z%8<5wG1ju6l#P>FuI^`z+a=#u%0Q-`9;zTKX^XsBNlm&mx1S_2wxLS&#pjs)&QQG^ZSb+qPI@*+ zsvj{AFd6Q)wC{41Id9ikBTggKMo1S}=^5aBbF$J}_Lna%wBsi}VSrAI!{%w)XtUVX zth%n!61ptyjp(Pe-}eRbB4-krESBFLGJVlEj#7!_twi9{C`PI8sB}cg$w*_39`ONF z2gWl~Vqn}~9bt_9&ZfIMT?dcdfBNY0=A^C#W%KMrW-5jH`(fc-QNc)0{<@2m(|c_!hIm=E(+h8W9Nem-nTtQLAGrP8 zge?JF4{OpR3+axP<`!+VQrf)5C`x!Fjm;wdy=ys_5P9f_AW0~U7$ zP^Pvbq5V-`9|O*@ZMZy&e_tp%gT+GC8%EeAV^|*IQR4FwyFXTeY8L*sjYpNu+6t=( zhVISfTyADBd#GAt0M!!+pZEhX644#p>ZmJmYMg%X8E1Jvgq(4Q>(zJo6+{^s<6)Sy z;j+0c(NQ)r`Qpx14*Sg9Pc~GR%gjKFMRqy^5#hErjf2+WzfY@-(q0RmX+r9elRlno zM5##5dIIUC$U#Pr6odeRj%lg?p`9V#OW7@u+KQFUFdP_%kfR$dO@%*BNI~&qDAw9& zcU)Pu?M^o*=gD;|9Ixr5McHL9`@T%I7NS(q?GCt$hVNGtJeReBVMM?<#}6FpgHTJn zY4&E@Wo5AI)fmd*4r}`R^K*W`n=_pa@02%JZW6T}D;|Vt!U%0^D+@4;A}@Das9Nrp zw4_qobZ%FLy}fPyhn261o{!WOG;D9K{Ow1S{|i1)i$jnly5Bn*P&L%P^buO5c*ViN zf3oR0)HV5x6b*@wNpgRMlmqv_+WP9KsJ`!Q#1BX)pmd8!cPI@?N_P(>NOum65+bP# zozhA-14D;^G(*GC-JJuxcRt_m`~KE?*N;E$0@gbBo_o%@`#jIH_t|?MkpaCuI4IFO z7M!bZ?V7H1DKV&x6!%}qv74F#5>Ow`)Nxe)$B2Ub^G=ko=s3BQ{~>%!QgIU?L4;a{a{=L3X59za>^vk5bOMA1UBUwBa;F% z=Ly%_91{M6W#h#`Kz4~_d{j=5^v>NKjgaXg>EAZL!n_Y985ia=3GfM3jLqE1j+kkC zXbWpvC_U>MwNl|}}o`-J3SJQ=Xg3gDNY>IV9Zeq+Pi0k=636eD1 zy}XvEHca+v(DklQ^Xs;r86{_$KK{8^ZxxQ$6q~T2>Go^w5Q%T@6S8c>yG%Zs_Ki)W zqFtY<;D5nqHNmN{;2HdL#>OAGvQ`qQ4~v@YDi!1N)77eezxBIX#nO}2RMSDo@QCI# zuT{PZ-Rc9yd=%93R^bC7&yyUpC9%|FQA73u@}IZ-!jRb)Ok?Vii_N~6C37%3=y$C} zc`=Ag24geW$t!-?<-SLr;r^|r{F(gBjYMs%ig?J?yOLmvYKq1`T&OYgfnlyav*RIP zkdd7~<@`ZWuKQ2+`2&5kB5k8cMrv++G~4~FgT**r1c{+ujaQiX!f}@W8!;OVkS%!9t8HhTg7xWLc)Ja;`@iRA zJVoQORp(`T-jPN*zOOmBC7|^a2^GiuX-`O)ig`Mc3b!d2vte{`yu0SV(=sYiSh&!S zim-`-^^v#g1cN;W<>lV&db73LPLpao?B*a6iU1gdI{ z{__cL3ANNK4#FG$?*6q9D?R*!z;ilb7@{{YMx+ipd)e>3U@jTnsE+g*gH6y(I`(#C z-m&cxmTz7c!j3Oz!6*AR$VSf3p8jP$)vx;bNA8XV$Pn%LkkPL(m(ed71My*+cDgin zA{F5e$k|jYD=`(2x$aZW?6VByt6;Ylv+W@_A4F-(J|>}T#&atHQYBgZjz&a(lzFfCa!g62 z4sMdAh;2TyP`2D=IMUj$=QV^og%y}+O(Zfx`HZCSs;y^lOQthFB(6)A)pC65oI0-Y z4WzUYl1F-#WT?u{_ZRkE*s}h2j+{4zOAJk53e^S&rxa|vN=D?qv6PA%CD~{qEQ%Wh zw5MqFowZh_BM@I5qTC`@PeZysJ4Qn2$EWy1BA&9BcoU`NVb`TFZ>uh{0Ba=9F_Wu& zbe81mx#IPmR*QMLa)OD&1&koaAeGza9LMr@Hrm48pr3aChWDsIoPY5Kw>7_~+SBTv zW?zgfm!LH@l@47QG*qfsctZ%3)Dbe1>cgPODmAqN$oL+7a%5BxOvq6yh=bf&@7e zgMAp23(3MRY@-pq9s<9r59q7^s!C0;`_2388BNr2Pu_3kiNwUM&AN{ZBGD?sL;m&= zpJs;_kH25~6hv()nd5V%y3=%=Mqa4t?Us&>`pl<^PKXgOF$Fe?-;>0K^qd0x=+}hS z7wvkkqS?vDGT7T6vild_4y?O1{IvcO9D%8wm%n|lK02ZchzTakPWTt=MqSmB53$A8 zEZ1vO_Le8B^((ZnZqy%Khjrh=P6y6@)Lihcj6nq;1@ltY-XgZT>$+)ooFTt5W8V7v ze4K@*K9np->K$hC<7~@twMHY4`eN;m_xhd<4vRn1GQ^2MFY*y~oxuEua7j4Gd)re> zTg<k<~1vWw3r4_C?2(>_d&y>68%$tn5VMYYz>`tErqe)u`i&1d^2t?;Pco~sB=(k z`pJblDO09gN63=SFFVG*Hec?0QA3zV*%^){DyBU5I*u{V?bW^(w6I;GH%qg!E&tan zZ`ir{N)OvifFR^ciILx%KV4qtH>cw}vza5~FDPgt%2v#nm!pZtRP%DRG_iFMEx&9H zcN-68?frp4-e=wAf8PoIIi+%cH*F!#7rXRXyiB`fbRd%}YpI})4xH+4&2J$2r@S*g z7HEw%0S*;vCrLim7fyJ`;t=6}7+_Dvy&i3Qp{8t(bMX=L1LNO;S zncV0CFA$5#&{gKxw77fIh)dW1fc@*N(z^8ze>@i3cVh=urt(A;IA&fuJS0vX`Xqkx zC{bql-^fC-52E&me?{{8CCyU#@R)U=30m1_-tbg{mD!g763`_uG0_dfi#EI18wK)3 z5upeJ6w2Ikd*I~=b0FEDZSGo)4eSnlxMh-&@u2E{heg-*Muw71(zMSEuOQvmqU0FA zt^9RL9;C2vCJrB>M32sv@Ff%Pkkes;#M&s0K;*(kmVeM<*Xf%cF|}}M!dMmDtUyd4 zZC+uf07VslZ4LB#M$z|ZQDD54)Kq5B^SI3^aws+M*ez=qE4jFBA|X=66a|ZD$Z~1ryU>u5k0qXza#rV(PW4lq-^9(LYZ)WkQsaLPx_d9l* zl)Id9sr-Y_ZqR*tFTvg7i*+DAids}1NfoBacUu{6p6ZW%@w~jr zwO-?s#d2`~q?d5E_`Wo%4vClvr`S0Jq|AD%gjMVKb&U-C_0Lt1i znyY_~00A3;E}2852>G13#G$BYbQb=mS)ZyUJpH(-u93{BKYM=S0^d?p>}y5}gWgyj z_h|~g(75;OdV$i$%&Lu|QVL9c#mxR`x?vutea@JTcr~5mjykRd^W*ob!tPI{3ZwHJ zA~h!c8K9MepAk%9URv;?q|sm9 zchjW4fF!|^v}(B6eCJyHn+|STR!mV9x()}Aru~$;t4H^QDT9BHmC}tVUoAEI?}BTO z(lBmzA3`UI*6+;?`N^7-ryGhUu4lYj*VuHnKd<;Mel`I(2k1wn1p%*=2#0{uUBTku;`o=DJE&*`cVe z$VO$0JChn7zPLd4UMZY%D8Pa2fuk-KHu`7@z=r;$G$?g_&qPjMA&>~{h&xibk50MG3qkE|GOZ>6M)B0T z;2iuZ&xIcr0FT=U_FwNn1I&iJdcLMA9R+{!#LzzyZA+Mo&$8Qj$^ z<8pVd?tVb^dGuGYw;9T?TSw$nfR8_h0hJCGl^g1&FL+87t?I-)nq1e@e&vA&1#=Fy zQ_}d;T56T!xZ2_v6v@Q>pi#;%L(r&#i)`HEc5vv*9OAC9M%%XCDQ4>&l;-N9$t7Cw zWn>uk=2Hg3o?!#sI2x7P<)-lH>I!iKo)2_mw9x~LVmnp=B?FKS41LSjOfG%8(tgk3 zte`(=2WgS@-K}?TjaojCpkrVN9ZVCL^5W~#{^@&p5E2qH?!{N;^Wp%|$N_){@&H7` zu5O_(ARxt*+f2nW8s*#9+`bnN$-*8C#>Sjof8NpqUpI<3!-QiNe>p&;nnbY2? z>jcUKhfF_tSP6OYVPI+7@7B^uP9pu;^u}Nsxws$LUqA|ku@(`jNH5U$#R?1*`~$e1 zT`cO6>tDWzlJn%?(#yI(dMP9nc?Fj9IE-guV`i>c0x}@nUStD9tfHhONG;6&zP$A* zH9AVqf2MxjCY{3@Z9+B7KHtH2j`-d$-55kbDy5!Rbe8kW+1^b&Ffc)OXA&Kg%R0sh z7w}Fb0LZBlMMEgydEfArQ{BzSe>uh{8eE?a=K?|-a6J0kKx%Cw68Uj{Uderj2&hl= z+wwp^u_MU+WDk?dlOPmMuXJ(q%z|o5w%oj&EF3a>l#2Klwcs8LA)9NaGssh@sEGamNG}{{mTlZs?R$a5%>X=4^Y#w?Ck7Jx!9+KxA-$t3x@#35t#4q z56Tx-F$WO`qH10VhU9EFVLA_p+XVe){fkHa5;l36|eny%TW2nhx5~hXn<+ zBc27{L$O3oBcGW>r+PLb(p_fGNlj2mH=>ycKQ^wvPMmIsm4P9@CG8~ztM4nmGN+!@ z+ZXyCt+X#h9^72<44tt@%$5`yv;W6VI&@2-!x=JUzE5P z{5#)poG#k%B3hP?w@O_m)aff;c8x7@lyTramk%(EDzMcU5zanWEn;>O4wA^sm5+S%T|gj*`(7i>!0 zWVN*Q=@;N)Ik^>D@xKwH#?RbL#+itDFGzmWa3<03y7eh?E{Cz0@l!7u0SO-^!;9m9 zPb*w;2!W6WfrtQciFi0af4$mns`A7T2S{s4KQkk<UUc45`bn_;4t@R ztQl|+Yh{-uz`VUJ;~>=^REA#BEx*RbwgD;|yBwKPba&^Yfx&`Fm#qg_bvt(CvZM7*Y&f_a?0QF(C?@n3j|-mN*&jtEl=fRw zx5|D-<;4q?kF~SAzI=ev6ah)l?j6eL^Lw~cu^d9C^w2&;e15zLIJV_$ta(!I@2rm2 zAdy$cJqTtTpj6_Q`UQ%=_!6Ss_jmB=dM8$3wS1nbmg95z7>IJN0%MoxtQ#(@_P==l zSkWfOv%n6$9wE>)Ztsv6e8^{$88t$dHT&iUOu9Z2=a`r7xSjB|4(iCkUkxJ3cWO>K zlntit7rECDV%;nMC|=LnQzb88Y$igc%}RG%&iOf)=g(F&&uSe$4wATapN86Po<#RN zZaTR?ozE1`x`wfGmF)HMW**Evbz)*_>R1JDog$L$MD8T(GzVYZ?=N?S_^hn0$Z72% znkchAHy7AUR5J0>Pe!M0SpL+3rN3yQ^q?Mg;;>k6Ua%&@FyD(x^*VTSu=Lmd-Zv2a z_Z)6`OLx*7>D$ergwpK`C9HO%`4Q`UJOhAflKut^)Htq;i~AG-`AoQ>)4tlVpN14zQ|Cc$L-Y`V`htOsShw|C$S-qma3lF!JHvRb|;?iMdY}?3g#iJPBLIXhHg87&TR2pAY_sqB@~46Db(& z2D4C<2GOs$tMTdccya9asOE>lxKIB1Q z>Yd5DlRs{4`R>r`s#ov-RnF#g4%Vm0NXNVahM)9L#gT}hw;F9`k?4JGHZ8Rjs^^;S zOOqdykunN7zvyahW~0eYT2p2PKnosfI{>Ns`GJPF7us!W-L9N{uGhPnW@_0&@x`a5 zWMv;ML7N0w|7LA%1)V5HJr0k+dC5O+i2jUDI@sA#7e_AEQoAuLE-rX*wF`aHNKx;|N`!HbT#iZN*+?+c zBKdGmGS~IRQKu*=_D`mbQ2{XbA6gF6x%&UeO_vfXpm0p*{KGX;a^y@dJK~zvsB!yS zfFs++rb_KQ!|O^PPh7TYQif{FS*1zq##0^L9(mW>(QdywE41NZuQS-($^CInQvi)b z^CZMjtgX=sJJQo@z2Q&}K56*qumx$iBgVef`s9~)qZFd98d8XzI}~1>hRc}y#0+up zNw)sP-%;?PCbjNCNx`H4Ia)GbfA6&UM%N+68cpTMLvX>Se`&jRWV`mCNfgLMQO%Wz zLbwgEtG*N#{yBCE2=Y~dt@LMN?#vk>A^gBe3Q{2<88m1^N_dpLG++sp({A83Hn}HD zQ*x37bX^jx5{n(jt3r8sYd}Hx&PwwcDxo<2=PM*cf}HZ=+M$#bJ5qYdKzVstLW&*D z=WC5Hk%`kpEV>~}kslrM=C21OhwdEBR7Ku5@A(XF0Yc}iF)odA8`g17P`q;&lT&s{q7*n`3%PlBhaf#4QBBSFF{@wqxiptm^{<| zNEgpwqF=HF#c0E5O1T(yvd!Z!*v`~#<5Fx5!-pCeHib|0;aOt8*912F^Le+2d5vv+ zZ;nPz`UMSC^rctCR7blc&|1H6ytXPPSh9wkPe0eNx3af-1LtxV$;E8#+6*>9_kDzo zOPd||;6jGaZV9c2Ul)2$d}`IIrozXNd8Az`C4Yp`D{N}HD3C&hq@x6Unh&0wNgn=h zW(3cfbt0)3Nrt2scOso|t&nq#rYG@RfSgfgal*n80^I@o!bWQCUK_z=b$k}=IoC(B zYa*5|N3z|4>?2MwRDF4QT|D2zA&}1%+*uJj4S-h_8`o_fAMZl4JgI*u1e*A(NWsTP zoP{N(?c(Yfq@hv8hK>LR@`EbZFL3kdFM8(Q$R$%%0G!)QamKg3i;dX)65QH+yK< z%@4hP%uBhVf4?wd2q7v>apXPjKp(xM;3VQ{km+P8bDvP=m5 z*xf7b{H3G@_R32$`N+Rt!wSmowksb#Z5;YUO&Kh zLEB0Q0Fq&?LoauO$fH%-9Xry`Xa@znOCi-s;QykV-j>TkUANlH+Y5dPG(E8UH7y z`$`N?=T^<>_to0Q$qChRg=cd%;jk>8z@{$T$C)4HTzL)#SD)Li@p zO(Tu;N^v7fxGMB9Th;V~GGo3a zWg%;-YA6g%=d>H6>9%EXZMr}dM>Re!OG8rs`Xt@|94wQ}N|O~E0wh!zLzoQmY%N7f+gEw6l#b3gS!okQ#u5VUs;a{2 z>t$xfcf@7wm>U>CS4r=s=c^8?sX;0r7}2h78dm^z`XSs)#*~t1P5)T%Wt&vdRVWmb zUB4=1x$~>Zh2m-Vgt9syQ5p|?p9_m?qDyL4vZ_|E-en7H=Q0De3zYU`3QRa3>r#y6ye;#HXqWid>@ES*ENBX za6+J1`T3J43awNcnyR{Y)DoGR>KJ+;kioH!lM^ZWW7V&+?d>rm%rDy>OGpSH?+~8| z80d-sVkg4%Q;c{ilX@Yu2#Uc?=6-eE@SI@jb9uSlwQA2|YHO=+H$N?{F1AxBLC`-< zD`QyhIOaFar>5nxxdytAYKtQFtJ7zUI#~>YF(FBKRwmT@vQG#WdQN$30URhT#bCq_ z=&mxrjisfpobakXu;+r_+uYteE*Eh5 zdTfBx*}f(QLK)PDwX_-ds=p5mNUCHG(9`DzMLq3dSSKehEGAUV9LTMx$Qx?{&gKDg zzP!5nrM{kRVSy9u-LSO29+i}&*lq6Q)H67^j|{fOa-kd8&~SAdOmGDFldJ2%+B&hW zXcEMnQK0_UtKM2Y*4Pkp?k(1Z!i5FY?R0z|FfoNyz*o1vBfox#$mXW!l1PGRG}_rX zF`{$Ui!WR0|4ygmc{Hq1amuO_y^|@;PDAh*&gQ-Wb*Li%b`LsV+X9lT?WE)|6DKrq z82qDiJG-(n7O^z-{C-1QOT_XMF^aVTP{qP3t*?(Ir)J#1CZO5a@cDfvIhwDJ@apn% zNO3W?mlvUWh_7h+Q0@(EU*rj`7LJ!{;*t$ZX zqFQ^_j}^8A*}uo&V`w-x#g8wZ2%WToH0nuy&T0|uHz0V>;#2kk6$Q{I2vH_A=aGvm zF9FGhqF%C7sj-QcmZVBd!`S*kOj?5|7U#;=DEs}rNGKAy5^+>kG=kSQF%h1YrkQ^< zg+PSBV1$einq2i*7!14F_-k?Tb0#J+%wV8`gB1`!2?WOgViy21L`Bnqm5So8>zs{6 z@$q_V}XiUJ*+-?EHKkU~X}6*a72AM4A+rq#M<(5e9^0xwJx| zQGjX$s9TkKe|v}P0Z)y<{!ME?8oB!*D&w+DK^B2{dF@7eVKP4Jv~Vm zmu(^KE^QZ&H#rlwqucz%3F#^-m`^c#T3Nijn25U7Kku!qBp>YA|Jn+k=DC~SS>a34 zO(@!^p3}y`iLk5B{ky(S?6#v|9GM>#7gxoX_~|z|gFfCPr08v0b54J>=562e0Rt8m z7Lh{S;2mfq1y9Nu6e@_W59tenKw5Gl-oAVX%mkr|icfm_Qvf(SyYM7FxhUY11j!NC z>##j4MTPJ+0R9Gm>AWtfXL8|^+-P|fC$Q#X;ZGy)Jbt;A3-Q8;U@Nk{t_QApD5sFioK+mK*^R3&;6L14c zL0f0e1Tr?Cwv5)K0VjHR;}1Z8qU-v!xx5ToRQ@-b2fEU5wYv*LStE* - - - - - - diff --git a/html/classcore_1_1TLSServer__inherit__graph.md5 b/html/classcore_1_1TLSServer__inherit__graph.md5 deleted file mode 100644 index bc9c99e..0000000 --- a/html/classcore_1_1TLSServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -806406ab05637ac4d8f203101668f5ea \ No newline at end of file diff --git a/html/classcore_1_1TLSServer__inherit__graph.png b/html/classcore_1_1TLSServer__inherit__graph.png deleted file mode 100644 index a3ab48efb330ca0f3b60be7b378ff45ed235ed2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9549 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
p&=n%508z5Q>CkjNSXz^ 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 f{VT#fqqu+n - - - - - - -My Project: Member List - - - - - - - - - -
-
-
-
core::TLSSession Member List
-
-
- -

This is the complete list of members for core::TLSSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::TLSSessionprotectedvirtual
onRegistered()core::TLSSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &out)core::TLSSessionvirtual
protocol(coreutils::ZString &data) overridecore::TLSSessionvirtual
receiveData(coreutils::ZString &buffer) overridecore::TLSSessionprotectedvirtual
reset (defined in core::Socket)core::Socket
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
terminate()core::TCPSession
TLSSession(EPoll &ePoll, TCPServer &server) (defined in core::TLSSession)core::TLSSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TLSSession() (defined in core::TLSSession)core::TLSSession
- - - - diff --git a/html/classcore_1_1TLSSession.html b/html/classcore_1_1TLSSession.html deleted file mode 100644 index c46993c..0000000 --- a/html/classcore_1_1TLSSession.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - -My Project: core::TLSSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::TLSSession Class Reference
-
-
- -

#include <TLSSession.h>

-
-Inheritance diagram for core::TLSSession:
-
-
Inheritance graph
- - - - - - -
[legend]
-
-Collaboration diagram for core::TLSSession:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TLSSession (EPoll &ePoll, TCPServer &server)
 
virtual void output (std::stringstream &out)
 
virtual void protocol (coreutils::ZString &data) override
 
- Public Member Functions inherited from core::TCPSession
TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

void receiveData (coreutils::ZString &buffer) override
 
void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
- Protected Member Functions inherited from core::TCPSession
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Detailed Description

-

TLSSession

-

Provides a network TLS socket.

-

For accessing TLS network functions use this object. The connection oriented nature of TLS provides a single client persistent connection with data error correction and a durable synchronous data connection.

-

Member Function Documentation

- -

◆ onRegister()

- -
-
- - - - - -
- - - - - - - -
void core::TLSSession::onRegister ()
-
-protectedvirtual
-
- -

Called before the socket has registered with the epoll processing.

-

The onRegister method is called before the socket is registered with ePoll so objects extending the Socket definition can initialize the socket before receiving events. Evoked when the descriptor is set using setDescriptor for the socket.

- -

Reimplemented from core::Socket.

- -
-
- -

◆ output()

- -
-
- - - - - -
- - - - - - - - -
void core::TLSSession::output (std::stringstream & out)
-
-virtual
-
-

The output method is called by a socket session (Session) and will output the detail information for the client socket. When extending TLSSocket or Session you can override the method to add attributes to the list.

- -

Reimplemented from core::TCPSession.

- -
-
- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::TLSSession::protocol (coreutils::ZString & data)
-
-overridevirtual
-
-

Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the 'commands' added to the server object using the processRequest method on the session input.

-

When data is received within the session two modes are available to pass the data through the protocol method: LINE or BLOCK.

- -

Reimplemented from core::TCPSession.

- -
-
- -

◆ receiveData()

- -
-
- - - - - -
- - - - - - - - -
void core::TLSSession::receiveData (coreutils::ZString & buffer)
-
-overrideprotectedvirtual
-
-

receiveData will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL.

- -

Reimplemented from core::Socket.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TLSSession__coll__graph.map b/html/classcore_1_1TLSSession__coll__graph.map deleted file mode 100644 index 5dda010..0000000 --- a/html/classcore_1_1TLSSession__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1TLSSession__coll__graph.md5 b/html/classcore_1_1TLSSession__coll__graph.md5 deleted file mode 100644 index a3bdf25..0000000 --- a/html/classcore_1_1TLSSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -33ffca78cfc0d61f74c28ece7bc4061e \ No newline at end of file diff --git a/html/classcore_1_1TLSSession__coll__graph.png b/html/classcore_1_1TLSSession__coll__graph.png deleted file mode 100644 index 8befdc32013bad4e59672b62401c10c76b7db37b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57220 zcmZ^~1z1#V_bxt&prU|C_bc7q5-K9X2+|!ALwAidf`S5qba!{x42^(v4c!exNeoDz zJ-pv{&i{Y?&e?haGqdN(^{jQTb>I8DlAwXPyYL&mGuo7=6_!} z;1G2E_is@0>o2^(i`JgCxpda~YnRRkjQgec(H{@LeEL6b`}b>kPya{Der6?X>m~{! zWikG{1~~7xie^*m^(C$cCvW$7P6uySiZE8wCKQ?oi7d`W1f8KG8z3GexmB-RK= z#XuE#$9j^2-tn$b?st!6NDjE>rRue?xA~~3+6#D_duLUiUFC>Yr|iX zrH~hoV`^+Fja$;n42$sf^5wy#SA`4QWomBIG~NON^1_@PaYkfLqTra?zeX}#R2jCe7J43j*n$5}B$i!R7w&CBOln$qog&EeiZ>QBj*nfOP4CiI zJr`BAKhddgOk`2lYg5Z&whLwJTg+*n=^_nT(dp{Zxim@E=}L@-^PeGTo}yb#e?=Dx z7{bdch#f)3@aPi=5m`-(v#FhC?(s0=S&(39w6K8LZn)Jk;+gFrdtAr5+QmsrPsh60 z$9TTHQB{7m7e7MzrDyq{)O@pX>`H` zq~x54<+|~*^{MS2{hXiFY!(V~(rhV_zv1`Uv@^DKWBm z2fI6Uh5l|g1>XF-%+19qu8YaSt|O4iVYJ6$lO8pr8>*de2tBT{7OS(WUt>|;X30fK zMz0?|M@m1vJ1-(~4}r4|+?YUoQ-^V+?GO~X>Q6j=CV4%B()PaU2c6f$1<-B2jB4Y7 z_)!w&s9Ri~$rQ4=_BxOkaya&`^Q^HHC2)!qN7cdR$b1keXvtz$&A~bi%5lQn`+xku zj;io6vie%<6T^*fA7bM};{GXVecL`pvs~Svji&N}wrPc988-;j&9jKy$MMU}g!LCR z4y^Ys>Ty*C$?cUskw8}FOpni$f2^~SG)v%Ma=*|vt&BH4u1M|*zH=4%v#E1dIo#YT z>IGnRMn(0w7wd%!zJ~UF$M;-soWI)@KLz=9eI6uRx-U|sH*;=X;C8K@+c*H}omDGc z>6h>M2@Hx+pD24RXk|{H2|aZXv%YHrc-?)RjoaaOM_=*Mgn_KS+m7b>#p3KVj{J#= zQl|c^?|@gRX8&hU)vRb+Km!-#r#rwLilO+@(JW`fpxMA@MCfbvsm429ZmhaPm3Nf( z=Q6yrz&wE~GPGU@ev-(-rW!U$iqW7_|WL?wFOMb zJ29`=FnHYRW4W=%WuJ{;1DpZ$lK(AP028{kiNRjw_J+^F;(e3z>vv!A8|$a}IG(y| z#YxekVDL(#hMKC-O*5#MyLSVxf=DWJ_d;p96vG{E+-$oXn?P6+bb8nYTGaUcgh0%>*shSNl`^on|qPdRw`xi ztZ_4kZ}7f*AOWr?s)2z;HkvifFy|tl)Wm|yD=V~3qp!s0Wgm+?LVt{w4~Z4d6KC-0 zl5xdv1dM3rw9uF9SVv0U|^ zxAK-NzfcT~3KGWE`_El|T_HT!xNiZU)=W{SJ}56ussL8eYXL#y?mz}e$-XlorjWyl ztvIU=4#ofp@OjF@K*{R-L*v#r;xU`eFm)>_fY!g5gHN+%@2Zu zf!RInC;tz&NoKGFhn$Q(CTAOh=J)+r7F(Tg(6)Kfh6fs$^J@R^@-jH7Q(hcr>FZo0 z6{oK_kdCs^I)=|U66W;DL9GgR{vPPiPt^#paG!+KoD#$JqSav@RD;ySJR=5ZE`SF+ zFX6d5(F;@jkBa{`IxN0cI!j+Qo;~cgu+N1BTB12_pbH!8Qr;dNWgbutI4ZI9dl-%dS042+PG`hFiBxX_oM8M-IEg$*Z8n0Zoh zDwF<=qAu32*?IkEcb~rus9>(sS;(N7Ys3L5kZ~W1ZM z`X}&YJVh5Z{ab-;N@IE73OMEujh-kb*cy^rj7ZEzJJ_Xj`Q*fiUt9jVi_RdCZ*pQ# zCx1OW>09zz>>Uq=dU=MJk#XmT;>RUnGwM9HRug!l1tHmX?CxEd* z6fNhC(f`><+&4;*`f)8|8v1rPlLrSI`8LoR^j;_5cj>z83xMKE>IJGoh9U4i5a`PF z|GZ5A_%;FRFT8)j$?AcXKCF&V^8b7TB%lSXw$UJ49LZvx!lGn+Vd1kpc;8)A1X&0b z_USo^CU}ED6p!1l=o>pT@G7xdp2ZeIquqN-LAaacJY>Us*-n8Yk(7h zUP?UeTB>g-#N}+@mVpaLTMk>75KoNEqHP6z39y^bQDh+b;z;!BUa^Kep3}zzEs?zs zG#VcI=HV=g>wWpL(5;wlgzc?ZJ#-F7oE|*|tWQJZ#hC%- zOH2V^DN$zi*|aqCrF&9DR>SNifQO&_-~D-7N)c^$Gmowj?q?jQfz@6n=b_h*%0^OI z6j=g9JRp+5{us*r*U)g^TrJ*nS-;!^g6c`n4@&h~_zb!+yjSK=!a{&p%a=5#|F0>5 z@Rp06SogZ=7!97T?W=%553=~NyMyiw&7w7#QXmJOR{A&n*L)0s*jtVH34eiJV#@rR zdWiUx5-BL0j&<@wx4#7Gijdz09SV$p&t>Z&KeJW)(KByX-FW1<)WKZw=HTfV?SowiGCz($yQz^&zX5IZh8@?WX_d*q_Abi!0-#XdMWs+dt8@Fl96@5oT?;p;4RCOq z8-!&7pW}KJ#1tEdO8_(U8yhgK>Kj9{+Dp++OJGJ1Uy>+zo5j=ZNE8ICr@WQQI`pPn zUnefDI`B}0R_o>BOAh>0?ygOtG~4;HZtJ>ejlYwr@%aenozhXh=E+pLcScB%$J}}K zThzn2>wH?`u;zn{xt(<_sSgLYWkpO^*440}>2>01&9g=x4LNr6?N!^$QL?0qIaIZs zB>#K2p{K5J*LV-2vPl@nq?`y8G+d3v=)N7SZM#mpSMZfy$np~Ub)V}IC=s^^{`e)P z(YwBzgk1lUb&4xD%ISblfD;}b*7Mw}0m6U<&&E*N!TvKva_}Ww(E4pmuDC;m2eB5> zL`F;CkEC=;IM$?dq$fJ}+q*3{|E}7n73Boo=v4#e_kurWFClw^R~D?(j}wj)w|@U@ zPoi2U|k3o4v+*Lmru7&t@XPdc(-G^$_ltv>0(Fbz> zbVQbxm7jlX9s;t9Nk}LNm%P}jpXArGdb7IfSuhY2j!coc9WP94K~x`)o&0SbNsP09 z$5d2I5>$v6?=`I+U)CNFxa`CxAt+rVyVE~>`b3(OPWQK7cP(cGZ*cKkE@y%(s+@{_ zG~arWDdByj5tVm8kMpN5?QCPwiA^oo<}*S$1z+iO5u2;l)PPYb_1W+iY}Q*aeh3|- zJ=nBDvA>uDVx@q4wbV->fvCQ?b<02arPZ0dcd+jScnRvRaN4rx(t$v>&}zFekd&7p z9W>#2e#N;ya|CIw^@+$km2P*L`2AZ|YraRhW{r3LO5b{3bj8>;q^g%EDZ5uCMgv^Q zPyoJUlMuHq6+*!kD;Qh0P~B!$0a?cwx(*ieJNT9tt#tw$PogFUJXv_z3p zwK>qB+DcGK zY#n6n>K#{*=&|^OvBfP!Ok{E^=F)IvB9+ipy$I&%6z0AU0tH$6D&*hOomnTfb%wHn zhSx^OG1qNbH1jez5zC1@&^UC6zk&eguI99fYM^D~gSWU%z{Eh0y8CCGPT-+C3DO%T>a4w}WxLPsz4>?i0Lyn_rtEp=IttRgIOx zpB=6dzLQ(-_X*cyyg=8yrKE*9erKUpR4!}Nt5mKcM6gyf+g~>|FKE(bGN$KrwcsZI zGM4pCz(JF&a++SL1AdiwR36* z8;J{jdH1B=vj<{KJ!AH__1b1da*~`jb8GiO7Ak;OQ2ut{o`Tr?*m6QiC9r^|12)&u`~U( zZQqmdcZQ)0nZ3r{kIHV-D1{0E7%#M#__TYhWy3J3Ook~+Zd06u8~-5d!%oBTq>A<) zllC5o_MRC4nFT*b%3`_)YR_1YBA-DufvoI%>|7e%ff7C{g^0Z>=krw)hTq$ND|UG@ z(`i+x@CT`5a}dfH^Drg&LYx&sI?6@2g+(x*)nwp%VtL~mLL|J=xhi#MR-vye+j@E6 zm0(-nq1~!h=)A{HB-#9FO%Qf-g`8n%=x8(eH0)L)x5`7j0EJP9tfIEJR0zhL- zUDcD-#gnEflV32uM0IDzD?YkdOggYUE+HHrq?23M5nJ_EciUn)px!S%IO*Y7%%m~N zLYUY@0}z`9BKNu0D>g4OMI9(o$ZkjT;!(8sBQ0ackN=+TkfJ72^Hc0C4&x?T_CplW zQ&rxN%xcf+HO`|V<`V6-zDI*!2IKx&@<}L5=&$I{9uA4oi3%N0l)C# zQw1U)134Bu3YmY5;F^p1hyMAW?dVBj5Ve6?5k;8#KSa2`tkbRndA z5I1pjUK6uRswBySnPqrC%X%ZWhefYs(w;WGmeXr(n>yExG;DHifY|eF1CeX)*#qxj zC~>2@sbaT|@tKauwmxV!n5Xkz+a}FXB%LdblUktsrB*ilMPmf!?Wk^hU5cwO@3>Bgi}3B953?njH@4U z1Kwo9(i4!MBx%k|Xi=M>(!AO9SRJ#N7h4IHhK1mu7Cv$(yk|-npgH=!l?`V0E)Dgj zx1o0S?bb3>QSa?ebTDAYnr;9|`ti)@ zJ%5E+mm=g=qtKa|`S&khSD->6sTpiQ>-L?={x-=#CnBd2VUI#+7u9^U{0fj3mePS1 zxo?qCwqMz%L}WYUb9azChGP>mA>-;guq92Dk9$sK-|1GCwKHl0H*RZtuFd0kk}78R zLVe7$WTL((4bj_c5@!;&Ur=RIYdIJlSM8u4e8i@>w*Qlj^V%T+)_fA;grkC*eiyeu z<`%N>-npm34b~+QlLI!pEoi(dx!5>Ajz)FX_40-}a)r4ROE-o8ztHlvhQ!eM(btxu z#THFgI13ourFF6&&s<%9<+nFAH1Rv>O2EF$IOcawzdL_*ardIDbf5Hr5-vjFaUX;% zP;XErhto$Z;<2m+LYI8TcVlN}k#_=GJodQb?N-QCca4pCMrEvm#_riMYNy$nzjP1v zsTr}^NSo%}*6(WQGP+bZlYcE}RQX_nfv?o6$033wzJzHypcv=dnVOa?ZRg3U=E~Ps zR#3UtD0Fqw%|i9;q*^(ZfoW_s3Io=3ZsxSQk& zc}M1<>y(QsrAJp;LmikP3o`%6UD(RJTVytXh6`9qR>-VDAiPeV$tv)QQ`gx%D!1-^CZoLOv$}<;-Bej%4J&>uMC`u)AG)4C)EjW1a;;+ zc8`L0i#!d;in3#>P7Z6md;I=4ke}xe6&@J5y`GZ8f8PSWHui=be;>obzm?V`@yb58 zE@ae3oVLZVT{;KDbY1@roti3~n|-#!zcGjkLaEuj{JG+3Q1ab*qNsX77NVXvGGyVE z_Rih?>&`Abb&Q%bZad%uzvkN}URDlwm4{RBGQKqKl_%ayr=0-GU*nlRBTwmNq6 zJSPdlXtIV|Ua(i>N=#9TC>N_-Bsx!-Z1#CKn z13Rk;aVcXkw@mc$@Qr*MN|xW)DkZpjbz#$%Ss&|ox!9_+g5aCTo=a)qt7*}#GE=kc z#Uw4#{48TcePKOS{|Hv0>yWaU+0};L5;xYR_?XFq{(0khCO?GeREtuP=c7oEMT_c4=*=H*>D+`^=cmO4GrWTf@#t!i?(f5>~rLw9ATCP2m zB@oCy4@ktW(MiaND=)*IRz3zegKI&n=rR&WKIC4nGWmSR4Ig6T_I=UiLW zL>-o+bdr#3QXx))k>Een*>z6(d{0bnUIHnA@%U@gp57%K%Fy)mkA@tNc5#u%XQSX_0c)}#_Yg`YxOT^z3v_PoOH2tBhsdxPXqcu`=*X*UF z;6IhEaku&|v>DR}1z}^b?J?b^XKw!v#-e=eqmI ze!EANI+2JR@0jK!LCqxjLiJjcuenk}s+4$%^6eR}Wm4JOQk(gibeb)VV#;N?3_Gy4 z3MUTt_mc`9hU~Q)1?|g`MnZBiIcz1RmwJfBkuzJN2dn~9*$CGib+72`)i;Cg`n%VL zD#2N=Z=1>n2ws3gd--DE;-+V)n6iP4xp8~z(Y{-C@4Q)wiHnIaP3w2F#2!8?HrLu( zIhFkfsQ#>~=;pJ(;n!XmVc|gieUOYG!zcXL_KK#CC4dMh4j1`dJ0?>E|CZDuU7>0z zJDbJxS&aC(7US$Ms?V#$*RPsoiLv^DjR6WeK|HySteq{t4W>kn?EOBQV@2&&)U<67l?Y_UM4 zRf0A9<8vw76oTN=g%q*p${` zZ{?P6Ixr{=BTXxz7Z^#Nx|kS**$*bcEH0%GFXjxDd%`U|kBG%OI+&6ae9zDCAwmkw zZv6k0O5z-Ngc@x<>2Z+T28UF8$p?~zO=W9umW{)GFZI*rs+D&(_r)Xxfi+H_<|B9g zk%!Jqu{%upEcfRcDELgj!NHaW|KEi7GsCh)FKM{OtnQP6_ul%X2w{{c#_`6$*l>pQ z4iyPre#mkp+I_J!smPEMvniITS-h~Xp&;@?xb_|wK>&Ig|Kp50C?D+JEN#%%sBy2A zpnr3m0O+>W(aCc2s>fqqKr0KoHcoRx)5B>rs8a8y;v%{IA8Zlw_hvo9qfCqMk}^HV zxj$ZC&r@9=`jm=abK=-+=KzS+|JfdzK?Zo?Y0PsAToAx<4YYVP!4{rnlnMvI;Zz_C zhfm!Pfv%QB{-x*}F7X({FZ5q1L?9j4t1kW~U>rF@En8U~x;P1f_g2fUIEmTbacVB) z^4VUB8ID7^dKl0lv4l&~!yFeR@W7x=14TwzLOhgPR5_KAx|)fmTLf6{^a?NaIraoC z1*-;Wd#NTqoDJQ`ox$NxmjucmXcN!(8ICkvo!yT91b6{9U+b^0XFVqyeA;SpfB^b? z?3U>LGb|A9yG!fWkW(JZX{j+teYOFV@HePc@~&-wc;t>+Bi&c32<<#o0b-(~5+Xjx5W_=O|dvOKcEBdpr}ptz`tj&aErnv6B`b zxjd_C-0WG#N^v1GO&RZ#Bb#7pne-6c(lQ_OdCNnYAtW9>+vP zl=b)DbN7TgLft`rQNP%y0E+h}cyGsW(<$dg(aAs)Yp_U%?6STWv14wyS9?SHqjX0L zK^`qfZ%or;69!Tc;M3Q9k`hYV_lRLuZk`GKOn01SSVm?hOh~V%U;OW4XsFlv21(yK zAA_8Mfly}`HoK6}yAs`?o#P>ZC;TAQaQ+ZXJ<~U5kMj)AzjGk3`D~d_@KU`wAte{Qh-jFvytqG7F4k|+bt$f zwZZF%!T>q&5fjHy509wm&5lII#^xaq`fRKP`TA~#Q_pB=GkvaSsEA+;OtnAD%JL|~ z?*nDW1U2)g^m2Wv?two#OqCVt&O1PtE+HbOr3F6UY)yZ2epj2_7fno6<| zNLGxitO`Ld)ulSWIe4Iv^MxBxVPWrcxuZYjEPQ-Qyu7c1zdus3u_-q;_9v#+KX!I; z`6(_=c1r;oF5lBrEj)q9%p8Kh9|^_D@v&An)n$5KuomW}(G8u%Ob1Y2fs%cS4CkK@ zfr`WyTZb<}iCBTGfSXk4`<%l0U}#olY*|HFnX`b&=6f)XxJ6hj=BDlUFucfdE4Skj zVAMxyM55Ks>IDE>r#w+;44hA^Df1Kn#W_PQL5Ufzv>V7gQoixCHZ9kBp?*LSai>WE zRyi&?*%)HBL5rA=1kC>A#0vr;M!3~Z*=WefK49hI(yFL<;M@7@KD+qb;(+WuppLlL zQxf~(F+Ma7Bc1$m^;+**oKy9hCQKF1E{#Uu$?|ucH$|*>3g_j9wP<+}MGisNIC*(Ct2o?;e@bz+E>PB4 z%N?Hlp+MBmlhZb+ak`nxl9HNXEQ-_SZMq_!9Wr#hzPCpGS{BzYD(fX?$B&~GwM6tgRAT58Nhcx8-exo-tC=n>ilH~OxEoMsRytD zbrPcL@`f74=xwejd=thN*Dm&Hr+=1?crh&`7o>PkTIXU&!1faMGOl^#tr2z8ygmUa z*`}X-j7+3gzj9_EvIosf{-drA?BixcM{II3-TE5QB$ubf)H9m>vOj+k({t2|9Nazm zjd(zyAK!s`SaA#^&}H@)jL*S)9aJ_TMZ6Bk))~|Zu?-`s^ccawPw#miYWbu&C7!Kl zzW64*8;<6L`IYqd)HF0cqmO=SYFTx)IK&j;l?Lp7W8>%yMEbQCF(qYjef>xDt_!){ zYU=5I6PF+-AV&LKkbviL!|Tyj$c3}D| zf##WDH*?x1BfQW9Y0}!P@0oU#svj%H5HYAj~pADlB45ut7*RX=4mO} zfByIdY&Zb^LBwEuoeQhBdMA9kK?jAz`wBf(9+hd6Z{$%jXzPCjsFxCH16i$GHCk$= zcgzk(YiOZAKRjM2z6Zk7P*Zc$8m>IJ1Uz$to}ljveoEbX>p@mlfN2dM4L{Jfpq`?% zHaoc5R=K&>SCc{ZD|kfW8e#M^a~jgyQ*gGuY+~GO#9Xm4?v17e=zr^#HVl zec29ds4=jiv_vqQ>By|3BR09n0W)<|(^jKbU@tF)x{$QAdGrATDe+%OUsTfBUKYLt z;;ZY%?}tF_N{`5AbL>Uh#!eeM0aaOt%!eiv4AK|ICnV}IVy>OVwR{QZ(wHCxW!D;2 zz%$V}vQ+HNLW}C_8{MX1FkNGl0LX?tTH)cB`}?P4gL{;}?zHQm)C!~I1;`?KgWvo; zX0^3+LZvVF_)>x`I+jEfS+i6CVNf)MOYX8G_K$-Mv(KCT@dN?5fWH5WHGQxnkO zKzGC$+TU_ZXQKxIGxTl#DAX+JI=I;pO$s*yIda`>XTo@5Qu?U%;Rl3IGOx zR_|{RhftIbE{?`!(QD%9wRJ!=RX?5k;keqxDKV0{tKeEN1HIZ|q#e;fSm1DVtur-U z>sv28SJeTm2k_99TJ=?g0QQswuwjk6QL~UwC0gu;#sa6BU)d}_mID&E4_E@4)(dk5 zf@S7ASLV8GMlaLR?Dpy_!0GsnZI6age+9;0vNvnJVLdHu57wEni;2~cj}#Z@2>yYq z@%nZC%BpnC&!?4Vmq08H>K%(3kpe7JkxjZ+M?Le$?Q{ts>+7`=E&}MlnwCWP%I6KM z^RaETE)TnDLI)^|pg{?O6c93}yXTj>S#^iCcZlhZjviG*z+t_8MGSJOsTwkG?z3=l zy|JBnlW#lw5C(Wr5QQH=#G_?#OF{+!oJ13e_1~BI&~Rm@#x6YYDlf~XnFI}lQ0Tc> zh$(hC7&|()0cvME$!8!xcz=@c2k9U@S17r~y^XmU-ayw&rfm`OE2_n4K1;frMydTDyCk_m|#Lu_A=Soylf za|pc#lr_UVPrK^TiaEpi2KAJny5WR6nR)=01F9x=>X~NmIwAW(Ne-8uevY4G+mSAR z9E`6oYDWGnH<2r%C7QCtPj?Eo3~qGJRbnRw2G!4amE|eOI0(9NrT>U`i7k1ETWazOh={hMB57mB_VaBV{$UC4xv4AN3y(Ps8PuP#);L{W7xLj>qHOw= z9;0{<(wCoyI%cIA_Nyte!)NdS69IgX+Vr%Hyuy450Jt7p!@V!x7ym>{~zkDih9#bVzMqN_J`bLds2WROZ_AH>Ya99M%K+U6-Wuk^KTf5 z^+0u3=kR?X_K*#GnnSor84&dej6#!4i&<2hHsT7<<;6PDVF?x^|c)IXCQyzgKzF9hY8|ptc(%7A zDZ~y$foBjg*Xls7BgzSWgn5s6`iF1;NHIJ!ldnWSDPu_TGVKOcR_1!ScVM;DT3|J1 zmN`@BtA+VMalGDkS-#i#VmnXvWFJnC`qL3- z_4m&LaulnTA$( zn}@Mut)8r2tOuTqxO#+q6&s6{7*I@Z`I7?4E{-45Mk`+2$%(k_ zjM~_GWFidA$VeP{3atlXMZRo!EQMqv)HVnVfbf1Ze*mu}l7u|l*Um-TR3)=|2n}sv zhV)yOtMD=x&$)%m<3gX2*(w~D&H;&|JC}B zY{I&2)ClP{(rioSw0ot4uP-PM9!$a(@@<8JkH?wgk$x7TUW zQL4o>5;{oQTQV=LpuV{V69M<5m-bU1t&6C?U_dJ}0r!CJwNVx=+*XmW zXZC=Yd$$oC*`Gm3l{7q3eEg8i%zN7aHf>Eo?$S(^qDeusUt<@hvkzTet_n5n;ToET z2YKot2WsqcDlxHKf7QpNbP9xFU;9e;65Xd6J!VdSnq9+`n*5JZtNg-SfkkO*?MPOn ztIGZ+-*);0mPsAS;FX4XsJHyywY1==MpCJV=T{n!f|lLLwJTNCGPrgcLsK?wWgu&X zX+kQsZOOA@id8Ue=DEHrHIL8Q`OZ|FSAG63KYi2PvCsBtBKmIACr1py@(uEbW{umLg*{2w^re)vBGHK@Yg}VZXK# ztzks~3c5!MK#gxR`=4t7MIA#`_DjZa51F1wD(lVd>s#0HFQ}|>iGGfPvVC`>;*FE| zobb9IBLQ-eYZ)|9$r5FWc1Xn99FOennF+H*`5_l7gcp1?en-(Yd*^MGxxa4m@XX%} zU{^m~YR2JsaO+jPEq0o1c^GY}W3!*NIat~-yepqpR5yt~`U~0ti9{^dRv;Y)b#+cm zef4Sn5uF$sOLjHiX}g^(=4xYN{d-U12%+HNyW}C)?bFzGNNs-BO78+bS@0YTN63x9 zeY$D^3EBu_nXlhAC36HER^NAthWLW$IU?GNgIwkGc`ZPIm<&o8Bw34Or8is;TP z_D#z>rG>3Untl&eHeJ`8iQJBi3?useDgQv#a69oJa69pp+rah7qZC3Xx&wtK#73_y zYA_~TzVw-Gs&^1J9u?=1g0rAND?^kVU#RM0fpKjj0u}4fnL?Pp{vpSDxg-g(9Y}(d zWC9-a2nYuK7}ut!UoR9|qaD~10L_J?g-;o)xOy|SKZYT3DX*690rJ@8;w;bBm@3tV z)JO86bGPw~l5&T=l3$ zp`vUP<;;@O=w9FrOVBnKM;w~TDcZ)PVtwYS--5jiB`kcyZcVNKa1uDJn_9;iHm(Gm zwJ;xkvn?R&yJ+gxK3f$GI}qV)3SZ!KtQ2FVkeBW1Ss#W?(vF^dwzupjXDUhIy<;pQ z+A8?0FJFNvVjyf#_uuSf;NRl`?z@E#-em8R?dw5k5=QWO=@aEL9 zI$rLrk;i9tzp82iTaHV-y6{GShRCA^H@Pi7{yM}WRR`0I4J_77q|kF|)QJ>5sgf(? zP`9jMaQ^u^KtW!=&Y-i@2S)@q;T`ZSQe4yYTguxiUErYwR&VWy3n`j1k`yn+>p_fU zFQ$S^YUTaXdmskj;kQ;p4gEa?kc!MSis~i_n@p^h4; z6DaG?V{ZI;_*LDf3}F*TWOy9UZ<{oVcrBqzRlj=!zK#86A@dh+R8?1Mvc!m){aHE7 zaw=rz%D56QX*BD|yb1L=L+-X{VpadtSG-t@PluXmNV!*Gm6(<$qdYP#I@bOjfuNu$ zUoHEXd#mHb;ot8xXcz6jvz7f&EcJMlM~qLAD`}8?RJN$wRds4c+?^>kkGE=ZVv(?4 z%w?1e44*}{OH1v9JueZg`BfTkr@3_+G8DTv+4ML*O2A`q(@C61*~C*pIhG(NRhnkv z#OO3Y*!0JEOc`gy5M~@Q_gHpkoZE0*y<+s{>7Q1}i=7ceNsZRe#Ak2?dLK_Ud|ZmM zam)21`}q%(L!ab?za%kywfNI?W^tO|M|@+P5xT%_(J>0hg~#nv6wq=KVyL2D>@~kW zIeYLU6M!W!1RmW2p_ZJ;d;9w}<$JkuvUf*;++?PZ}v=$EltVXpOE&E zJTeO}H0^mm;GB}@zK4HfVIk$2eqrbJ{-BgPkNJguRtB{J;uycVOmZx+5VGwgaT$IV zy)OoiG~H7=TV-}i4$z=!(#;%H3|<``7UR3&1A8jy=oiXGW(VQ>&L!tR>H`ZHEe_>A zMfrZpn4qoP`i0pn{Pkp_K0(TAu3uVs!XQc`j;egmLH}<%8>FTDfHZ^R5c2gcRmlYA z&Y#dRth1J^$NN&F{!Cw=d{POilXS1dxZ*WqJ0 zDDT*p#vE=XB8{`YJe{xU2)3PxE*VI2u6DH!>+LOMki)=O2oA?r2Fe40xH|J2Ezs~7wUCyHzg&!g3XS?K)z9*%x}teKepv3tM9=)tQ_f6@x5Au;iDmVvuS>GapRwR@`{cHzesPBL-V`=Qi(&C=r>;k0|IN8-gpdr4eX|7RIpU0==A>kle&MnQy{rv0K>!J$Wn2eO0G z*gT0Y$}!)*eM=S%Xj&fE7Zw3C@Bibg%Bnde@8HHl*Pc;p92ChpE!)3+Pqvmg`@2eSfGgYQoeJbV z^=ws5G{XMOp>u3x5Km^UQB_Opwa!ciGB%(m&UV(#q(UUo?DE|G86~B>o*vmetW$&0 zP^b3Eh&UI}1)bA=ITL@*D&v*oqTb2m@^0#ozKwxt00)Gutnh*K z^!2}m;n8t%g&H*J5Kztr)YtPQ3gfrU&JO%LMLHGysaoEWSuBobBg(}EqW2}j8-+W2 zFJ3unh&s#KX38vrxI7tfs`9X1WGI4IAfbF0B11yA@0~6z zjy+GPJN>rj&EPvl#pkT7qCx5~kw|WGa;zyEH$A;j0n2AE)zs)$R@%u#%BdY4jo!!z z(y_5U4OrIuThEMM3l-VWfri^j<3h8pirhadkUec5PqD{c*lOJF#zU(e7z*xUb_A^4 z(B*Fh-@+DddJt<3DXn?mDVq%K21mbJ_BXi^YBmptwvws$d=t3e9AS6j)l9xPUlWsl z|AUSp;mYpMH*4bQrthgQj#E2M7s<4a>E#gdg#k@9*oSZ6Vq?zrMx(+bltI2QH55y7OmFW>T+podzMe{lKsG@ zqq}FhARZqduLQ6g;1H5F0ehPFt6eu%>`dtG+5B=u_gIE}od}|)6s@f&XU7;PL7~k) zd)i#gOg$=PYMJ;WBoR`15_c~%i-SWOmULM0Jey0qcR%cGbQ-f9L+#Iwzi++WDciz( zfy$flh?6GoXH6bWvWxV&DlV&wX{F2Od$Kh+ReMVTBbc8CQOagl4Sr#tv96A;EZ!PQ zBy5eVZf)sYPjOlsuI`&xkzJwQ`fM+C?h87*yWV_Qb0K%X+AQ6C@)mQi`zztZUi2`)*)2w;7F7m%gT{>tsAg?~?@nIBX?=rVS(e0U&6H~N&7Tvb*~g6LJxzC6V* z-yd{>YTA~N&B3PZJle!=$nl1aknN0&W5p^`#Ly5wGb_MirkWrCTmPMn4GVDas%^-F z^ENHLbO;H6s~}I_iJi5V1InP!*Vm9U?Yw)*6B%xBnbiACRxYRwzRhCJ`4I0{6CXD5un=c~i8@fGm{2!nfm{ z*!vqll(x`?kQC}zTX<+~&rpZoXH3H72hY8Q6OSvoz^g@lhLVIg-QW-OZko_Jy}3Up zhwbwN;aiH6{3T=Cv;h~nacW_1KB)b4qGzU18J>-Tmv8?#EoceVm{#ffs-aehau@%m=mfTwKLglBB@w zBLdB)%8dr`ULjd;D<8f-?OstQ|E39{pX2l)+snlS?`h#`%se>xm1y1Go3Wtd_9DLj z>1bEcsXy=Au_jMKgR5;#Crsa!vd12WiY?b(H&@}sbGDm#f&<&UB|S#hJ-B}#Txed~ z@W7XYu|hfxO7g1Aaw60(_@QqT>yQ6nVH=hXNHj?r=YH`_I5fag?K;a^r6Fwl9>;&Q zf7wv#{V|{=cZ6SyGg^is(Qjk_N!ldN&|5KIne2TQKpv=$^B9b$R=-9S`>BUXq6q|_ z51Y2hbTsibHtE=!5sbAi+j|3Sd5I1n&hOhpd_V^^l_8n8Z~0udl+1&kqoxe%I2zgg zzp>Z_h3swJe#VX8Wxk2Gt$MBGZ_fF4^>tEe+^WwQv~lm6azrAPjv@2Qew+Q#06gYu z!&mg|SCV2=!YZFgq5E#oGr`<)rZ4Vio70H0hUb4pSP4B3Eo~M9rk)f2wfKF%oH**} zocd(XlhQ89oVWd8YLkSZz#4E?@AOsq-mZx|m)A_Sy$Q)`XG~gKOWB>(#Pdr_V^&BK zq7xE|Mo$BX9KfV3rupti^?V98e+q1!Wxbdy@{Nj0WL3vc?DWRpy@_?u3L`fzY{IER zWqsqi=|_sioxNnOdy%Pn8eW9lLt!iXX_-8UyC+*Z|BJ4-j;iX5+J#LJB}Al4TDrRw zlnw#u?ru0VC?Fvv9fy#Xjzf1N-Q6wSeSo{r-}{a`zHvVWu=$6x*P46IXVx>F3woZO%^y+uu{rr2^Bd3y!z>>^sfbylm-`S_%vb)LV=h?_{=} zv^?6kI=UF32l5>rq{bz)3k9`*ec(wdEV@Y8 z9XWGyLia~Tj!RT5{sXNc(zqZ7v+iPDLa-%YfM0m*JR!1j_n<|(LBgqxk<=mj^14U_ zex<=vy?y>T6kLKkw%sWhMChYTN?L+M_W1 zb!DTG&F=nDXFoh)G6enuVu8j}ZQq7EY`5%KF)fJT|6eHf0P=vAH_NHr@k)2b&a~B6 zuwnH;6-T3XzAeN{dU5FXyo9IV^+H@>ugx5K;w#3()K68=|qERmu+9s7oRUq_TDOdN;-dGJ z?Y*#nkOL@G-x*vq#*K2dJm1rkmoJ?vZ4b8*m+sRAICyk)_Hc1`SEMH<6;wmfF)-8| zgT9;j4*kN;zW0-2ny{$pi;We6+bbq~pXM)pb|&&}kyGzl26cG&aUOmtZ;@$^k++LH zkE|^5ty_Inm^e+a@Jy4*v2ccuG3BoQhYWD^Cvn5buxu6<($n}pz0N;rwwUPL`T&h$ zFcnyvP?I`Ed3ax&E&@}{&D9{#hE3JEVAneFQnsF)p1$GX37Aw7U0%~^mozZ=8SytH zBt3nntHw>MB}R1|rq}u5go6oZ=_orb5cj3Z$}WS8J7NR6)e{QWSBZZDjf*LvR=*%c zGXrSn)~&3Q-vma~mod{8GQ~Wit~?%^3wG%a`rB4j(c03G8h_}DoBpJxvlNs!Zr@ce zZNg4EIkhDAI6P9p`7^LPX(&WaLjwWWov~s|`;c01xC3BSwCQ{r{`fcAZJ0SrPj^&R z{ra?au75D&!=r@S2^014=e#|Xnc>j7l$H~_Vjtt;_@7Ti^(eW9f`0e7o4cT8FzgQG z7z}yjM6Ij;VXc4q9x3@Au0u-&v%QN%EJ>H;wF{j&rl*zy#9Ffqq%2i##$_TJdsh;Q z)M+IdM2l4{GBUZ>?Zu_%`qukuCrc^(M@Q$Pq7@$vR+R`cGpDw7_z_-gUCb|N-vtES zKTp89B5e7{ z>CekcV4K!Tt2tiS_lBaKxw5A@L(=4zwW4ECdcDe9B&3kT!G5ui9X^8DP%*-*mNiYZ~uu>_6PG_ z=XC-Xw@{8{Cv?Pcr6Xx)K^v8zaTqW%D4kt4pCjFe7w9=DAin70&#zbA^Lr)ng2t4c zC9WUsBM&bhdbn%e+w{bHHL!Jl89Q5G`wpGkQk-V(SJtq%M1^Ogf5E~&$=l}07ahLx zB?A(s?wsNCw0_%~!ARFkY|juKxaOHy;wWH##d|jzdJf$s*p%{75n{girfDz6 zwjwe|{et|}eg}?XL!g@Crsz3H<$q7hWF&D~@dScsH7Z}(+Ym}oR)0CHmXc$p-f{O_^;U|< zL)%hZC%6M2h!Bs7LO<8MueSE$`mVG@iQvu#R}*xhRpM9UqWbGLp zuWMS&Ix}sS1_cK{df@Ip8yNJ0ii9K)tVB<*B_Iq%(c8*-lBHjsa-amdFsg?`<&%<`3 zGX&p#_=Z@6FZcti`$ZG0E{B1pn#s7JlcWqHZ<&g5JkiQ)rcakf`FhG>A+Z@Amk#J z{8JBMJvLku*J@&E#`CT|{jM#@}j(PC>5 zZ|xL+SbbprjW9B=1{UzU3;1K{OgFktZJjTYcNp(y8}X9nzHEI0vSDnvASCvxBgh+* zk&xgB3=A=^s|O0gVey-k+XWj)4qT{sA*;G2lQxcyBp~p+xUea#Eo22~8W@H~#s{C3 zun7FS%-3x;h)1YBZ0Y^rxnmOaxJk=WRujPx`vf_dz-ma_#*hYpj?61{F&HAfo~`j`N4 zbBWw}E?YU5p!}v=KFu5-3_q52Ee8i91ci)_5`cvRZUo)^Wv+$}_;)5el>3^7fIwni zp_wQ!LL{UmHghbEZAH$%`UZ+UOf@(M&+K$NBkJMDavTtR=WjKyhNmNcaA>h@{*g>q zK{NJu882&~^u6#xTml83VbasD#$>D{mUSvTx`?25)z&w$3hEdc$?_~&2{hkB>7X1q zDCBV7fU}jBq}Ou0(^a-qE1gt_6WY8FgcT(@e43jUyo_!7*kg$fFMKRJfG+6lPD|Zi zz}i8fg9$1P)+jYofqt?#mjLQRp#9&puyDMyANN<(0c<8A%Y1(XsPVpZzrw$yrdXxm zwZb>vke9RIFN$FP@`{=CwAV1~!_nG-f#Lr<8M`y`W5WVIr%^(q*v*CeK!+*)6g#`}qEQ1x6Peiho^(?9XsD=LsHUm{Y%!(`=U>tG1cOfSeG_Bw@?I7x?*E< zTzfxjP*{99J01DZx^r=P-sVo#zKk5&r|p$#3ziXic`{;q@&{e}y!oHz2aJ{iV+0{f zvD=NO9p{emdCk33Wllgw20q(cJqh2kyZ{q|jDUC2o=%DqpE=s0oE~v#x-8N-q2?{~ z5uKZSGmgVBK0ZEQrKAP7c~m_H8SN*M-%plqSF5$Wr*~Yu8FR!T)e?N`kPz*{Vq%HhquZ&H+21|+3#@$+^b;1 zTx2lg0SM%od>Fz0sk@Y6@6Hqqmszh(^+hg;$;Lubs`TDkdld9-E}ad8i+y={_?g$8 zKwKY*|C~Ah!RhL8ZJZQkVZ#+^mMpQN@!@|W;~J@EB6_uqC2r+Hd1j{JOzq#Bz@FEP z_K1_b)el7*Qzx)`t0STLh<* zI`KDnd81gBw5&+@`BTcu+yP;9s)Q_TcjowF$se<-`l${#(_!k6Ns|Q!z>H#*eE4A} z>ITBU$ez>=%Y<(gp4P0efy3kQR$N@XA60lO(4GX>bFeKCV{^W~7S{TbO0C9$I+9YF zXRp+c_pnR#_0$x0N=G4Bq*7IN^-Bzl?r3F7yOj{lcs`eBtVXjfdvnBx!;-N_6WWn+ zf_Fq<^X-~Wrv?X$K_(Ln--n0o&UO_@|xR zi3s8Q>+w{*7k+Tlft=>vj~uh(KfJ~&Mzb|A`TjkQS&cM^s~sge{<{U}a$`&3EiP;{C5G(>lko1G!Fx7W}~VnMIxPTMD3eJ;iDLRQc5XNRvm< zodx@PvE<~;kuGnOV~x*XrlX8O;N3qeB-v&J=xKA;rP0@K|c1au@>+|MBqGqQ+SCU4rxr@G0dwqL_Vk5 zyPZ-})gwEdd33fhYEeY%nfRMM%%l5G{+JpzS&WbJsUgfGT1SGQ&oW8*xR|JJr-Lb*e&q++L>$OntZ4a}4BN$BYBTY|iHWzP{pY@#{(Z2mtWer=ndf4qiab4PveWJ}CcI*6B zyF}@z?3*@d*nDsC!}?8D8}drNqvyvH>&pCRpL@1_NfLF7JbGT-+-&!4UlK@lOm^Lz zG1QzTO4-f$$JJ8?rFmRhTzS&?Xks57qJ8T}Eq+f+L!&>QFNni)BF#`^LMki3JuyY{ zADAUBzzYpMH=DovzcNBOCBInTrxyJ5P?z>Lk;H0@kdYbvCS~pOq~+)JyLMjXjN{=0 zd>6qv1j8N|_d$AhY&*eY&NUdP$5YllbK#?tN)^vgWBq(g$Z!nS(Msz~{LnFR3}3ZR z1UvzStOimai2vAgb?El+$ranu5p^}Pr!`NyFp7>vKRs*XTKJ%K70mugL&)+U57}4a z=#_wTp^BYV?BWg4gaw4|c8a})LD=1{MU~D<6xG7pe4I zhe@x6eOcnW?t0Xae2Nf;VkvW#c$r`RS^v@{Ln(s!jKA@Cy?{Ru?X-op_-X9InO8pV zkIixedcC7DZ1kn=&|2-+gd%*M15=20b>jwE8avWq*U9=)*(UJ0dK{j-C)e|1b*zPm zwj^3rE(jP4*8)bFQH0JMv{3Co0mjSv`4t2k8{Ze=T^Iautna)TsZcUKGKj5=oE|~7 zyAL`A*Dt-UQ$#cdSkH#v!e{xBtZuBcZmnq>W$-`xi)qi+w}7H}r-i@;f=Z<0WDk`O zA3?l*I&M+%xW?(^gn>%v^!j6k>cdj7nz=*kc^^b910};QTBqKXW-aC?uFfw9^J!NE z)MUji;qqt-N=jW5+IOueobKsl8ee$7OHs{`o=H(=6JuKEooIs%P3sjja}aixa!gu6AcZtWQ>$!78kcB6#Iq99!}Th({Wg4U z^xw76Jlaa5G$gvu!|QK(vqA#eZ<_Rcyxgo@JkYnDFcm5UW9b_`n%lhE7oX}#ES8M5 z_u_k4V6{gbyv^&j{CvwFULh)dD?eg6j*YUek=N{k0N4Rj|1ZC#K+h`!Ej1%thz!;o z_X8=<<-S+r#;{~c7U-SupQu0IjBfbBStjcoO7_Mle6H29ymlCqwd1LL~Veb^Wnmg|iUzI^{-Oxt|-v@-f z495B^RHI&D>tgcb#dl>P!SR(N=U3-b7X0%A#>K=g;1nC{mNn&b@``X?qX7}NTIV-T zvJK%u8Zz|+TrN9jq~o5hHH$~ zaw><^q;M(|a0!|<$5ZKB%s3mbK1iM)N>aX!{djwp;(V4i=3btUoZlryERcv+74M>c zUTQodC4$x1F_u10TD}#l(Og<|n=z8t7^zvB!rclvUi$NpuhQ-1{$0GV?OsaVxGlRA zXjU!s$P$J+9;4C8Sa#E*~09c>m8OAz}IHCPV^s?m~(t{%_5hKZFw zE#f&Pr~kNuaBR}Q^}IG}A<}B&s37HVY5@_El`j7duE3$i;}=dZ#Xh<2xgN|_&(AlV zTwn-4RKrR+)9U1`v?KxUhUR>xc&6EC=v$7l=3|}-GtcDrmdWNZds!={ z(b#nbcAbUxmaeb^aR~38rw8h>vCPW)WFMWj`ojvgb-vTr3rt^(1+EjmrSOS|4OdG! z8wsc?GCqBAM<+>gxL0{$Hgqnv)!@IM?BY9c23b#aT0ferbE>A&Wi67q@Lg5Ip%uUt z{=^s9tO|#3#^z6!1*N6G8qZb><-g7-QLpr9&r4ai-NYb<=`0yb)$fuXDHWzRc^(;d z{#v)ytkk2m-1C4IHN>}iA>yjC?dmH{v@GcU`eqQ!erZ2{!ybyb;F>5ve{*;cl+{yU z%~aBe7=r@4JlTIyb=O#FYg^1qv=n=o61$htzR!ALx82M-F6CdFyfTiOT7}yTcoAb??R430 zt<)`f36SV)j)ODy+3S(gSu16Ugc4I|wdf0tR@X#0Zegdz^AL8`jR!vX?=3|RMhPud zE_YeJqs|y@xFzfFd~2?%Wly_7A=~^^_7(Ic>F|wM?Qb&q;KM4@2sJBnW!SQOyneq} zFA54Zq0N!9{cGMYk_`@+_)l*BhYPSc5y!rb1}5u@XXGA<{0nSXzg%(L<18*Cw^7oK zDP00fQhP_ghD#1rm6L8anl>|o4U%kFov&Eqg9I%*_ORaBCV^ZSTIXIRiNQ<#tJS0S z;Dxt{zf{_@Sy?xkA#bH~9W_GdjHGwwv^rAucb0?RZ^yH`lWhykNly`V{s}3UN5U~S z6WdUe?q~gVW8b&96$%Z)PZrRss=Y*?+jPz17mToZOr;4a+xn-C4qzNKBC72BQ2GKm zG*4VAx$X;a!k~7nLRYS8zT#d{Mtte2Nlvy`8;UAjXM6lSy-)E@*FuytpEstItDK^B zALm12Bdt}48tchfGu!;d;~oeRUm@kP|7=Us#RCl#9m%`Er*~{C32ud1mH~(idn6j} zyErwk?^=dmztAB+N~pZJO@{`u+9sw9d@;wjioare>~Xgo*;UEx-lP~@d$NDKAymdzySc`?>bO`jJEN%3Mq8GI6!RBB zZc#t444ihUIvGanj(f)i=r0&paMw=mVo4t#2=_=ys}Dxa?R1yCfAN4UHAI;Eg17R2 zgKyA>4Z(G<<~SdvDk+hB7NQ~nDMTR+yX#P{uR^|fdO_T+6yI0nda<%EhxyV-nN_K0 z$uxRIGus!1m1wOwNBc-!g5x8m(hkICm*+=4$AMsRsMlhuC0?&pm0q)6iGEKPeCr*_hC7jYCS_yd&{=EbhbQ=~0e7=3J`@9xm80mt>BI?0CvrVBLZ^+` zcY6wd%KpLmE*L<%`7I=_*DtqC(ve0-slEb(b74i$91vNs=LsM!jxQ>rjwY_Bs5Cqa zi@bR7hO3osj*+*HG*}&LK%S$>Wauu)v&W2{=*&&F4_<*Wji@KVby%9-S(L}?=bBd1 zv-OrbN2f1=@6lt#k=!wi(2a8L^~F@YzWx|`N!{)7xiQzmn)R*es_C%uwGH{jY2ScF zeHg--xBFR*AG)WCNHflK+^4e$Z5^ME2O^KWALWJC(lh$k9W}-Y)FF9Yzyo0mTLbZuSy^g1}N_m8#Q_GvYE8RE>&QF%s)Tbg` zcA(MBY{831Y!$}DYDUsC5_lxO{sgz9{*boU6{QhX=;SYrl^^n7e$6@&ipJ&yy#MTq4rS^zjX7gO6=cPC8j(vhH z;yd?gD|L&`1PHi)u8rv<3(sL4bUAIp54tpVd^(3`&YSE60CIC!M2Uvg2*!TTw z+7CTfDuBmqDrX&jUYLo~)DdhiB^!%n9<>iIkz@LbscNuJ97Tp43r>xRBnXJ`ri6*@}-=|9*=i>|j5pv(c_8iYsA;r?H>a zsZQh=yK|U&R${z{!u{-Mzsz&vBf_=H6kN!d0bWJbGcL2F7n|-0+5Ig%Vx_ahPKLA2 zos?}|6EU7zxYKh1B{ptoPeB@S@m$>ORK(s{qllXBt#Wf)*)`KW-;#CS8N>YShnzot z#Skcr8-Br}Kztk3KO#D4u~1ZZuu7FN!@yI(1)4(&8gM~M=^Fow3mI~X0;9dzvDdGo z7MJyS3>|xU_k;NhHvaN*K!$H^G?3iqw6L28tbYzzzld`#s}{?}DzrG$qp9FLd+;)J zNW(>rU};_BHsOW^R&il(dTlZ*Q;tTJ@S(K;V$j%Slv~kk+#xTcv2P~dn+e9hdap2pj ztf&vqM6P`@%Aw$zK+0zI_}zJ6@C~4~ufb#^`2RPmIII|F1JtLNhI#*89{^>nXxLixI+ zBa0t*kTOtK>o#ir{03Tado6b9LTT=8ZQR>FS6%w?6>Q-uf#du%Gl%}0i*+9vt?p}0 zXyO}OjJcrq1sg2-R~mR>+roJw9CnpA?P2y2rjR?X8t3WXaV}JqbY=sz#IsU~n}1Tw z8y3zItz9-lkk!!kK3>O(J<>djsBu6QGsJ?t%qMZQu;yYJo6gvxh8o!Nz#wnLB>_&~-9-KABZ& ztgPcBmX~~sC^3wl-Z5S>OAD65heycdg#*qF>|u*B0=Mizd8l#AorlBeOYZ!92!bgc z4mIb>YNxfYC$_AbGTG63;Xm?NsD>zJV>>jdevH|3VW+$=g;~ysC40I)yMrII9k0&; zreW;j=H~b22b7U4^Z$j^@AwJsBkJJTM6=j*Ki1ohmr4Sh5vb?_&IpxDTgvv;N6}BE zi2pbtT#tq9!epX|cMRKx4jFJ~VUr0-F} za;*|`-zS+HdnPx>r8O5&y+4YE91hL5IYFC-nWc8-5ks_4AQlt5G zUvVJDAN{0(bh2w!of8H4pIgRcS3RcA&2c9kwS){+Ac@1g{0g$qV6@cIc+bQ5Z{tZU)p#b;bD(j5^NX$|yuyJoIfN~r(ypT1 z5?>tfUHJ~%-hlRz+E}${2Fai{N>0g-m&8^zIZ#kX|Jx`+N9Q&Nop-e}GzSO{=>~iH z(7TO(`XoZX-=;&sJO63@-;1MI7tVkG^0&jplVK42zXev%IVT)WWVU-!J0~L}gKlbi z323{K$$J+ypk3vIP_92)1*9nVUzrw}iKb?;k~iG5snQB6%G zDh1bXY1F>YX>IP<X!7li*clT;7cp7q4+F6R|N zUcOxHm@FyzAnL};n_*TmvzxCPIWSv2GgUcYr?!oN;0p7+8F73a|DSm6lPvh!w02r< zRi&A}#pol`ww|^KAv2t<2#n*#FwC{XFL`lT$P=vQT9OE5d`7D6jlly;ByQUdS;WZkp0s2e0;xF0Pp|XS=u;FbdX{Zk+JLy<>PVk z#PVsjZSVCsKV6!4b6Z;0bAXtP$;-<(L#=PyXp7(h0Cn`ZFUR;q(!UmJ>c?{*SHNDU z{->UEB{Mrab8<4bS+9;bqCdqc$)s%3|NP311okWitq3q3@mwtFM6lUN;!grfJrW(O zu2NyaYQLVpe!V}jv}ctin=+0}Fd0h3|B5Lduj3*qAkiK)Pjf;EQz*&OA3Ok!H$6T5 zc~3XwzJ#Z|+@)JHHIAHUf_(m%wDQb21b1zOVSw^kI{dw;2=SiU``0Sa?=L+uBv)jA z`F5nFr&>p`F00v5pNcc1;8F5)nH<4JkHL(=v+w5_Bf{uaRqTlam7uHbPb@=9y@>__ zWiB#Nhyx%z$mqkSRO?-N!HSJ;;f)}2|7pJwgG}hk{1`#wOLlf1O!zgr97|RfrA%UH zC-Gg__vfOujM&&1MzC=4NI#q1@}xw9xlPqN=f`LQTtVL6uky!Nl)I!7xt>LKwOyUY zgQo9CGc(laXr;QkSurUKsqJy}GOOJSJYr%%X65N|`=2&~-V1AqW*y%zSfQ(upS%$t z((^IZuoc_k5D+q2)t{2x_mFG%wPeGHkN{1hjT#UERjUrH0b)faC(DA)ZL6PV@4-^+ zOM;!1or4b_P_qrBr0LZw;={=n1eOIl>+}&^&#l_aOv#X*9oR`&u-lf78v>+0-A)nE z^8(Bki2h2EVqM^3G5O=8xcE~B1`#k%k&~MYC@$&J&}Z-){-hG~f2d*?TC6xd z)mZE8U0}E~rz9e$#NDpCwj)lz(jA+CF|m}UhOs{tsU0a`7=8vMkBbXYYWe~`qxdO{ zmYJC(Wo^Qb1Id9h0fp;;1K!?>Mpfc^3TgT>XO(Tc@<6F5*{0jEKnY*Ha?hyMFG&%T zZF}5MUPZ-w$m9)8F8bl&5;?gq@x^r9pFcklSSLdNgN=a*DyJV;nhz(Nb=VdO_r7~6 zaKaO6RtaCJ4{Lx1Rz-3vi@aWc2P63k(f zl8>+VWUs(Q=N~vq1ruHi2;M{m_ZjgT#e;(QdOHmTZvg2{GS z1C(%CO+N7gE3gQujE%4MKiy^(mzi(RlCBk#neRH=bx|qcn4Q%K0Mk2weE~=efI1-L z?v9h1>RDbT`tNbbYpZlyyf%(jh*Euj*l+ipmG*5n4VA9ROF2y$xGK|jm>$i!`eBe= zC+9FqqHw9JRNXdsE ze;8=fo?U`}DD3^rdVja=*>;h2!=-=i{%vp%W7tX`XOa0QZ1?Ypg@8`&ez}(7ema%{ z3X;Qxny;0$=aQR!7}Mm)>O}*@d@>Ds<0s3_8L_qb;v)%#fa%`e64hO<3+SYm;?urnnuL40S!EG{PxCtigEv5D0Ktmr0#5`GG_0%`j41^EdeQLX zq&_`kFPW$9wKS8JBZuYA#@y(H9^fRs1K;gk4Miz1<|H6JdtkZjCySx1F*~OA=kvUm z7p^Qndl z7kLHy(CUToTBgA~Wm3jQca(<@bN~FJ2F_YUr1|R;X$~+4YS0s70ftBvR889rSd=JC z_4I`DBG>_wqpF5Rob0cX$m7d5GA@QGJIP0=2hOeINZ8nNE{{xN?%QyxoxS*J*oZ-; zzj^|cjZ!MEN0j&`?0SE{?=jkmBS6Y>v;Fy3Sd8;cfHZV@IzfMN<$AxERzJs|lCg0x zh;DJfZ`Cxg-UOC4^LZCz>gee4+-p=BF+tsy#;VJ8tN!P^iN+<9zq_Xu#YadL-22&1vMzF3alJ5bdm=yZ`qx+54`oDinEgkMY+pW&XSS1h}RR;#8Ai74Z5L;;oqOXXoQ!>e|vGaUb{aor=%nf0y|uu6FmTxL9wyWd(Xs; z9~I2406d$oZznZ1HR8^!r<-g?*nUqzrDrejK6F~}pK4KK7{L8hSoZK|MHpQ}L?b}7 zHJA}7NU!EQSelvM7r%1-5|9~^2pj&wVd92`5^tsp)|sJlv0!D3++2j_(gk<+qZG>f zfwL*3iG>t}_v_Z}&fnq>Q61ZPHS8-!IlbK|?k06i$KwN-EFqiAjR)win+tFG#aQpQzm?LprX`OAI zz5*;dK&FC@Zj=)7PVUk1^Ec*3P}0+<-19=A>d0Tf?S_V$*(|36067+*3aUG?-#riU z?|dUEDN0g#i-=1&=D<%3uZG`}47z*e&<9L7&FSH|DK^S=LK=t9SutL3i1*wkz%o)??e>h8OdEC~j{ zo|Xp0^I|JaO2A6KxOOA5z3Yxv$K}|Orj#Y>Md5UCly|VB1oSyE$)2LzH14=!z};^) zf~_p;Wr#;UNJ}FKjIZJnji3a`zNiBzdyIb-|5VH{Fq%*hyOgokJ3^x~k^b6=w}Fwq zcoBcIBfzCVrm7)xRs@7)bwZkl$SnE}Lm$019sx=pi0XQys27-APco(AS<1{9)WZGV zu-c;?Zxk&BG2ZHc`s0TWPX@DP@kK)Ge3c3k0N)rr{7R@Rt_C<%QZ0{DQ7neKSTJdu zNEkXA(W;(InEMM1d9eFOL_B{0hx6spm;x3uYOgGY2tY@XbOAQdx&NIr#iEsMyv!$J zq19^{a(d?@=Aj^GVd!N=k$D*%wW=hqYDTuS^%Fy&!J_Efz;!_VnPcnZDF zPkCw7>smFCzMu0gUD@qXQ|Bxuy9uoL6OXf+4!^XjN(}-JA_p9%CWOTR_XieXbhnHRc10re7#-t_@7u@lflM>?wPA5l?>tu$r? zNKim)deCcx0U}NeY;4HSw2tt6(-XQ!5KCYP|KQkc>Dy zamaMq{~G|)7K(lP82gt%YR|E{jx~}u@tL8%?5TAl|2UWqh}@Y|7Xopjdc|t7qd9|m z1y{pBFI|&fi7p#nKrnK~$Do%0&rOF&eb@VZ?q>pvnFRl-ip)=gV6okvITa!C`Bbx* z2p{cZx~O$!7CT*9WU3qkZEkvu^9R^`K7Gy{EGxJc9b|*SqCb07XJ459xrN&!a?YKQ zgy6Xxd)+x<$jK#03U6hDSh& zV?Tl%5dokP)06{~QKR{o91=%#i0hg;5Jbwpr-?Pbcc)vQDU6rOK zVUDh_=Mv?FZB0J#QV7~mdE7#~vWaf=$ecxi2eQ~%DEsnq2HJbgi#8GCfqU2gndjz~ z{Jb8{zWtoflpX$5z{{A*^mc=CW{X{zE5BhE!!voS z?#e&r4{&0*=xTTHbB0{kAf#u#u@kr_!hhQ|1T!3;B8*e(e%rMj$t_eg(~i2goSqvh zFYfJo2i5iyaMyw)0pvBYVS-xCNls^r;i3p80&+Q=sIpB!<&$r&d-7f}-47pv0rPuz z%H|-ROTiZeywL#gsVkwpMhA0F=Sxeem+x0s0g#x^j7Ng=-NICrR8;JAWbj12DFNkh ztw-VFp!I%4Id@zzE|J^aGr_3Oo82oMjK0uSSk|%HJ&>K*UrWF95U*UUhjW|LXw&11 zLj`!_1l+mq2If6F6&3Gn3B2aqs(0uWK7DwCURi~C{_cf6cyWPQsNLs^${1BO)ytmf zto0Vl_~miC)b)2y5r6)WiY7S@T_DC*ex8kcN2M-2Y%@BaCa*l=jZCE zlLwOLn*MZUie&MosnH338&8V$6y`!~H?CVe$4|}|M~`tInaK3&%|4jAt;d( zYW6s7S4K|OG49#X$wrah5%j+~mLQr^W;f98quQwHc$uHE9%(P#dTf7Fd`jn@^<`Q< zP}uNAFQF7NOf^xuW+#btF5Pp*Xqx>x-&%!-}icqgp{Md6XE+V zZ_IX83>lx3$ar^}Orze_N3ERZpaVbY8B$J2ULIXMgYV0*$lhR=?&X!Dp@tjfCx{aU z9l;G945EDLuP{cezOixoB>evUgh5M6D4m%Nx1ROa;julKZb4xzvb(sb(lMkMS^f4> zD2i@6V8CS1hV@2v$1q}G&KPDc<1TeWIfMJEBxr&Lx589bHdW3C<%H)9JJKU9Zu-|l zU7vwsk9?BXT?;ofibBg5@FP5}vd6y-N8X@O)>x40x$2KTg{csk_3|rj2i%qLvsa)} zxN3Usyf~|N9K?kLv+gLQu%z_QADg;a5U;=lQaxce!QAJFjJ3F^lpA|4D0hp`C{xf@ z*2+xTP@boEp0U?y&Bz$FK1&}qJz3Ql`C(uG=0mmF1%ax4Va? zp-AjYp=arXT7hKEy@=WaZi2rU+W&_OK=w>?88f1nMsDinj3YW0O^e)?LJm>j!Sfx0 z9cx4!GxjX3vq|+?_}53}Id}!@{cE8_5GgG5poR6*&Ach%=y$HkSoK6wK0;N6kFUL% z&q6EDb3Q?JzaxZ*gfTFGHNa=ABd|^xD=J(J$);(sf#%kCELXcodB8A23Uh2wO~e;$ zFmi3M~@WshJG5%qP1bWRm7;dFK3 zUR+i)n|xw*J^3Y@DIwFrAoq-<`w5bM@K2BHtzg2Ln92oIiZ?&u9-*< zh4cRE>Kn5;)MFVM;=IeWSrU4stBX!fi6>x@_gR9EpYY(wE=@ku?&;ma?ews`H|U(c zl=bVL!#JPqOAH!mZZzt6t2t-WKPT?sjav8IsH08m4HhR)>uNu#}{zQjsV$!hD)^WZI z!PfjW-il<8h#~x7ucMdl?x4>qbHe6BDkL&PwAJ-_T)V5k5sH1STlQ zjkKN~kEf>Lu3QFk&P(S&gA4}r<);Cv8(2o<^MO7q~xxQojlwZHW zpmsyqeXs$WaXg_pcw%GN{Y>Xknds$G2r<{f0ey`!_3gvuJBbwN#|mJZm*)(^>9ARFj`gXrvRry_EoBX!WCiLqd{7At^FgYN&WGwjUT&3@|fA zE+_{f6*Du6pdcp#vPsJe#?f>MOlZm%CY{5ik`qSs$)(S7^c zE++VGe13lKFS%A9Ja#_t!nnrF0R~M8!|m~B{YjGKyu4^kzWi2Jkk9!lsDgr(wK4CG zPaNK5x>m8qp6@RVe0_{)GFx@1UmcQW!E3Ylr9|?j5MRKszg!PTs>?Bb2U~(fT>~GA zTVqdt!@7=qQXp+?b`9gfOGAI_8Vq2fL5YZ&iN5MUTd25OL;aVsUZT zoe?002H72PMAYl3QfA;a1dk%Llcns>V~1+TvNs0jM+IGp9*q3dMdm+yXzi5z&e?*a zqTziV*SY#tZMWO+VM=zEAaiVc}t*RkwWu@J_Fv-}EU=f0HBNekFOn2XkHtkpUPnKDqYn za56K~5FH;XVPNn`PA;%g2pSh>Fg#-ap!LXft!HLoOWNKzC4oj!W4{)zTBKF~K&9Ml zOrf5Cd5S!Y3g81889j%8Sx@zBe_D$B19nO?D$2b0^)VBa`4U^>q1 z*{2=FN}*_|wlWeVLqlzP<1kG0z)?ODI5)?Yni zW~To9Yf;P}l^ytN=~ln!5Y6P5LIG|C5l#pqSU7*$Yxn&Qx~R5u6ni4E=nbw)ohv4% zRORzx);!$EGBXTb;X~z%PgH42N~jb0p-nOL*;C8sE>kESpS)v)i)YHruK7gQ2;mYMiOn^2Ba}m>7QwtVBlEW^p@U^ zCnMfPifDfVhb`=$de7%wR9VNoY!L&~iih2_jiB2#&`IoMcyWMr@8{C35SYv-h}M?d z4Zt(|Gg*@Lgh}X`oP-#T!lPiEp$IZjJse&Ll6qxBC{%rk81CyF!^N$-vT7i$qm$`Y zv9@MfWk<1FxHgcM_UdB0$iA&pTR7W3RXp+{Te}P_og{cqM2~1f->$1Mm14i69;Q$? z!}GejSGn!Gfebw2na(qL3&l7!D2{iu9$T6<*SL@03Lg`*SCyfXbp*nh5FfAS^)6Q= zWkJ*2T`P3Z#;|Gtg?`SGy*G<;-HQ0k) z7mFc9TL^x&!yX@oy1G3$OVMBL<|Lu-x!m;XhWX}@{sSW;JXIwLKCDuycwmZ}6AT8C z&PNEBoDQoCgArcBqFON|QeCyF?UgVxMIK%(p4;C$v;;{`Paj~sSmTE&z>^vMooZX~ zCpQdDhPIpYahii(3eCz|75WVb%>0I5y8W4g35;Z&wzMqIuSI`ze%%?Sy=?kU<~|44@6BZr=IgkJ@;N))^bHGH66s{k14RtPMn%Y)xIsGQ)b6ai#;Rr zb#?$QgvD%>6a=7$jdv(%lCeDZ3iH^C;eCZspBxbS;epK?t}03r5)aeCCiO=+B)-lF zKySQ3_{rqqN-PqlC8eW7AtbbllJqhyctq1cBxu?frTX`NYhrj9F;Htp*WZ1EX`qKdQNBv_JuGB%?Moj#oJfOJmocK0 zXOeu7Q>QLDWNICqJ~;JB7?{A_5=lz63Uh}^6TcjPM$#5pYBr`j?@IgH%ZszZ$|LDJ zW)E&HxtzqNgKJA`I?@Z?KH!e2C@H@^$0XPsO!d3h{KMb~rYv8VrEfI^TsB_=F=AKt z_d|<{@=7FM3Gp%W$fMHhY;D-9HZpowIq*ZYPE98E+2_5|5y$d-e&btvJb#gVygZVt z9*{6aaGEp|6&+v2=o8pJ6~^(M5&E?BJX+EMXZ1~U$jh`3Jq@`eWCF2px>gp=1Oh_v zUA?KsR?U-`tBN&syy{@Wf@s{9-ZeJo7=3?F-S4ZLTArnau^eYkB@o*_+}z{_)%oWfmOTAcw!3j`)HoQCqTBcs-3$dv zo#AB6VDvf>7*J$foF52ar_1wX#KbJ|IPxuaUV*%U@BOQesCUHRm~G%MS?yLyIV|zQ zGBfjeY1?3;vPb*+rbEUU(Ukor${VA|>-< z(brjI6rPY|AR1)M{R-44p)_@Y_PwG1hpw-T%5v-0RuPd_Q96{AZjhFi?rxCoZcyo# z?(Qz>4(aah?(X>3qkEtC9pik59}EPa`(82gn%A0ZcklLYr0`HKOIWn;UCa#nvp12s zX^u^-rJOC>QIE9JGdQ+Z64&Yrfy^_%1l^;LHDzWm@xGgZgz4~r6& zI=-XW=<>Ed{uUw){&N`3U?~DKG7#?W=Fn+UXg_?gJvwzhi%kR8OBjtMDE&DdBja** z@{90@hyhR7-l5%dpa{PDKOSbd-LQvI-4)0wa9j;ocJ#&dFdrHjj#aKQ1UcAE`)RB4 zzj$yamlJRsqvvq6jonQAialb1ikEF&nDb8}FB{T8-pmd)&DqiRip`{dz#%TdC(B-% z`Nb!0?5W$#=4pIz>bk(4C87B3Byzprp_=6TyFD72_*KOk+J;3n8**P#bu|r|983Pa zK1$1?;lyosb5@W_BUOy z7_#!l%Yl(#-}acs{Q405L%2IcsdIPV)$&(Ka|@eqD7-|dT!Kd20X}`)?2w@wozoLn zGUx2eRBnD}ih_h=sijO?zvEVi#U%C?XIyX`*sp>iHMlhMq&9~uc?yPGEbeyV2k?@Tf1oCyHkrU4HY;b z_515Dj*09gTKRR^=JE%J%tZ9eHK+HPy98<|<84lglPE0^{a~a{(w%SqB2FbvW>rtD zASmEM6^Gr{_ZG{Z9=o3M$l$Aoy$Xz~k@7p1Mqzyz^}7aQDEkS$t7RvIc@3ZMY{sMZ zytYn71p|(@wfwv+crgy)y44YKHjl^VJ$X2O3WN~8feodeZPF5e58BcyC7K4j= zF932N^jHiT9!DqE63rG#r}LZ8!=^=uVuCQ~Rc8DFKG(Txu*7+B>Cxc$FN?;3(08Ls z<=NDXY#m2phYNl7w+Xgr-qLE;o_IdzX`KN~*hp9+@1C4Ym2bQ(=Ru|;8G2`}9fNm* zogClTze0dzu;vgsuW^>`9wL$RmNQboi+U9K8S+&NpQ!M#>1TlkQ<=jhU;2x2$EJib&b!PPH6XM2Z^T680c>hwG#)c_WTb;)&mY6va3(!yoNUaLOwr_m zbY0{z7-7k#F;Z66?nR7+N4wHjtT)56MdkLwdxg8>kH!_0O+T%E-F4*;9p~zo!#*ze z6bkI=F_B4r%Z-Hd^2gV&cv3x4mbH(z@KNk7aGN=OZ)0MB=ggCg`&eQ@abs%bl~pNg zaI-}(Vs@eY8blj(I4o~^jf*M4eLdmSja$FJJr#pQz{?|}<4Drm#UpEKn*Vfi# zni`o=h;5c?HjS2-mo@)bTl82@S|UXdM_w;^P`O+!v)x-jrA%Fs-rtjX}p%aYso(i?+OmgI71_6C=#P`-Ins zs!~s9=zFgg4>0Q;FXVo(M}A}6Uvy12;|kFo9}Y1b;}aY2hUt!TDStMuwz!#19QuRa zY`_bzdy?;MHkC|V!wm+MQ6#Sr%a2>z=KaY}>em@qa{Eu}aL-Jy$xuQxKGQeXq~P_Y z2a=}HwB_pIabj|WU^X3oaOH!bLDOgBgBY@t7(}l=Wl$q>#t!B>;Ov*lm+i^w5EtX{ zQ3^tTs@!ZKg;IKheLU18=#|T&N35qfqo`%3Czwg>5qliNg|=(^(*Zwxt7JFf_MWU} z8#96!&L-~16M@^qSelVU0rV|fXf1)KUO!a0TkgMRZdmWTAUP!_)niq4t}hOyPVSTz z8VFq9FnI+_u-bZbo#z^q*>0U6hV;%MP^JiG53j0EdN(V;X%O$;9V$#;yNRaG=G$0h zoa;xz%_lig1@M-y0FRQ!Ahn>Zyt`qg!i39DU2b$}Dt=G9E=7i@<=gsvtm-1Oc_er1 zn6m}x>N(d9H)5T?9zRnx8juO5b$}cl)X_9v69=Ze=aMhP463W6z@s=g+!@C*S#*no z1hB@FN;a$<=R1za6DotR-$-LAOtwa2zXKn?0Krr%BG$x@(d=Rxy*_Q=f~jQ`y&U*v z$SnzDu9tQl&972L>UqMHh{);|7qU)HS^@}*2zQ!cKKmIv^1gyf2?`vc4a)Xd7$OtA};)26pHNSKOmIb{|Q2+zYmns zJalkQhO5BHG8i&A+j@iYrSiD7_t?%L6#_!-EVrS{RZJ?fGl%4w+ocUNz8iQ-xy@#V zPYuobu=%B(bugBIOYMV|8X0rgiDd3O19&8hML6w)O#u7k_V}q0P0?$fPC@ggfnfV|bLbC`8z_69<4G61 zf}7qXbqCw09bVV?dA*5L{%()ugWra3+Cry9Cc|6&>WQ&EBV6V)uaQ@FZ+~+P#Z`{h zOXWsZMg5XiA(hH|oAQJ_I<4(z&pvj}+`(|$D;PZM?J7b~5bLp6Z@_`#cSHbM`1Mg6 z8afljOD`Vr`q%aW0d?RATLK{k#gF^jK^^Th{EuCrOuob08O&HxQQ>eT4)VVUArOl_ zlgYk#Pj>$INE(e^|1va*AEcPVBu&hUPCZipH zQLs73=~=vXSu@;fC40S|YcT{%w<~0WygZyONlUU_dGAxRhK{+zeW&AHr!pI~&7+=} z`7yQHAbwL9i!$lgkFF|tl#|CxQ@KlaU-w8Z@^I%6E+aRr5G-e45bCMn?`mC}Tg~vk zQF-KO2%=!K!2j_JPsg?M(6%%xsJ5NtwBpt}`IIq`a9 zYUl{x_iL!A*k{li7sNSz2e`)Cd3?G>4w{lnYv$Ymm-Ujdi*86X&@5RyN>&SCyFc_i3liv*;M!m7rDm3?v*WKcclQvE zgyTx(jo>IP&Gq!+FR@%*^z`Y}G&bfAKy`Dux7A>^FY=0v?5hNddaMcAA3Z(dzGSWl z@kBiukTs!FyJ18M$Gv@dOd~sfLt8&B%IT;}#;6}czJ+m0G|SPn;&IX7P&$F2SI-%} zQ4WKW!qJ0le%E~MZ9d%4bC3Kp@7WD~-u9&nlM`xW6E+`;J>@ZpeVNS$x6$1hk(wza zNEDvuH=VZDCOa2OH~Y#F+@jEXw+-{t$24t7n}t!|d|<vlzcJ0<425$(rH|!wgcWPr_ORdJ%xZXqkG46- zt&OTT#iKLuq1N%S!!JpLb;^8ZMc>^A6M^)Jh0K@p9d|9&%Q|gNv8ZD6Hm%D{khrJk z%Dl`Co&Gou-5d6fAjI&lmPCHwl55NC{u|VMQAMEv+x~-=S8NbmfE7PppM9~p*e0GU z{Jfb|(N^^JBkMwXDdl{$T-(^rgT0+pxzQ7{iZcD9g_)2!=5%dqHZmsnvrIfyW0hs) zx-H^eenWCSnw<}u){P9fV=xmjg0M$;9y0iqsfE(sXo9UUKPiei0lqDE~7elK9Z(cv# zJw*g7Rr}Euy}|?~j(JgAG(ER{w|BJUvaWB(7>Rg1w%UqCskpK2G_oT!%_3Fr$Uwdy z%cB^sdJzFhS65yAg3bSOK}&Sho+a5#+)LRM<7guL7xjeS4qQU=?e_+)(`%C**;@D6 zQbwOvEQunLcq$iP&UmBfmpQJnA(h;;_4>lJC?v0_368xU~E`&%- zsq*=xH{9^xfzGMw<_vo#{zh{KQ- z9kGnvU)wk5=czY1$(SnI26l&$x*jKEVNrvP*fHPXOtE(#>s6BVJ+#pw2vqyq z)Vw*S__%j$v(JOH=_Wx091F`N<3~9-o0&QdCgD~YQNJ(t^{2|#-?G^!eW0h024e-NzzZ-O!uKgh58uIu+j*6V=yil+ z0Vrs(r$`Y_OxZa(8EG^=7X+es9`F<#F^Z8{>?!qD>Zk7)+Jv-`WzTXZbT;}5@6JZWpFLxrDp_XSnJ6^aD{Dsqw>7pEsp(JEUlT(1mxIIS z+qaXm{aIfmoIIKGEE2fb2~cxw^aCi4}7D+ z1fwp~g^A^KrDsh{qHfv~OXfsee}6|$#>5oa;GBN2{YYn~%EoG&$G_e)^2iU?y!!)K zw#f$P_u1mVk8gI#K|KqfW~djK6o^DXo-8q+#1ZOpckDEfETKJ=q9+{{#(M^pDgj7w%+4+fP@e~@78}3pPCT5jL1Im9A@oxOVC$&(1hZ)jhQQr& zn1AbU|1)q0GAh+CE5OB-184Re`ucb^1S(f~ynjm9ual6HGJwMwp@Z-s?`;D zQ&Xj;TR`O+8;kykx~GEyT!VTsv)${J<1eD3>DHU(N2k`h$1AU6Vm?AtPC^tQ|1S{{ z8SOAuFhVu|T05^uC~@v8O$p#wA4- z8Hh3JoyzM0-oL& zgKZDT*Xk=by4Xt;jV%jxJoSEstvU*7EdL50G7;wk=Hu-m6~rV(MP(u2&ILwmn349% zMdD8u&1)_;TJOzc@hd7m_w(ES#5N15rOi|oi|5NfOijgL)ro=!tr-5K*-*N;m`yEE zwDcX%@06}GmB;KQ8Ix+mS_JJ0Zo;zH-s@VOq^*YC+m6W`!G-VUx;lUIapZI08 zE^&J?Za6)Hr=k*jj}NR>UpSaabZ98=WYJ=(G^tXZ9X22p{Fe!+)&(m9ibDVe8hrIi zGRbmv=J@WkLW)fHf=|eHb1xbShAL%rJ6C<)18lbeNaPz>n*9Ie0`$2-1n2-*QYDM) z6S*Y!2P~uUldsFI%Q>>bphWr4ilrg+_K%n7iG2c#w%!-(4iwR6IDHm$m1AV_)p(Yf zrB|je@wU!BS@-hb3!sDm5l^+J6BI?6FHDUGHYLpfM5gcDA6@-$IovdtnzI15 z01r4M|Li;;MnptJ%gS%}GK=NpjBI@rY}If8UA;!%(%lvUXBRbzzNCO61x#A>S01+8>01Vc5C7dRUV!Ha+Tp;MiYmjqy;OB?_AT@xR{dtWq z-AcP(FNIQBvRporj*gCaGG`Dv>o1mrgOS-^8NNYcx`zuNFAf;{z6nVTwtx~LP(xsy zgbvXlQq`nHq;}Nv6V!GRxRTp_@QQxV&ia7^$A28|-{@I)aP^K?U#V+?MgLmeBL+bwtoQ zH6$IcMwdFC!paxpiU9HZ&&IdYuk}Rk7ARSJCc7^P0{JnWeL>^m0RQ91U7(tBY}WV= z;N$5-rnBd_()=CXpn}zC?1&Jgbf}bf{~A(hh#}PvrI3+F1@Hg{g8?p3+)}N!ddJ%i_U%Pt9Wa~cyGqq{ zv!i*DT$C#Enf&lvd;63@YFXexQm6n!kOx;(kEC~Ag8N)cwAze8{qDctBMP1)5{;|5 z-opzF=14&-HPj1+51*>D`bubi095?pZuC{--Ygow>Kr2lrI;ZQLsZJVkvus$fR_jU z^A;g=nJ6HUZ{D0xUR*?ZdIz_RjEwz9F+VPw4g63l`^p6d-1hr-R1(K7y@jR>nXCl^ zm`P86BenAdx?W=fJBE*RZiA!EqmitV(-~xoJ4k@4paEV(G}WSXwm3g31-iGN z-^hPG{yV5M12>@m+us9lsa7W_V#E`Ty7jxW`O=3iZ_egjHGnJwb4UQT0st|}m1mt3 z6LV9UkdS7@>`lkZPj-9Y#)kXPlSSuOJNcadr6RDe(d>i9^V=XHQ>zytm@}lP2g=x; z{rv+|>l~*5ya670<_!9 zWPMxSeQeWkbu#NCW9!X4`7W{n;x$;IqVinW{GaMEVc9p z{zoApt5T{jK?s;kpy{9xm;er|Y_>x23t$UFlnd$X{00dV#U;M3y?eOXWxu`DSOT&P z))fjAQ8Af|cqD&PgW`!)MP7WV2qeO9cP|%at@cw zqogm7J%O_VRX1QJJ^|Jn0V(Mp#@hhfAUHViJ~&vugX%aoeRP|}o+`A>Cw&@}YFuvz zEca&+3kv&lR3-xy)D6WvUM!3i?h-wX0V{eO7)m2Br+asW1Ps?{2NpSSDp`M`ihl#1 zcAYfvJclEE@IG(=Q2b{?0{8h2E&>45sMK~=*5wAKh&W|_DdTJolFY+tTpR?g+?*Gv zEcb2=7sA4wqzfQQL2|RDZGCw<=Xh_>7Dw8X5{o?u|^4 z3fZMSvz=e2y0r8QA7qU+Fs9ZvollN*!FMi{2L~4nMzXOTL9PZP?SidTkmudSd(x&E zfSRPuA!oqep36iLj!!^9(0>F(>iwS(H0>pPfM#zLNJiG?lz&hVW*`ApR0mb5Y(S9M z`p^g7D=VOAAaw`)oTFpQRC!7XP_h&Sf+1T-c3BQtCVxV$K!*}wxN2?Vy=rP;Q&V*; zEK2C?gf7SP6{vZ5d4trvt9b{LIFu@kK&bVqb!+W9*F>pQ8@j>ylF1GOJR(W!@y

EJd8(5br4n6OoLRlwj+{@Ax_!s+YAhc6N3`kSb4C zAo_;`;z0>r4^LW&P*5RM9wRpC;&;Q_2yB1P;~NGD$UexNir_9;IOEA+=dEL47WU>G zqxNSd%8eBW4GoomvjcZ5GcGu8vS2b_w2aAej-V;X%i}^!=?WhL8$_~H8SqtS1YBnAkGHmYyu$3k;43-bhojwgWm}ZlX#-P&g}&~1d?xh zZ1nW=^9RBk^QjbSe+C*{3vm}=#=Q;k?*77ShfO*xPG@gAgMYty7x_&fy={8ho7I+V zq{3KjXW~3forBuMq%TOV3?hm>PgugJaD~@<1}HQ*{UIS(*UxJT)lZ@W9T2<7w;gKl zn~bKBzMJB`r&JQS72P4DB%kz}hn*M#5u9|tfW+g%nQt0!889h9QqEw0;5@h<9!~$s zV(FRlrNC>z@M~{pNJuC!9PddEB~TeI%jBx8eDjta90s0IqgMy^2AuMNuTbW%Fj_Yp z$$%petW1+Hg!^j-5U3%mnk~WUlGHlI{db7KH$54hSr&d5yZqw1! z_FSHC9lc{qW}2-58If#8M{7M$<23rp$-FFeBdrqlgKz>6qS5;6%>rfHmroK0jwbWu z^QW2~*`EN@2huI?5Kd*m-HFj0wOc54S6k9(DmC49-zbyWix(u~EnU2pZ4@fo;E1`#OwOGV$!747Dvzr$I+GW zS)tEQ%dN}W#q5SDAjBjkbXCsIeK`4ngELk7O7_{{!2h4N&%BG@2;7suO}}eLKG+tI1!l?PO|#R zmMkeI<}C;&fcYOQR0;hK6)#;?gjQkX7}eF71;pL+6|)dJ0j^RwF(-v0O+<^wW-34u zZgv~rbVWSRtWUMHv%|fA^p+BD98 zh>%~gq|uvG(w+IiqBD7aLxrC@5fV`^ff8#Mj!HD@TdVNMS9}jMAZXGG|gWW`3ovr&s`$~S5w$Akh z3yZy=PxsT3P#$fq0+Qzq5=UZjRdFXLre+TAKCx(OjZClrqR9*KAR=DbF}h{wrFf^U zBLfa{ZI0zSh$qrLr-p?!d=f!zE&(DBn|~*AXZIN`Ojbg7(2&3&;icVb$Vat)y|xCCCktAjP-5g zoRd;G41{aNTR(*srdMG%`lWLfVeVL!4ny`iE(3m5QfjzvWuLh^&)-2o@}~_EEKU+1 zm3s3*SGr00!|}x{FUq(ISR0Hz@Bd+*b19F%t3Q^-XpMp~WtLn~UZ_|)eDdqKv|ayD zQxy80&H;s-R`0j3IC;dyr4DAeGK+hB>BeLUP|73rbA0M>Hhgl0N2Vv2gr1gw9C@x}S`$s6^)Qu2I$+C*i?6Plg3zQS59LBaE)CMwnRt-8rSARK)RxLCsrN3`8Vv=9-z_ zcGZd1kr`;+gQutz zP5T$O?<3=3%q9|Jt=v#}6Am9Ax{7CEDE2O%ZqfPP*fO-Vq|*eba^ndG;8%7#Q|f>l z=A!|}SRgD+o15nciIP&y=jC#(gADojqs`>aURiW&5MBek5uc9kd%1q`t9OyjvGfXG z#QL8%4-fkTcoet^P>}Wk_;#**Av*wu1d3Gu$ZYq|HvE-R1K@O$-Eli=Z3SZ)3>`~3 ze?~mNF^0Le;kH z-Zr8)k@zXcHj2f!?eOSVmXsj{y=*Zj57eq; z4)56wZtrs-bv?sR$w5iK54IRitcu>aIxr?TToLcmy*HorIdj&Bbx)EY5=`eUmi=r- z9DB`gj?#gKi3u(RO#soVgp_)czfLEGUm%5`vNDqsM@(#NihMrqr;82IBmE$Obb`Mi zbPTgOGB}zS#_6gzn$fK{6C=bc8-Pw};M{_bvbxQUCGb@{{cjy?haN zzkaflT?+(7jyHJ{MR4v8?WV0QO-n14I*g74S}mikekp#XD+cTAMurPL7x)ctj1Z^i zYx)`Bdq-bnSz69At~>|}=0A;u`-REzJ}4d!Sw{KHO!%t$bAm*MwtNj`@!btQwR2{f z%Zk%kp@QV)qJ4!N{EzsKlZCs6dX9WXV4~k&uXi)pyJIw{xH=*2i`}PhB1SXjN}XNY zO381m>o%o39O85^xJI9DZ^-71M?E!n6?Vp=LB#AB(!o2j+l2M()YI9;Y7ek(%52Ji zCUe_b<1Pe6$=^1 zSuEsYv`<6_TUpSF8o%xG-@LS5OP_)6ElJQ5PJdy7;}DmqQ{gh2#-zndb#hCiZ-bm; z9Jl|A=g{YIgnq*d?ItY2lWd7ckKA1U`udfA7Yybi97ZDt_Vx-`sj~Z{HX9R@ z6XE^S(R=5Pxd(Myf~XRS+o4@StVZ@4uh)H9I!A^JaF5?B93CP)l2Fe z**MewJ;H`YaT!s!$#~~M5aYrbxJ-(NR^uA6JMGh$IJ(!AWhjZxQCYlvK4WJuhCGpU zoi=2O%$q7%qW#-n1xDX`gh6#7e!#0x!H+HGyE+sc(bglQ$Jjt`!h-QL++$^E%^1q@ zoDV+4cWt!~BPyTS9UmW@(RAB-BFVQ$vyqW+&=bSM!R52W0E7ofT?s&cQBjRvAe*V< zxA}pz8Ss*&tZQoO9UYCbupka7*#IGMBDX26q*D734oObhWh#aB zI($2eY>nMF`Y=Gx8!jk7+cuZY3#-CUx)8>O)#JQ!T2P6nI))R{i_F<`bB+gebLz0_ zupB5nhp870$Z0kN=^+&Y;|?Dl(L zwcc1;GXi8E0$M{zmYE{Cpx&Q1{3E8G9Z{hu!*W}i45Cm(nJD0R38+c{Ncat!J!0X+ z(KB5=y&qu3wA{h<$?ikT&gsU0M4sk?@zss9S&Bf9c8%D)pnyFtJU{4 ze0P8U=B)Xxj<$5!GmOYOl7pIf7PM>+_e95{{}6J>KAo~(JS(jp8d@LdfdIo|6`~=usZm<=~as`bv|5VnHZ4-GSz9P@A)%;!6$c{tCzKELB z&Kh^l5~13Vla`<%5tVcsa1hWpvb$d99F0y-K|6WnP0GiMQ~d`-%1$)mG|3;i6(7{4 zW67jqv5IEPLn*VEyea1Mxy`>ZViNMWd_5X8~w8)0slRqLN`bg{& zLHY{LND@#TkbxK(bU490KK4$Ycbu=R+yJHSmF;cNaDu#0MWJnU^eKQX$>b?~($mLL z@@4*5C5mtw0d_zkRoI-=5TpgQOm9RL&@IJ-mY$pinMJO`4Z)l#TtYooxPN*T&WX;Y z+itM%w9SP$=lWbsOzHOS!d?u`oTU3;G;G+qXfc=gy+5f#7 zn&&+4hGABgvNy7M%h59BCjf6EVg;9ig9%h>wN46)=pWkWh38I3d9h~)KN^HJo-~Sq z3x|jOEM25KGg4mPh-OKs^NgC`EG5>27#=>h5~*=~gE4cDn4P{}@_ZTu7T4r`jdnL(t&gQ4Lh|rpkla^nJFw6>aO}WuC1(I|S~H72O7_+bGyoT#$V$ebSyS0KC25)KX}H+5#wF z>4KWy(6)^MLsd3Uo@|dGl1^ASJ!o08lR00hdA{|^EF)!Srm0bH(>$1O6{K66 zqMIBw)%fR-;jC*#F$aqY)SGQLY|q3R@$DDe1#9bEUDaY4NMnS;fA|H8zGq-aSnov+ zi;E*|34HY^zmk;fFO=Npef`@w%!KLg#fzSso zUU=alv}1-%Y)$TLJlB9~^MJ;KluNR-?updVo$f(8)leqE5T?PSG|g?<`bl+w+6%Z8 zX}J{Pih=JHxC8vbx9-lDIJk1LP40KDdLv(WFbQKn^ZfYs@i*LvlDjm&Ry68Pk#H#4 zd;FX>)Q}5vixc@8GGvq^fE9f-YVCt0JhKDcHd%rdl0U~wv%y1jLq%W0?C3K)hF3K?ujDbF^D8GSemy;5fP zpLc)k317=#>)emUBaZd=6k0C4J31oe?CTM#k{;4sSDNqB9TX$MXa05A#ML)zZmzvQ zGau8RC1Ur3tt|!~YL#BUOh{augp{=KXfPte<_*f=&#*9V?KFBD(i?~IJjYk48xmi9 z@hXgS#%-7cwWhI#mE0 zswkA~1aw(G#Vq&3@CH>Q21e&5vc`il%%rfA8!l*uQmEptv)+RT@@v7ea_gr)S)}1) zf}7b`oxkCoX034A%|$ks^mDQAiTg2n6d$if^2OQQYy0x;8+se`;If3Q-@j#(*T>*{C4BUU#E8(np`a4-CqAbY|@=LOki6z@i;kR^nexBgR;lle5kr- zd|Ui&Wmn>cw){x(owpEw(jv(iRCxTGH2;m2#Y@+H zRcCpQa)XPeQm|_Lx<}cDQi_8!PhnUv1_E*~RADBp2WUF;J>S2qejjMp1?~vIJr?5Q zmi^fM#m1ZUf*rv9HB%@~9^*Th@FUl-H}-c;*zhUDJUU5ksJT6uGiN%`!L zEiO)W77sz??PrDEQ{N)no8~jWd|p{o>_(@?@Q`*r@`s=U&X42798wzTQe1; zYIRJuwxsy@>#Zd1iEOx~7M%pBVeSKK?#WqJ2J?mmn|m?yRMt{dHCa67b+wZOg-Hla zdH2qgP0&7w*hnyr*NGex*f5oM1GvdQ!yYBfk3Rn_FMkPBbFCFt_$B7+$wwA!ma=7p zSfQFHYkHr!a?N|K-@agg;xzwJXMfCCaI@=1hhj~Ar9OP_;pA>Z&Y23daQpYC6S~B~ z^#h$&8Z0zXCHq_6sMg?A5tawu7r}Ri%J8l4+rBP^;t^jfveU$>;k{xJH`gDI(0AA$ zHO1~NA7Z~zT5vemio3y7M46zqo*S*Nc$mD~CJ{XDx$BbFr=XiP9w2Ib%kRyjo0}cnw3u*Fhz89)Gha5$M-R=q8s2|>F36NXnlK|` zCdxlqetgpOkjRhRXlt9ukE1tEL_Hhp4K|JUL*4jy#z*HQH=>a4egJlLd?ngkw)j+{ zLVDL=!20o5`+d{(tyG!xiGPFp5}MdCEM+6T!T8d>mobv#TTgEO){I;AJZF9!4YU$G zJxv)njCNvmJ?1D#2JZoPM?_r2xS@Bqi{W4!^k*x1O%`0f6*mFu zN-IX6-sY7_WdNF`4WO!3uU$eKHLrD~fbFQu$%%8hn122ONmaDU>=abGpI0qlZtRqS z|53zNWkih0j=r`-$5$l$Wi)@6!sz~MyWBorLz(4rggbO1hh2U;&HFt0^tCGXsjOn? zd$DwWa(hhiY4MAQA8>tW^Hi}Mj9%f-bzrHSCzCkHgU{(VOBcrCrYRd*^1-cS%0h(- z>YKkG%BQfB1&{V|FpjQll5mF5iyMeSoTb%|JNu@6SKjYNS7ChGw;l2BD6zB>c@{*6 z9q-)3p7916Mj_kzl5K0@9_dLij)-n=lm}>g&E0r^@g!SZcO`1^98iBADYLTl)ZE4~|Mwb&`7>{-t&d$@Amxb#H+D}YiEeR9m zyJB9_>-clVEO#!UL?852V`pK07+b;$6QBB!mhrixW7u*3C`MoNBu89v^)}{c*cc(e z=3o_L+=~R&b{V!g3ZruZIa#agXHmwByPjuNVV$PEqz^GHO4r*B(_ei!+ZEE4Un!Q@ ziLl_suZ-o&c(B?U(P(}adE$0U=|!o6ROWd46p*>UD9!N<2NkW!Q^b8bY+{|ULtdhdAr~5z6NzzA|?}uFf{cm`kI;vD_3<$>(bon zw;jGBa`_uAb%#iqf+1{^||Xm>$ee*E<aF`A0i#=ni6W_3)awI=ZQf)TBL`YM(7qP#I!9vvjx{K3?e$TpyD@1TP zM;d&01WW%yT+jB!x1h&{k!ObjgC%WFxwDx^1})*%xGj|>c&^#SE1jMQCj~4CoMnkq zvB;-mdGwi_o*V}_-sefJVTg4scC0@2eGZL}npEUSpxgAkltUyPu3pZD~TqnASwmIZy7inp5J>-PrGfvq({* z>Ep%jPLuCJBTB8atxN!{fSXtw6wVZ9D^1hQ7aJ!lKiA+xeg=9{M8%uYI&>|>xAsCW zud{1CSts%Ct&VaZVT)9Nb6WO^lRLGAabJ5(NEhxU0l(uO1@5g)efrcEBiz5xb)rC+V$xfl-;fP(({=5}F|WzT^}rk03PpGI5Y!Gq>iG`pGbCq4ce z{vqpO_v6^R_wKu&!n`ynDAuROQaVvk6fd@tVH2HS2<9tvUz@E|d@_KDH$D*^_WFD> zr49(>k7EWJ;mN>!AOtyK-^H~hQZ&&irR?Q}Fq7Z4+V z8IAXh>-v6Sp-1p|M=t*g2WNjrdX3fJ&o5P@$!(pp|4;98S(ehBz)(2dz8ECXN|n}d z1a4(TI+n}*Jua^9t$tp>1HQD>_T4{s`2lSkjiZ%b2ITgH5H8%djeeM|`CCM38G1Ff zKmGE*q|T|5ds}Xw|IWv;>#$5yhT~^Co(N>6_+aGCv$JjEnST;hx$3YKB8tA`pRc$mP~D;bHu04v zg?w~9RB&b_M~c!L***GTe)II8jyFdp+xwq&6#)=a@t5W>0b$`AydP0(YiF(d)JV!R z6?H6Jn#TlmBN&y>VQ%GOQb5;L z-%3-g>Ob}@6ssrm2daK^n7CEh>7k+FwAZY&Q>|8M0&P*dJg@|En(Tf1` zKwy-Q-gbN$FEN{^X1|#7nX?k1M5VkTuP}!BYm`HGsVFJyEX1NjpeY4|6W$Z7hH&>@ zfBW6^rFkVg<&X68t<6ZH6Uc#na@~RG$DDqChJCT4$+w5*J3C58>A#aP-^deF)l#r1|^HB#Y5 zx-ib??{<+6S0F3@I6ghKTK0uJ8%Xs_@EOKJrBjq}lH&LHX)oYW5jHmBDT}Ctz+cTI zGodMAVY9n?r2knfX)mx=dE``7k)=A(fD!%-oM{49_}0RjzNVG}vLHNQjaODBLK72J zsvDY`?6q>NI5m%{@6>^Q$`%*>GwBR}piOe|^9P{WvuXWNs}VkdF`fCs6VSQS{?D3A z!)9daqIr{TLZRwUSpn4ta`J(CP`=vLl3V2KS46P;IcjXLG&Cg8g8wQgpDLeL;2b&< z9%svH2=!)maxkr#DoIDst}kdU{5R+cP~A--VrPGahxd<&<68;A>8y2VRj~nNkG@>* z-bcCOSqyDDn){6muR=5tSlCHLu+luOh6VD@%NJldUccscaCWZ#chRN0!Gd5(NK0eV z>$?qf;vJ^QWOww%3 zXz`a4YE1?bY$-Gv6G7H|I%mycFkjmUWTwV#&nI^D!ES=fDu&wog^sGr?D)Cg7q85J zwvjJGwlpqWDDPKHObng*Yyrkt-gtxr7l&{%C%nN7gRdZNjglH&^aobfnQCp|YZvJ{27hLbc&CLm*7ZhL`+q_X(?ad1Q zeVdsBoKA-D?qu=eyZy~=jPA$#WUu1Jn_I@B93vU@Ri5DR{{uBrrcFJm9yyJQDCTs% zd4+|gvav6b(6!Wwx4Jb~Bg7(aYing)2x^|d;mD(xMKBup1s1fJR`F|=UP)z(bNdAR zwa{?Nf0Txgk1C5sAg>;H(2s;4^=WBoYrm;}h=GKHP}Z~B1FWsJXg9;uPA^lPC+O0G zse{oZ6npl&GzD;&c5D)M!cQa-p*tyacQ|#=s zlsKKZ(O@z39Qw8UQ9YI`_LgEN{&kJA4^rmQ%`Vo}S~yOO=nF?jCb!3X*&22Q@!-ge z402@UIOgJ8pA;bZUq-D!DGl-!K>%a~Kl1ziN0ApC%@iToO10LAlt09e_j^6i$DCQE z*z`tPSEbo7zMX1QRJ!&B1aIK2YXDXb5{Q^dyWY!eTM5kf~kW$k0#5A4^ zB=+`dL}y;50L$B8;f{>V+}e5v3wzwAeVnaU7k>(c%7ssms3l@ilKcbpk3RsB#%Ha- zuAm;b7?yo={d)qRYi$D>fzVlFpBHtttTn!rAA&v0u`p1y^!{I4*B#I1*2lS8rL=gp zHf_0=E_;<29h90ERWl)0s@Eo{n%5;QO3fHSs}og}iWwEeN@Ao+YowY+w6)VFV#NEn z^p4N_{{DQG#7IIL_vA0Q-NQUP8FkI&Sjv@%3(F3=(G7?xyH(mb4VEQE&@8d#Z)PCt8bkP8EP2yjnSHwZS;V%STrLDA4lqdEiB^FqukAS-T); z^ysJIqvtYH`h&B6nQB$xr(l&s#pK@7AYtvibq*Zx!tc=a=6z=EdXB27@gl--AhEGI z&8%bcx}coPk~?m0jKwgOXrfsKe?nO2s|Kl6s+*C?RW@$i(+oL)niF1R>!8f1`&$)6 zmnZZS=j_R@Y_5Bfml@RqksmuiJWOVpv-^>VaLIu(LQfyu+opjFAK+BHxKyg-Xk3mz zEMqZCE4?(1u9k0!=A4FRADjUeGSZ6!&#&`_dZ*b%j2AZA;tv#JIB{}G0#@74Pg0=gj@gqkK|O+Z2B&jh9~ zd|xB=M!d`Z-1^!F$TZ)kBZL-dNys?qLS|7n?$M^qkqHAIEjks`16x5~v)LEP8iE;X zrK^J+^*$O%B(Ht=ER9zzJ_hSf2xSfWP~xiVU$+da&(}b{FsQ1mH&ixF=4rM+A7Bz9 zA#`|7E^1&=Ad7V_>R4@C9F@k*>NUl84;7M--8_v&Gl9=3$S!`Ockzc0Z!;pXGvDr$wQu{Dv9EMdBJu@FMt>WAMB;&Ld@|Pk1nYfVj5L!N+)p8H79_Pv{94@;9sUGl z_6&sBbt4O+*+GKxov-T_Py@O+`D`x3cGt@pn2g8fh`KH?(4L*0@k~ zperx@*2vdRaO)%%d4LQ`nwmLIYq{e9A3xN2KXywHD1Ol~*~B&8{N0H$e={?JEZsl! zV4;bU&NDfQA78k4FX&4}$)DN}K-dayZ3ofgwl?DoMM~9@gqkn&YV#X)PR{z6FiwBY zuZv;^o1eqw7p1S%xeE^^^H!%rZ_*z}hg?5m_l2{O6g_`d#$P5yyk^0LSVY!>uCjyc z`LsDPVTJ2b`ebSI`4_(R*Qr*WrzZMJY=2E)VJ8lANSe@Ib$UWFFY1G8=9Z%_Cxac^ z|K;M&&T5;b3-77IS!kVs8pyg0=+v-+v{R34$)MVEAhx~A| z9osNfLNglJf6rSC(&ju4u%ki4ZQ}4lg@Nt9ABhqRfMM2Po|ttOOkd)U?OG_l1ht10 z?Snsn;*vgx@Pk(CCOVD}`o0q%Fl=L{q)hOfZGwS@}Be`$l-JCvL3$biKee9ulQGt!`+0yHR zZg+27xF5Xm1@l%;qds}<@3Jm^cuW2K!mHoBGbKr_x?AYli z5vi{iUfvMN?5`**MdLA<_0n2**x#*R#!NuxAHTUe5{a7hrH?p^XggV!1`O7n8nwYS z7k_O!C*{p|XYWH8z0ic?ZhulI>&8REjpr|8-O5g`Om{*xs3(S=sH0~VyGyTVarB2Y#FAL0!)?8s0JbqZFA z&x|p%Gh2)OE&Asf#Vuf1X1lNzNCUKT;{c1J^R3<$!h}yJPWTm# zmd?(Mt{e_9TN<+(3T8{p!kNl#PqJ`!IWGJ3MYoUwi&OYcX_J>~7^^z`Ui(G+=w~JqJ+ut_7~(_`hxitb*AC;^nVq-~_3iEB}sD zCI>zL(QMS8iTzgr$`CIg=^-jp1y3m_LmQj_kW8^skae)8Ri%_$ml|~8aLvv9dv_~G zc}%&26HIS9*LoyXnhOdwodtxD1<(puL3__QtqRPde?(5HW0m-B-K*Ws*`@=&_djA+ tjr`SdS!(a0+i - - - - - diff --git a/html/classcore_1_1TLSSession__inherit__graph.md5 b/html/classcore_1_1TLSSession__inherit__graph.md5 deleted file mode 100644 index 269f8b1..0000000 --- a/html/classcore_1_1TLSSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1a17344686e47104422238aeef1c3bfd \ No newline at end of file diff --git a/html/classcore_1_1TLSSession__inherit__graph.png b/html/classcore_1_1TLSSession__inherit__graph.png deleted file mode 100644 index 30f9f08c95ffb3fae85c8192a52643a5b8b501b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5889 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 - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TerminalSession Member List
-
-
- -

This is the complete list of members for core::TerminalSession, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clear()core::TerminalSession
clearEOL()core::TerminalSession
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getLines() (defined in core::TerminalSession)core::TerminalSession
grab (defined in core::TCPSession)core::TCPSession
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
NextLine(int lines) (defined in core::TerminalSession)core::TerminalSession
onBlockReceived(coreutils::ZString &block)core::TCPSessionprotectedvirtual
onConnected()core::TCPSessionprotectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSessionprotectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSessionprotectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSessionprotectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession
output(std::stringstream &data)core::TCPSessionvirtual
PreviousLine(int lines) (defined in core::TerminalSession)core::TerminalSession
protocol(coreutils::ZString &data)core::TCPSessionprotectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
restoreCursor() (defined in core::TerminalSession)core::TerminalSession
saveCursor() (defined in core::TerminalSession)core::TerminalSession
scrollArea(int start, int end) (defined in core::TerminalSession)core::TerminalSession
send()core::TCPSession
server (defined in core::TCPSession)core::TCPSession
setBackColor(int color) (defined in core::TerminalSession)core::TerminalSession
setBlockSize(int size=0)core::TCPSessionprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setColor(int color) (defined in core::TerminalSession)core::TerminalSession
setCursorLocation(int x, int y)core::TerminalSession
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession(EPoll &ePoll, TCPServer &server, std::string text="") (defined in core::TCPSession)core::TCPSession
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
TerminalSession(EPoll &ePoll, TCPServer &server) (defined in core::TerminalSession)core::TerminalSession
terminate()core::TCPSession
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession() (defined in core::TCPSession)core::TCPSessionvirtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
~TerminalSession() (defined in core::TerminalSession)core::TerminalSession
- - - - diff --git a/html/classcore_1_1TerminalSession.html b/html/classcore_1_1TerminalSession.html deleted file mode 100644 index f9760f0..0000000 --- a/html/classcore_1_1TerminalSession.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - -My Project: core::TerminalSession Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::TerminalSession Class Reference
-
-
-
-Inheritance diagram for core::TerminalSession:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for core::TerminalSession:
-
-
Collaboration graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

TerminalSession (EPoll &ePoll, TCPServer &server)
 
-int getLines ()
 
void clear ()
 
void clearEOL ()
 
void setCursorLocation (int x, int y)
 
-void setColor (int color)
 
-void setBackColor (int color)
 
-void saveCursor ()
 
-void restoreCursor ()
 
-void NextLine (int lines)
 
-void PreviousLine (int lines)
 
-void scrollArea (int start, int end)
 
- Public Member Functions inherited from core::TCPSession
TCPSession (EPoll &ePoll, TCPServer &server, std::string text="")
 
virtual void output (std::stringstream &data)
 
void send ()
 
void terminate ()
 
- Public Member Functions inherited from core::TCPSocket
TCPSocket (EPoll &ePoll)
 
TCPSocket (EPoll &ePoll, std::string text)
 
-void connect (IPAddress &address)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Member Functions inherited from core::TCPSession
-virtual void onRegistered () override
 Called after the socket has been registered with epoll processing.
 
virtual void onDataReceived (coreutils::ZString &data) override
 
virtual void onLineReceived (coreutils::ZString &line)
 
virtual void onBlockReceived (coreutils::ZString &block)
 
virtual void onConnected ()
 
virtual void protocol (coreutils::ZString &data)
 
void setBlockSize (int size=0)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-

Member Function Documentation

- -

◆ clear()

- -
-
- - - - - - - -
void core::TerminalSession::clear ()
-
-

Clear the display.

- -
-
- -

◆ clearEOL()

- -
-
- - - - - - - -
void core::TerminalSession::clearEOL ()
-
-

Clear the display from the cursor to the end of line.

- -
-
- -

◆ setCursorLocation()

- -
-
- - - - - - - - - - - - - - - - - - -
void core::TerminalSession::setCursorLocation (int x,
int y 
)
-
-

Set the location of the cursor on the display.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TerminalSession__coll__graph.map b/html/classcore_1_1TerminalSession__coll__graph.map deleted file mode 100644 index 236f734..0000000 --- a/html/classcore_1_1TerminalSession__coll__graph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/html/classcore_1_1TerminalSession__coll__graph.md5 b/html/classcore_1_1TerminalSession__coll__graph.md5 deleted file mode 100644 index 2f3b54a..0000000 --- a/html/classcore_1_1TerminalSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3c71f5c80db15ac7249ac999b7570c91 \ No newline at end of file diff --git a/html/classcore_1_1TerminalSession__coll__graph.png b/html/classcore_1_1TerminalSession__coll__graph.png deleted file mode 100644 index 7557e67d4139f691bd75d2890f626d36d02a39f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57962 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 diff --git a/html/classcore_1_1TerminalSession__inherit__graph.map b/html/classcore_1_1TerminalSession__inherit__graph.map deleted file mode 100644 index 40bafaa..0000000 --- a/html/classcore_1_1TerminalSession__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1TerminalSession__inherit__graph.md5 b/html/classcore_1_1TerminalSession__inherit__graph.md5 deleted file mode 100644 index e4ed190..0000000 --- a/html/classcore_1_1TerminalSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0730fba17781b9d63883ed05bfb4ca31 \ No newline at end of file diff --git a/html/classcore_1_1TerminalSession__inherit__graph.png b/html/classcore_1_1TerminalSession__inherit__graph.png deleted file mode 100644 index 9037b94370e4a0ee0ea2ee5de4d828a63c3e96ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10590 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 tog!|36u&-zCh|~j9s9*!1))d(TT! - - - - - - -My Project: Member List - - - - - - - - - - -
-
-
core::Thread Member List
-
-
- -

This is the complete list of members for core::Thread, including all inherited members.

- - - - - - - - - - - - -
getCount() (defined in core::Thread)core::Thread
getStatus() (defined in core::Thread)core::Thread
getThreadId() (defined in core::Thread)core::Thread
join() (defined in core::Thread)core::Thread
name (defined in core::Object)core::Object
output(std::stringstream &data) (defined in core::Thread)core::Thread
start()core::Thread
tag (defined in core::Object)core::Object
Thread(EPoll &ePoll) (defined in core::Thread)core::Thread
Thread(EPoll &ePoll, ThreadScope *thread) (defined in core::Thread)core::Thread
~Thread() (defined in core::Thread)core::Thread
- - - - diff --git a/html/classcore_1_1Thread.html b/html/classcore_1_1Thread.html deleted file mode 100644 index 9dff38a..0000000 --- a/html/classcore_1_1Thread.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -My Project: core::Thread Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::Thread Class Reference
-
-
- -

#include <Thread.h>

-
-Inheritance diagram for core::Thread:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::Thread:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

Thread (EPoll &ePoll)
 
Thread (EPoll &ePoll, ThreadScope *thread)
 
void start ()
 
-void join ()
 
-std::string getStatus ()
 
-pid_t getThreadId ()
 
-int getCount ()
 
-void output (std::stringstream &data)
 
- - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Object
-std::string name
 
-std::string tag
 
-

Detailed Description

-

Thread

-

This thread object is designed to be the thread processor for the EPoll object. It wraps the thread object to allow maintaining a status value for monitoring the thread activity. EPoll will instantiate a Thread object for each thread specified in the EPoll's start method.

-

Member Function Documentation

- -

◆ start()

- -
-
- - - - - - - -
void core::Thread::start ()
-
-

Start the thread object. This will cause the epoll scheduler to commence reading the epoll queue.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1ThreadScope-members.html b/html/classcore_1_1ThreadScope-members.html deleted file mode 100644 index 2bb2fb6..0000000 --- a/html/classcore_1_1ThreadScope-members.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::ThreadScope Member List
-
-
- -

This is the complete list of members for core::ThreadScope, including all inherited members.

- - -
ThreadScope() (defined in core::ThreadScope)core::ThreadScopeinline
- - - - diff --git a/html/classcore_1_1ThreadScope.html b/html/classcore_1_1ThreadScope.html deleted file mode 100644 index 1304ea1..0000000 --- a/html/classcore_1_1ThreadScope.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -My Project: core::ThreadScope Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::ThreadScope Class Reference
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1Thread__coll__graph.map b/html/classcore_1_1Thread__coll__graph.map deleted file mode 100644 index 902928c..0000000 --- a/html/classcore_1_1Thread__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Thread__coll__graph.md5 b/html/classcore_1_1Thread__coll__graph.md5 deleted file mode 100644 index 4a0cc87..0000000 --- a/html/classcore_1_1Thread__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7b27e6318b467af3b1df84944c1d56f9 \ No newline at end of file diff --git a/html/classcore_1_1Thread__coll__graph.png b/html/classcore_1_1Thread__coll__graph.png deleted file mode 100644 index a87930bf39a2b665e4a4796a653f9698bd25e1ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3093 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 diff --git a/html/classcore_1_1Thread__inherit__graph.map b/html/classcore_1_1Thread__inherit__graph.map deleted file mode 100644 index 902928c..0000000 --- a/html/classcore_1_1Thread__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Thread__inherit__graph.md5 b/html/classcore_1_1Thread__inherit__graph.md5 deleted file mode 100644 index 4a0cc87..0000000 --- a/html/classcore_1_1Thread__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7b27e6318b467af3b1df84944c1d56f9 \ No newline at end of file diff --git a/html/classcore_1_1Thread__inherit__graph.png b/html/classcore_1_1Thread__inherit__graph.png deleted file mode 100644 index a87930bf39a2b665e4a4796a653f9698bd25e1ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3093 zcmcIm`8U)J7ylx%6-6pzX`z&5EMpmx$Tnn>eTlIpYm7D9h%(l)%QlwjVI)fiV-HV; zvNMsTERTk<%uKfIyn3GJegA{^+;i_e_x^Ct=X}n&_kLmx;X0?-`Pl&gI0e(yG&;`6 zWA|odJdVY8Sg#x>76*MDP2lLa6|~?|0f3_$rm1f7G?$8TwczAy|6-&|}1w32e?!FN$ zhNBebV!H~wNPiLIqi;ta;!y{|U@(}-CpwqbL%#j=r(MaFMa73wbp!&z{7njy9f*mG zW9Q)5Te!NYdI7!Z`NyxnM@0L?38@C^rFpJHF!|pKsRF8lzPQp$bZXEzgrfV#tl|+R z%2>mXobzcsRj|+Uo}>P2R}KXMaM+ht$?WCb$X5wmW$C@$OlhTKP?8^wt2}%mzi>rQRgG8y5B!U;AcNfsUYQE<91tf9*S#dJUnh%bYek9wMd+Q^C{AG??BW8W>7J8?Ak`P+F?p?f!O~p954@Gbt zbXtJqEX-&O%kT{SOE0+p3SY_W=Ra@rWn{f}V+k$Oy9#0_vJ-RQ(UV*ukLWfUAAF{3 zkzPT{*|L^qa|@kLUwODSux?xW*Q&YVb$1xM#eY$wL_8PY6H4$}@rOMHrkltk&G zk{BNGp9b|tUms$46l=Hr4ju2L5u>978O}T|ov=Dms;Y53!YcBJv+XeA_er9*dliZ? zDh=^kI@8(JHoQLdnqxy2_;BsjB`t)_>rx4=w8w~MI>BxcGFq+BE9)}8+)2y|TKirk zar6V6%7Z#bFvIC2oqYWvq#nJJWmeFPO|fl@QadC#qCbPC>yo(jI7Z#CoOFS}S0}5C z6CP7bMR-9?dXCpXt!EM6zsF3EFWKJ;(}A8wqH?2Gdokzgn=!3@zL`gLwf8g9ox&*6 zyCjXQQY-v7(^uLb_UKzB%uR9FF8-j7Rb;O4LVI@2&X!bE=@c8IhJ9{nX-Um_Zt&4= ztg*l0lHN{(>k;=R7k}oHH-aGvNFxid!z(|spW-m)du~LDtuCV?0Q8McWk?|i6~*wi z^_$msOL6)R&a*F7but(sgj!KID$d!;(L!Rbp%SiQ-_G@3 zq~#b!^el*_2C3Z+#(S6!dw{+UzGx2dG=i8h}aR$M5vyrR#D3(P$Emtt0PG3 zOT&?!2pd;ry5c!n$aF}WXgo1seTPEn(-C=L7;yAw@lGoABj+gtfns#0vs$P!U0f+D z$wTsX{mq}uDm=wiBPCh-4*e$kYt&p|c3#~Oh^(-TywgEoYi)NlCUgo> zy=id&Bo8{7JO)KLf0=zxZ?3F4W+ur13PSi++YL*RJ(Hc+zfmyvho(Mny<9)5U8r}jPgHB?C}+)y&xYV+{8a)C3% zv&%5jYT<$Mr*!c^Xs-Xz(A$aASiapVHS#Jd^@xZ}H)r-gsp>s3qLr%>$OH^d9V)4{ zKAc3dXmjPx&u94i=`sK;ED)he&3}5uMd=qV3<7`>e1C&v5UW{C)nqDIh7%peiSdEn z&3hj;-txBk#a4dTWx_7Q<>b6RJ8hHdE})Bw&biAZDpMLsH8l?W)bWVh>Pb-OBTr8U zNo{^^Ou)qGwf=!hivRwJ%b$9ii^_GE3P^AgDcpP_FT0eK(+XE1`^3ZWTMe?Xl&=-0 zY*AFJ*gsA;E}MvXfTj5EJo+k3@sm((@uOUQ8%t9ruRbYh%zHlPOC%gZXfmU-vb*4Bb+4fpYifG5+1ae-!dl<_w+$~exAF~#)0GR zqDkG*_mHdV3q&yA6Y-VxpF9bhOMFv4o+pgX3kE1lT#^z${?pGOU}xJ%n8(s%QsZ2T z{AVjp1@3I6D8WYyr-k&yXX052P4ub(&e=1eM#FCzQO`SK&?_UzK{t3rVPDZ zzD6Wizf7Xicpz(4+VGRDYEheuh%i*yEOBJodmwL&N2YlHb&l+vQEx{Fsb^5@)B&9E zBn3R{IT1{#*h>aIbwv@kM`Cf+vUS@8XODwh4W6TD5!=qJ=kA^9^hv+6GW|C*K&z>R zJdzqgI$z&(*TpgfC6-Z&=ogWe5?55*TF6aEvzg5>51{pPs{?>#Dt}W;+m%~+IjEb5 zo&m@w&?y9?Dd)ruOW(zPNu20|9vn1NI(pn7)bYEDT;_{QbO&82X>B0o6Q!MpBNkD$4T5az!y` zM)|^8%pL2O#Xr@(_MChjIX<>mEr8|PGv*c0f?fEgWM_9Tj)`n*T{|wIz|x|MJpSpL zed>mGXlD3+we7`|HSPh`D$Wk02Nu4)ZG!;!iOYyYW%3`9E6-zZ>;$@5cPO!4md=DM z-)Bv*vYJSsuJksB*xU706|+Hf6j!K5)WkI@9Kl)95yTtwe{rs>Z&zqPOxz4Iulz){02{r)UtxXaYbJl~G*NBv zqblDz?qqG%aL0ySX9P&QO+d;zBT;uf^C2#55 zvJGrjuQoXla|6Iea=fBfaPyJj#&8%lv!Q1rNCq^oG7L}-m?U$dpjH;0)5LI}`ifNh zIR*KdzAe?4@}J9XO~_=ItMl3)h|^7?w@iEA3$3qxTbw)fdtC=@GCXzz_rg=mz!S{l zwA<|;Xo1U+8}GJPUK!)yl9qT8MaA>~dIWw{QJ diff --git a/html/classcore_1_1Timer-members.html b/html/classcore_1_1Timer-members.html deleted file mode 100644 index d71eb6d..0000000 --- a/html/classcore_1_1Timer-members.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::Timer Member List
-
-
- -

This is the complete list of members for core::Timer, including all inherited members.

- - - - - - - - - - -
clearTimer()core::Timer
getElapsed()core::Timer
getEpoch() (defined in core::Timer)core::Timer
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprivatevirtual
onTimeout()=0core::Timerprotectedpure virtual
setTimer(double delay)core::Timer
Timer(EPoll &ePoll) (defined in core::Timer)core::Timer
Timer(EPoll &ePoll, double delay) (defined in core::Timer)core::Timer
~Timer() (defined in core::Timer)core::Timer
- - - - diff --git a/html/classcore_1_1Timer.html b/html/classcore_1_1Timer.html deleted file mode 100644 index 37e1526..0000000 --- a/html/classcore_1_1Timer.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - -My Project: core::Timer Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::Timer Class Referenceabstract
-
-
- -

#include <Timer.h>

-
-Inheritance diagram for core::Timer:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for core::Timer:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

Timer (EPoll &ePoll)
 
Timer (EPoll &ePoll, double delay)
 
void setTimer (double delay)
 
void clearTimer ()
 
double getElapsed ()
 
-double getEpoch ()
 
- - - -

-Protected Member Functions

virtual void onTimeout ()=0
 
-

Detailed Description

-

Timer

-

Set and trigger callback upon specified timeout.

-

The Timer is used to establish a timer using the timer socket interface. It cannot be instantiated directly but must be extended.

-

Member Function Documentation

- -

◆ clearTimer()

- -
-
- - - - - - - -
void core::Timer::clearTimer ()
-
-

Use the clearTimer() to unset the timer and return the timer to an idle state.

- -
-
- -

◆ getElapsed()

- -
-
- - - - - - - -
double core::Timer::getElapsed ()
-
-

Use the getElapsed() method to obtain the amount of time that has elapsed since the timer was set.

- -
-
- -

◆ onTimeout()

- -
-
- - - - - -
- - - - - - - -
virtual void core::Timer::onTimeout ()
-
-protectedpure virtual
-
-

This method is called when the time out occurs.

- -
-
- -

◆ setTimer()

- -
-
- - - - - - - - -
void core::Timer::setTimer (double delay)
-
-

Use the setTimer() method to set the time out value for timer. Setting the timer also starts the timer countdown. The clearTimer() method can be used to reset the timer without triggering the onTimeout() callback.

-
Parameters
- - -
delaythe amount of time in seconds to wait before trigering the onTimeout function.
-
-
- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1Timer__coll__graph.map b/html/classcore_1_1Timer__coll__graph.map deleted file mode 100644 index 7a68e6d..0000000 --- a/html/classcore_1_1Timer__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1Timer__coll__graph.md5 b/html/classcore_1_1Timer__coll__graph.md5 deleted file mode 100644 index caa7ab9..0000000 --- a/html/classcore_1_1Timer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -78d90d95e4a8b85df71667f892d3425f \ No newline at end of file diff --git a/html/classcore_1_1Timer__coll__graph.png b/html/classcore_1_1Timer__coll__graph.png deleted file mode 100644 index bdb074645d8e4368e0ab31c9edcc852b39a7e525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6805 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 O0Lt>}ay2rRVgCWc)8<+L diff --git a/html/classcore_1_1Timer__inherit__graph.map b/html/classcore_1_1Timer__inherit__graph.map deleted file mode 100644 index 0bf826e..0000000 --- a/html/classcore_1_1Timer__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/html/classcore_1_1Timer__inherit__graph.md5 b/html/classcore_1_1Timer__inherit__graph.md5 deleted file mode 100644 index 0f52868..0000000 --- a/html/classcore_1_1Timer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64e9d85be9082e6c2d3ed33b1e5faab9 \ No newline at end of file diff --git a/html/classcore_1_1Timer__inherit__graph.png b/html/classcore_1_1Timer__inherit__graph.png deleted file mode 100644 index f7de0c0f5b7c1b85600f1647bcd6bcffd9be2980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2723 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 Q`-o-$u4kfK33GV#7vl;dt^fc4 diff --git a/html/classcore_1_1UDPServerSocket-members.html b/html/classcore_1_1UDPServerSocket-members.html deleted file mode 100644 index 8640d42..0000000 --- a/html/classcore_1_1UDPServerSocket-members.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::UDPServerSocket Member List
-
-
- -

This is the complete list of members for core::UDPServerSocket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data) overridecore::UDPServerSocketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out) (defined in core::Socket)core::Socket
core::Command::output(std::stringstream &out)core::Commandvirtual
processCommand(std::string request, std::stringstream &data) (defined in core::UDPServerSocket)core::UDPServerSocketprotected
core::Command::processCommand(coreutils::ZString &request, TCPSession &session)core::Commandvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
sessions (defined in core::UDPServerSocket)core::UDPServerSocketprotected
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
shutdown(std::string text="unknown")core::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
UDPServerSocket(EPoll &ePoll, std::string url, short int port, std::string commandName) (defined in core::UDPServerSocket)core::UDPServerSocket
UDPSocket(EPoll &ePoll) (defined in core::UDPSocket)core::UDPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~UDPServerSocket() (defined in core::UDPServerSocket)core::UDPServerSocket
~UDPSocket() (defined in core::UDPSocket)core::UDPSocket
- - - - diff --git a/html/classcore_1_1UDPServerSocket.html b/html/classcore_1_1UDPServerSocket.html deleted file mode 100644 index e4c9b08..0000000 --- a/html/classcore_1_1UDPServerSocket.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - -My Project: core::UDPServerSocket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::UDPServerSocket Class Reference
-
-
- -

#include <UDPServerSocket.h>

-
-Inheritance diagram for core::UDPServerSocket:
-
-
Inheritance graph
- - - - - - -
[legend]
-
-Collaboration diagram for core::UDPServerSocket:
-
-
Collaboration graph
- - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

UDPServerSocket (EPoll &ePoll, std::string url, short int port, std::string commandName)
 
- Public Member Functions inherited from core::UDPSocket
UDPSocket (EPoll &ePoll)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- Public Member Functions inherited from core::Command
virtual int processCommand (coreutils::ZString &request, TCPSession &session)
 
virtual void output (std::stringstream &out)
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

void onDataReceived (std::string data) override
 Called when data is received from the socket. More...
 
-int processCommand (std::string request, std::stringstream &data)
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- - - - - - - - -

-Protected Attributes

-std::vector< Session * > sessions
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
- - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Socket
-bool reset = false
 
-

Detailed Description

-

UDPSocket

-

Manage a socket connection as a UDP server type. Connections to the socket are processed through the session list functionality. A list of sessions is maintained in a vector object.

-

Member Function Documentation

- -

◆ onDataReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::UDPServerSocket::onDataReceived (std::string data)
-
-overrideprotectedvirtual
-
- -

Called when data is received from the socket.

-

The onConnected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The onDataReceived method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN

-
Parameters
- - -
datathe data that has been received from the socket.
-
-
- -

Reimplemented from core::Socket.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1UDPServerSocket__coll__graph.map b/html/classcore_1_1UDPServerSocket__coll__graph.map deleted file mode 100644 index fa03037..0000000 --- a/html/classcore_1_1UDPServerSocket__coll__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/html/classcore_1_1UDPServerSocket__coll__graph.md5 b/html/classcore_1_1UDPServerSocket__coll__graph.md5 deleted file mode 100644 index 5937848..0000000 --- a/html/classcore_1_1UDPServerSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -035ad54302d909c4c89d3db4330068a5 \ No newline at end of file diff --git a/html/classcore_1_1UDPServerSocket__coll__graph.png b/html/classcore_1_1UDPServerSocket__coll__graph.png deleted file mode 100644 index b126ca11bd78e712d9867f59fee30c9e352ff862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14992 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 - - - - - diff --git a/html/classcore_1_1UDPServerSocket__inherit__graph.md5 b/html/classcore_1_1UDPServerSocket__inherit__graph.md5 deleted file mode 100644 index 53eb376..0000000 --- a/html/classcore_1_1UDPServerSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -118e122dd91472e9619b8e9fce36868c \ No newline at end of file diff --git a/html/classcore_1_1UDPServerSocket__inherit__graph.png b/html/classcore_1_1UDPServerSocket__inherit__graph.png deleted file mode 100644 index ae2849d23c7c87c868abb3eb8f640186bf17ea43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9068 zcmd6Nbx>T-vo8q=76=3h!QFxd4<4L_1%f*yxVzgXxVtSL+&%b0aCgh%WYNXl;cmY7 z*8Sc4d++`K>QtRG)ipKKr~A_~-4pg%Q3eZx7y}6j2@4=Ase**`j2ba+MMFWnJ984k z5FZpHc^OHhr@v1Qq$mLii4qAQDW>L;aj@*^1Dt>AKbg-QYzG(ts4okoCUuM-W>xA7 ztmKWXOBU31>t|0{3mQtR-b+>dR13?5r>IzIdRtmo(1lTk#>TpCWvx;);ArF6#oq`~ z#N5Y?WO8MDAA+xzyq%AT6qpKd#L*IoE0|RWy3vb-q>A4Pr6~|rG-g={4;7c%aqsY@HCn&zo*qo%rE)B`zDu3Udp1t! z&^t*dYD#=Xvmx1apjqd1UxuVNgk_XXcX8y^V{n7yDEYG;p64w##0T%}F*Tf; z_#SCJ^u_m3_lP7Ub*hw`E*&)d_%2CtIgI5<3#{b6`bELq9+(zvOxEnBzai51GR`l} z(l-5c6YAyDO5d}NMf$uZs6HxFa_>_0=IZcHB&=fi zO4a#~9b4bBiRBudnY+c%j{GRNSv3Cl@EsVxI;OoMq)w0n<^+74Em7XVe1Ma$C%@Xe&YvV1IerLN7#7J1*R>FE6`X?iBS)e;TW&_Ub7)#SWKu7FGV*$6gImt4=nwoq94U?r#$2& z8CCu#*D6x@2a7woD5spdt8ET_NRb8mqvq^#M?G;h7n3RvU50j1--S(SY4Si>2APmr zoK?lluk1&S8gMZavN+l#7iQWg} z_DlP;fh6Oblk^?c-@xp|C`)pew)J@1!m1*ZDT;u|i(WNF|BjP(?c@PuuZ4k%EheM1RzbEMZh zMq5JZjoh<)jC_`x6<;+oLy*t1f%zpJS-}j1;z8gnT~Nf!*G{Tr`hsR5xuxq+R58!| zv#J+j7vY~Wm8Lp3N%fw-jJkPh^m}s?+@Cq~ss?%^U**;w?C9LRgLy?6J(TRx_5{`% zOH%|_MfF$eQ64apo7~HAeRQCU3mnh~UVCspX&ikjQ`rh>)T~4nwmvYHJObG8J7?wx zmSsR&Bi|f|el=w=@u(GWd8@CBZF1Sy9Vo>R?*k+C-tv_g04TjzX9`wD;VEboapzAi zgk?klJ-@ybQ$VRc%*}FKre{C(w9dG>qcAc-1#D<&yGC9WZ-*wT$aU1JD(s(vO4SU^ zH}~~bAWO~-0;JA+Kv|XF>{hZ7gh|q}fl=(C)dCoiI2DqVeRw2AHtn@gCf;h0TwhK|pyY=qob_7}sf`%3JvhD)EbT@H;6 zsuFmesL$Tr3A>MP=j$Q_dG-Y|7XhDtrk*tZYI&x1VgnOCH=7idU8X7L#UztZNNV+T z6?glNUxwBRNui`1x^39z!O_{->4X+HYLO-_D~l#3CMKOiEt$6AFHIG={_n05o%&xy zFErOXxEWPXUEJnX8mmFu$Fg*vt+A}Am)zk5&Ri|{R5s$tsLBow4jOznBc2{J$dvSE zbw6CuzB1SD55bqZtY%BJPMncmQ#|6p4<{#X@�|zc>Lsfn^ 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 - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::UDPSocket Member List
-
-
- -

This is the complete list of members for core::UDPSocket, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - -
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
needsToWrite() (defined in core::Socket)core::Socket
onDataReceived(std::string data)core::Socketprotectedvirtual
onDataReceived(coreutils::ZString &data) (defined in core::Socket)core::Socketprotectedvirtual
onRegister()core::Socketvirtual
onRegistered()core::Socketvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
output(std::stringstream &out) (defined in core::Socket)core::Socket
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
shutdown(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll, std::string text="")core::Socket
UDPSocket(EPoll &ePoll) (defined in core::UDPSocket)core::UDPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~UDPSocket() (defined in core::UDPSocket)core::UDPSocket
- - - - diff --git a/html/classcore_1_1UDPSocket.html b/html/classcore_1_1UDPSocket.html deleted file mode 100644 index a0ab9aa..0000000 --- a/html/classcore_1_1UDPSocket.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - -My Project: core::UDPSocket Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::UDPSocket Class Reference
-
-
-
-Inheritance diagram for core::UDPSocket:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for core::UDPSocket:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

UDPSocket (EPoll &ePoll)
 
- Public Member Functions inherited from core::Socket
 Socket (EPoll &ePoll, std::string text="")
 
virtual ~Socket ()
 
void shutdown (std::string text="unknown")
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket. More...
 
-int getDescriptor ()
 Get the descriptor for the socket.
-
 
bool eventReceived (struct epoll_event event)
 Parse epoll event and call specified callbacks. More...
 
int write (std::string data)
 
-void write (char *buffer, int length)
 
-void output (std::stringstream &out)
 
virtual void onRegister ()
 Called before the socket has registered with the epoll processing. More...
 
-virtual void onRegistered ()
 Called after the socket has been registered with epoll processing.
 
-virtual void onUnregister ()
 
virtual void onUnregistered ()
 Called when the socket has finished unregistering for the epoll processing. More...
 
-bool needsToWrite ()
 
- - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Socket
-bool reset = false
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
-int getBufferSize ()
 
virtual void onDataReceived (std::string data)
 Called when data is received from the socket. More...
 
-virtual void onDataReceived (coreutils::ZString &data)
 
virtual void receiveData (coreutils::ZString &buffer)
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-bool shutDown = false
 
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1UDPSocket__coll__graph.map b/html/classcore_1_1UDPSocket__coll__graph.map deleted file mode 100644 index c9fc2ac..0000000 --- a/html/classcore_1_1UDPSocket__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/html/classcore_1_1UDPSocket__coll__graph.md5 b/html/classcore_1_1UDPSocket__coll__graph.md5 deleted file mode 100644 index e438ab8..0000000 --- a/html/classcore_1_1UDPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c3f1eff5f9e23ac18526a5ae94acc1be \ No newline at end of file diff --git a/html/classcore_1_1UDPSocket__coll__graph.png b/html/classcore_1_1UDPSocket__coll__graph.png deleted file mode 100644 index d545d436fd4cecdebf003dcf7ae9690e228f3b74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7546 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 diff --git a/html/classcore_1_1UDPSocket__inherit__graph.map b/html/classcore_1_1UDPSocket__inherit__graph.map deleted file mode 100644 index 9e3bad0..0000000 --- a/html/classcore_1_1UDPSocket__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/html/classcore_1_1UDPSocket__inherit__graph.md5 b/html/classcore_1_1UDPSocket__inherit__graph.md5 deleted file mode 100644 index ac7a468..0000000 --- a/html/classcore_1_1UDPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a322f59af8a5eb543fb07f45ca3ea19e \ No newline at end of file diff --git a/html/classcore_1_1UDPSocket__inherit__graph.png b/html/classcore_1_1UDPSocket__inherit__graph.png deleted file mode 100644 index 5d2cd224d9b856fb18f7fa29ca04c8c35a2d148f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6423 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 - - - - - - -My Project: Class Index - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
C | E | I | O | S | T | U
-
-
-
C
-
Command (core)
CommandList (core)
ConsoleServer (core)
ConsoleSession (core)
-
-
E
-
EPoll (core)
-
-
I
-
INotify (core)
IPAddress (core)
IPAddressList (core)
-
-
O
-
Object (core)
-
-
S
-
SessionFilter (core)
Socket (core)
Subscription (core)
SubscriptionManager (core)
-
-
T
-
TCPServer (core)
TCPSession (core)
TCPSocket (core)
TerminalSession (core)
Thread (core)
ThreadScope (core)
Timer (core)
TLSServer (core)
TLSSession (core)
-
-
U
-
UDPServerSocket (core)
UDPSocket (core)
-
-
- - - - diff --git a/html/closed.png b/html/closed.png deleted file mode 100644 index 98cc2c909da37a6df914fbf67780eebd99c597f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/html/doc.png b/html/doc.png deleted file mode 100644 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/html/doxygen.css b/html/doxygen.css deleted file mode 100644 index ffbff02..0000000 --- a/html/doxygen.css +++ /dev/null @@ -1,1793 +0,0 @@ -/* The standard CSS for doxygen 1.9.1 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - border-right: 1px solid #A3B4D7; - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} -td.navtabHL { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: #A0A0A0; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: black; -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.odd { - background-color: #F8F9FC; -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/html/doxygen.png b/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8aa003bed8bb2a69e8f0909592fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3779 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 diff --git a/html/doxygen.svg b/html/doxygen.svg deleted file mode 100644 index d42dad5..0000000 --- a/html/doxygen.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/html/dynsections.js b/html/dynsections.js deleted file mode 100644 index 3174bd7..0000000 --- a/html/dynsections.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -My Project: File List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - -
 Command.h
 CommandList.h
 ConsoleServer.h
 ConsoleSession.h
 EPoll.h
 INotify.h
 IPAddress.h
 IPAddressList.h
 Object.h
 SessionFilter.h
 Socket.h
 Subscription.h
 SubscriptionManager.h
 TCPServer.h
 TCPSession.h
 TCPSocket.h
 TerminalSession.h
 Thread.h
 ThreadScope.h
 Timer.h
 TLSServer.h
 TLSSession.h
 UDPServerSocket.h
 UDPSocket.h
-
-
- - - - diff --git a/html/folderclosed.png b/html/folderclosed.png deleted file mode 100644 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/html/functions.html b/html/functions.html deleted file mode 100644 index 3817e37..0000000 --- a/html/functions.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - -My Project: Class Members - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- a -

- - -

- b -

- - -

- c -

- - -

- e -

- - -

- g -

- - -

- i -

- - -

- m -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- w -

- - -

- ~ -

-
- - - - diff --git a/html/functions_func.html b/html/functions_func.html deleted file mode 100644 index ff8d96c..0000000 --- a/html/functions_func.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - -My Project: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- c -

- - -

- e -

- - -

- g -

- - -

- i -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- w -

- - -

- ~ -

-
- - - - diff --git a/html/functions_vars.html b/html/functions_vars.html deleted file mode 100644 index 5ebf48c..0000000 --- a/html/functions_vars.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: Class Members - Variables - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/html/graph_legend.html b/html/graph_legend.html deleted file mode 100644 index 4150f7a..0000000 --- a/html/graph_legend.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -My Project: Graph Legend - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Graph Legend
-
-
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
-
class Invisible { };
-
-
/*! Truncated class, inheritance relation is hidden */
-
class Truncated : public Invisible { };
-
-
/* Class not documented with doxygen comments */
-
class Undocumented { };
-
-
/*! Class that is inherited using public inheritance */
-
class PublicBase : public Truncated { };
-
-
/*! A template class */
-
template<class T> class Templ { };
-
-
/*! Class that is inherited using protected inheritance */
-
class ProtectedBase { };
-
-
/*! Class that is inherited using private inheritance */
-
class PrivateBase { };
-
-
/*! Class that is used by the Inherited class */
-
class Used { };
-
-
/*! Super class that inherits a number of other classes */
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private:
-
Used *m_usedClass;
-
};
-

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

-
    -
  • -A filled gray box represents the struct or class for which the graph is generated.
  • -
  • -A box with a black border denotes a documented struct or class.
  • -
  • -A box with a gray border denotes an undocumented struct or class.
  • -
  • -A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • -
-

The arrows have the following meaning:

-
    -
  • -A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • -
  • -A dark green arrow is used for protected inheritance.
  • -
  • -A dark red arrow is used for private inheritance.
  • -
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • -
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • -
-
- - - - diff --git a/html/graph_legend.md5 b/html/graph_legend.md5 deleted file mode 100644 index 8fcdccd..0000000 --- a/html/graph_legend.md5 +++ /dev/null @@ -1 +0,0 @@ -f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/html/graph_legend.png b/html/graph_legend.png deleted file mode 100644 index 58209e0566fba78f322b9d4b4fa5c6aa90e77588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21469 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 XOI9jW#YzWwl0$Pt?-rt5$2R<5fF?o7 diff --git a/html/hierarchy.html b/html/hierarchy.html deleted file mode 100644 index b68e9f6..0000000 --- a/html/hierarchy.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -My Project: Class Hierarchy - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
- - - - - diff --git a/html/index.html b/html/index.html deleted file mode 100644 index 3b71ffc..0000000 --- a/html/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - -My Project: Main Page - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
My Project Documentation
-
-
-
- - - - diff --git a/html/inherit_graph_0.map b/html/inherit_graph_0.map deleted file mode 100644 index 3650bdf..0000000 --- a/html/inherit_graph_0.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/html/inherit_graph_0.md5 b/html/inherit_graph_0.md5 deleted file mode 100644 index d56a1b1..0000000 --- a/html/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -f2b3d43ad4cf00974b8ca278ded9a452 \ No newline at end of file diff --git a/html/inherit_graph_0.png b/html/inherit_graph_0.png deleted file mode 100644 index 3d821374a98fdb732a76c5abbc6fe4c740f008f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41510 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 diff --git a/html/inherit_graph_1.map b/html/inherit_graph_1.map deleted file mode 100644 index edcb801..0000000 --- a/html/inherit_graph_1.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/html/inherit_graph_1.md5 b/html/inherit_graph_1.md5 deleted file mode 100644 index d70011b..0000000 --- a/html/inherit_graph_1.md5 +++ /dev/null @@ -1 +0,0 @@ -d019270962bf71fea9f33cb5799a0ff7 \ No newline at end of file diff --git a/html/inherit_graph_1.png b/html/inherit_graph_1.png deleted file mode 100644 index 8d040636f43b40a4f8da9c62d5e6e8c365bb2529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1672 zcmV;326y?1P)+#EAu_oyW^S@TiE00$wI44uo1N6yzohXlauD(E_EmQYu3h z^ZP4#n)l1oJjs{$q$z}97$CqG@P{@)(Ekvj;t(QK972SOLo{Spa&vPdBO^bQ6#}&h z4i2`rx9?i*ai#KjytK5m0k=f(UZka^@pwF0MdR&_Qd3h0$`3(506~zPLflhv2oWj{ zAwtC=A5o|%@7OG=>#wimAB!r}|G#`hp$-<%7mcM=WmP_fr64~kjP?GEX( z4g^6E1e0`zj<#76n$AbMH${rWZM5Jao{54%bj8W~?*bkZe7pJT8Uy*BwF~6=!D-Yl z6C2e2B7-|rc}S*#*&+<>sC#g7*2}|QtK(jx(oaP9;*%N{_}SiLC6}Y`9OENEolvoc zyc6qPEa?<7&3uM`{9i2?06@%74_!RjNMA>1$mprw5!b5`002OqhTG^l2Su!~Hyx@& zS;B6`8uL$Xa2`K`qD?lioD;-;-VOi&04X_ON45^h7t1XxF-u+jDfsB7S1x*`B04!Q6zX9+OHVy`Hw(q43?aKD}2{DgWG!-Thk)j2kp z3~V-API(*glf9G34u?w-S+V2Mo{40qsB)<&F4{MRY`ecijERfGrjVx{d@h#g#o;y- z=i|K2+P3udqb#=E5h>jnTFZ1Nn+9f!dM+a^6@PBGqf%XCDi93AkcwljmK!r$Fbu=c zs>B5rD>#i3SGy4ZEj)IqYxET)o7cJVMs-iiMa`=sS-$L zAecUqPLkB}x%{^40mdXqg6`Z?uLJ_+6V=;0uZVKef?!SBgf$tAz;mp%CNKcV(4XhlDJi@tLT%tiQ0x`;s(Pi*p^_Lz3}M;dl|7Px>4pYEZh5s-M7U*KFoH3nYjEk|BN>h| z)bn7~$ee;`QN}S-N{FzjvhYHvhp`3#KzNt+8y51gqie{v444pZ) zTyE!q67wo5kxsXYbd}xej$61ZA^pz%yH}!IxqICFQ|d7#Vy`Hyf*=TB@9~;Z-$S+X zSv&pN;cvq;%9`5WaC2e78-KO!`mSooa z%AXw>`Xilo@m;)ZB%3MIRdcK5v}X0N%pW`~Y1C0O!fO}AM)}eqg(3i;^On(x=7imk zy3ba{RnTzHErBCBU(q#T^}63aH%bJ94e - - - - - diff --git a/html/inherit_graph_2.md5 b/html/inherit_graph_2.md5 deleted file mode 100644 index 281e267..0000000 --- a/html/inherit_graph_2.md5 +++ /dev/null @@ -1 +0,0 @@ -f01cc99cf9042d3e6f8a4717869b8981 \ No newline at end of file diff --git a/html/inherit_graph_2.png b/html/inherit_graph_2.png deleted file mode 100644 index 14eb4bb2aa7096c8395c3046ec748a8fd53ab0b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7990 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 EAFA)(%m4rY diff --git a/html/inherit_graph_3.map b/html/inherit_graph_3.map deleted file mode 100644 index 3e03bc7..0000000 --- a/html/inherit_graph_3.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/html/inherit_graph_3.md5 b/html/inherit_graph_3.md5 deleted file mode 100644 index b401073..0000000 --- a/html/inherit_graph_3.md5 +++ /dev/null @@ -1 +0,0 @@ -15fa81b48b99ac4af8ab5eec3674b2a5 \ No newline at end of file diff --git a/html/inherit_graph_3.png b/html/inherit_graph_3.png deleted file mode 100644 index 83da18a94851267c6d37b69adbc4f6610428df5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1763 zcmV<91|0c`P)w&cnaPM0?M;grHcAq1?0AB5j=nx?gY7nViGpH{UZ@W2q7RZxOP8( z?f!OW=KGuP%+4g6fCz#B7^np|)&ej-3CurqgZYPUF#phvg6K&>K|yqM^jJy3kOf;? z+mMiuzSDm5udc4{+O=zPmxLiJg@uI$1qGrJg@HF^WMs%o561BD@bD0eVCx^c!Tduv zn1ATz%kqz38DT+Laiwdlb;yq|%fC?vu8Fp%EI!jRjPHm?P~;Q%-2LmRNC{o~HFX?O zc|6U`^{2$#MxH#I#~Fp>b!D&91f|@=e|6M`vg|@TB72ch6eyQgMhYi)w_8BAR>G z)bAK>C@F3<_SoWMuA@Sr=zg_eL)`U)&Po8#n;&ALw;@O9B+Q6$ptvNn1rq@2EQw!Z zsjo^TY0hxlpVJHj0D!dSMtNBps41&xPO<;)cy0?kSR!JAQ_DX-4EdE27UXZYM)a?o zo4IDr&Z6#{Yt?ZeNU)Etf%-i^rFBbal;2#M8j+}GC)u|D&StT{C99TAeyoXnFXU7(^+8KZN!>7I1CNp8^ zS^Vbkh9xN#t!-6zqnsOV-De?#BqAo*i!@Z_imNU^K5R{1dcF-t5N=+Gk!X)f?UuZ( zrw+fBGAu+{hZu%12t7Y! zPO>`u5<;MgaC4H)(N~ZlUJ+rT;&ig^L)rIt*6U3UeZ-T}9Eb7evA`u3MjFaWss@&; zcBGVdAqc|D3pUnWf0rw`hhKBTp1dfD1tU;JxViGIy-#{Ybj*u=!>fq2(r`NRq(fA+ z#6-jdBmC;)bIC5rY*=_nLgjqu<&h8mi4~FBEh>(2wSo(9OR@{uHtKbMC6b`i>2x|> zG&1b@$8V}{CKykq_A3apn%D%Ik&ZBkH#9Z`*i9_KjKOK^YU2fE8<-969|Y;+K>^B( zPB*exEz%|yfwm|#@n%W&+pgAUSNw>XelEe;(mx*H4JH{V^d0Jh>?Ss7y5&-mW5xEx z)>aO#Yk$31)`kp{h?rnmDwm>OYPW!D>S}@updvvDfFNijJJw-i(dW8wY9c>*SbLZDG>LB4^-J3c@OGgU_C{J0r=lq>VC55+R<}>%X1g5tk5)%;< zJOGK6gCGbXl75CVRJV)*!}rg0wg21~$2LaXt?uN!W9BCX9msyKFx|sv*5A?Fk{-Y1 za##g1znrYH@?B*jK8W$teFN=E4{eJ7i_yvBv@uGqAM)9LqYD^x|H3@u@4n;g{b#l9 z+}`f`;)^HJUaOgz(-iQ=vrKspE~UNf>g{RFkKcQy66$LNDnGR=zL3S?u!|FRCe+xk zcGHLM?Oh#qIlrov1HlLm1i0PZy^<3dDtif)<8b3AsDq61=kErL1R1;KQyBhOz!?Xo z-VD>v39{BvpX9vzvBgSzBA_rMB>n0SP~uV=Mb*S3g|sOnC1~J&Z4h?W&eF}~WM - - diff --git a/html/inherit_graph_4.md5 b/html/inherit_graph_4.md5 deleted file mode 100644 index 10c264c..0000000 --- a/html/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -af3a9400a188146f4f12e1a0e129faf2 \ No newline at end of file diff --git a/html/inherit_graph_4.png b/html/inherit_graph_4.png deleted file mode 100644 index 8dd8946b0d64b6e9be84d613cb61d33d0c8fb4e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1697 zcmV;S244AzP)4F6$Go`F2yQg5k1;+ zKtQS%ur6?_bphJSp)3lDimf8ZqD4yUf^t+;wrHzGTv%lQUHL;HZzMr)RGSzFuMn z+)M0$dx;%BPA`#r(RTDNPDtLX2+H3#hd%c}!$At^p z4s|Zls*G^APg#0o$_Vz9#b2isH*^hk3U6l^d#ShTOb3JzLMYARP!0UgbwUUsL?s!^ zw1+kmS#hL$z*)nvGxuBC>Tetmop>)krFi(6sg9ShwJdq9>sTWls=n1{K}Y|24gmmi z;rU%2Q(3xXvYwf}cT7!Az) z008pf$LUm?2(G->>o;Zb?A8IlnQR7`%&>F`&leyn$h94Frw|APB2iPvc!FC*0sn zn(5}|`UHi5rl|#s)FYPLcC#E3@52A#axp8G#Qc-1^$$TWO8c~5mn#-ogBi_^sD|L-NV z{kZ#}cQS90Lu*olL#})hb@5?Kha5%flV)q8D5^LM36J-*=L4mjUnfBNoIcIm$$yj2 z=qF{RHBjYJAoaB`mS%)s$A^YYL(RdfiRxaCTj4+Rer#~`h3aA-m3YXxMoA zPWmfu)1g~WI%T4g_;2?=p0;xNXj1R7HYV>XhhGT?T;sID-Bk0nHBlMWdmo}z zP-a1dX<^88roM%18hMHvo31CJ52xpAewn?_A@Mv@v&#osRk205}W5HPb24MOjOGi<@V#18%Zt^nt~KpGdpeZODq z;MXN~z`eu{xR=-g_Yynw)B9v+XAgZIII1EL2v{tZa-<(Gy}iAMDj%G8g2Uk`ZxSH> r|4XcZub0>X_YyncUSbE_OYHC;4lP;232jww00000NkvXXu0mjfRys3~ diff --git a/html/inherits.html b/html/inherits.html deleted file mode 100644 index ab9ea35..0000000 --- a/html/inherits.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -My Project: Class Hierarchy - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - -
- - - -
- - - -
-
- - - - diff --git a/html/jquery.js b/html/jquery.js deleted file mode 100644 index 103c32d..0000000 --- a/html/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/html/menu.js b/html/menu.js deleted file mode 100644 index 2fe2214..0000000 --- a/html/menu.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/html/menudata.js b/html/menudata.js deleted file mode 100644 index 0b7b348..0000000 --- a/html/menudata.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"a",url:"functions.html#index_a"}, -{text:"b",url:"functions.html#index_b"}, -{text:"c",url:"functions.html#index_c"}, -{text:"e",url:"functions.html#index_e"}, -{text:"g",url:"functions.html#index_g"}, -{text:"i",url:"functions.html#index_i"}, -{text:"m",url:"functions.html#index_m"}, -{text:"o",url:"functions.html#index_o"}, -{text:"p",url:"functions.html#index_p"}, -{text:"r",url:"functions.html#index_r"}, -{text:"s",url:"functions.html#index_s"}, -{text:"t",url:"functions.html#index_t"}, -{text:"u",url:"functions.html#index_u"}, -{text:"w",url:"functions.html#index_w"}, -{text:"~",url:"functions.html#index__7E"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"c",url:"functions_func.html#index_c"}, -{text:"e",url:"functions_func.html#index_e"}, -{text:"g",url:"functions_func.html#index_g"}, -{text:"i",url:"functions_func.html#index_i"}, -{text:"o",url:"functions_func.html#index_o"}, -{text:"p",url:"functions_func.html#index_p"}, -{text:"r",url:"functions_func.html#index_r"}, -{text:"s",url:"functions_func.html#index_s"}, -{text:"t",url:"functions_func.html#index_t"}, -{text:"u",url:"functions_func.html#index_u"}, -{text:"w",url:"functions_func.html#index_w"}, -{text:"~",url:"functions_func.html#index__7E"}]}, -{text:"Variables",url:"functions_vars.html"}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}]}]} diff --git a/html/nav_f.png b/html/nav_f.png deleted file mode 100644 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/html/nav_g.png b/html/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_0.js b/html/search/all_0.js deleted file mode 100644 index 71e0478..0000000 --- a/html/search/all_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['add_0',['add',['../classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9',1,'core::CommandList']]] -]; diff --git a/html/search/all_1.html b/html/search/all_1.html deleted file mode 100644 index 9f80e90..0000000 --- a/html/search/all_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_1.js b/html/search/all_1.js deleted file mode 100644 index 86ebf98..0000000 --- a/html/search/all_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blacklist_1',['blackList',['../classcore_1_1TCPServer.html#a82f6bf16e4ab20d8b30da09e034fffff',1,'core::TCPServer']]] -]; diff --git a/html/search/all_2.html b/html/search/all_2.html deleted file mode 100644 index 02cfffc..0000000 --- a/html/search/all_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_2.js b/html/search/all_2.js deleted file mode 100644 index a45d7e0..0000000 --- a/html/search/all_2.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['clear_2',['clear',['../classcore_1_1TerminalSession.html#a42bb06857891220a831da04248233935',1,'core::TerminalSession']]], - ['cleareol_3',['clearEOL',['../classcore_1_1TerminalSession.html#aa660768eed03b0b996a749e8a146446c',1,'core::TerminalSession']]], - ['cleartimer_4',['clearTimer',['../classcore_1_1Timer.html#a8e063f46e89dac04364871e909ab940a',1,'core::Timer']]], - ['command_5',['Command',['../classcore_1_1Command.html',1,'core']]], - ['commandlist_6',['CommandList',['../classcore_1_1CommandList.html',1,'core']]], - ['commands_7',['commands',['../classcore_1_1CommandList.html#ad0aedf95828fe743908d8423f171ff36',1,'core::CommandList::commands()'],['../classcore_1_1TCPServer.html#afcc44802b988e2f4292504e804dccf8b',1,'core::TCPServer::commands()']]], - ['consoleserver_8',['ConsoleServer',['../classcore_1_1ConsoleServer.html',1,'core']]], - ['consolesession_9',['ConsoleSession',['../classcore_1_1ConsoleSession.html',1,'core']]] -]; diff --git a/html/search/all_3.html b/html/search/all_3.html deleted file mode 100644 index 39767b8..0000000 --- a/html/search/all_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_3.js b/html/search/all_3.js deleted file mode 100644 index cb9dc77..0000000 --- a/html/search/all_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['epoll_10',['EPoll',['../classcore_1_1EPoll.html',1,'core::EPoll'],['../classcore_1_1EPoll.html#a2fd5cc4336b5f72990ecc0e7ea3d7641',1,'core::EPoll::EPoll()']]], - ['eventreceived_11',['eventReceived',['../classcore_1_1EPoll.html#a3238b150b5d0a57eb2e1b17daa236d3b',1,'core::EPoll::eventReceived()'],['../classcore_1_1Socket.html#a4c9a3396693ff919eb827729f9e72b03',1,'core::Socket::eventReceived()']]] -]; diff --git a/html/search/all_4.html b/html/search/all_4.html deleted file mode 100644 index fc40463..0000000 --- a/html/search/all_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_4.js b/html/search/all_4.js deleted file mode 100644 index 64bfd31..0000000 --- a/html/search/all_4.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['getclientaddress_12',['getClientAddress',['../classcore_1_1IPAddress.html#ae5e7e28589d026bbbc6c3423d418b008',1,'core::IPAddress']]], - ['getclientaddressandport_13',['getClientAddressAndPort',['../classcore_1_1IPAddress.html#abea870f1a048cb7bba1d2bad98558232',1,'core::IPAddress']]], - ['getclientport_14',['getClientPort',['../classcore_1_1IPAddress.html#a39f706f2d43d7d001296ecead4b587e8',1,'core::IPAddress']]], - ['getdescriptor_15',['getDescriptor',['../classcore_1_1EPoll.html#a1e52017e1deae15c1c87c6b6a099e1ed',1,'core::EPoll::getDescriptor()'],['../classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08',1,'core::Socket::getDescriptor()']]], - ['getelapsed_16',['getElapsed',['../classcore_1_1Timer.html#a0df7f1ffc05529b45d6e13713bbc0209',1,'core::Timer']]], - ['getsocketaccept_17',['getSocketAccept',['../classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8',1,'core::ConsoleServer::getSocketAccept()'],['../classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9',1,'core::TCPServer::getSocketAccept()']]], - ['grabinput_18',['grabInput',['../classcore_1_1CommandList.html#a72aea93a650f148c639ba25a724da243',1,'core::CommandList']]] -]; diff --git a/html/search/all_5.html b/html/search/all_5.html deleted file mode 100644 index 9dd9344..0000000 --- a/html/search/all_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_5.js b/html/search/all_5.js deleted file mode 100644 index 86200bf..0000000 --- a/html/search/all_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['inotify_19',['INotify',['../classcore_1_1INotify.html',1,'core']]], - ['ipaddress_20',['IPAddress',['../classcore_1_1IPAddress.html',1,'core']]], - ['ipaddresslist_21',['IPAddressList',['../classcore_1_1IPAddressList.html',1,'core']]], - ['isstopping_22',['isStopping',['../classcore_1_1EPoll.html#a301b46b71ac7ac61a687ff723fe269b3',1,'core::EPoll']]] -]; diff --git a/html/search/all_6.html b/html/search/all_6.html deleted file mode 100644 index f1e516d..0000000 --- a/html/search/all_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_6.js b/html/search/all_6.js deleted file mode 100644 index 9f62f6f..0000000 --- a/html/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maxsockets_23',['maxSockets',['../classcore_1_1EPoll.html#acfcef2513d94f7b9a191fed3dc744d90',1,'core::EPoll']]] -]; diff --git a/html/search/all_7.html b/html/search/all_7.html deleted file mode 100644 index 8ddbf6c..0000000 --- a/html/search/all_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_7.js b/html/search/all_7.js deleted file mode 100644 index 3348d4d..0000000 --- a/html/search/all_7.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['object_24',['Object',['../classcore_1_1Object.html',1,'core']]], - ['onblockreceived_25',['onBlockReceived',['../classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a',1,'core::TCPSession']]], - ['onconnected_26',['onConnected',['../classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626',1,'core::TCPSession']]], - ['ondatareceived_27',['onDataReceived',['../classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5',1,'core::Socket::onDataReceived()'],['../classcore_1_1TCPServer.html#a276ccbc8cb9b4380ebd78807b97f0159',1,'core::TCPServer::onDataReceived()'],['../classcore_1_1TCPSession.html#afc2d2a92bc65e1e5122a93d120253a1d',1,'core::TCPSession::onDataReceived()'],['../classcore_1_1UDPServerSocket.html#a41933ca153c854a800e3d047ab18313e',1,'core::UDPServerSocket::onDataReceived()']]], - ['onlinereceived_28',['onLineReceived',['../classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff',1,'core::TCPSession']]], - ['onregister_29',['onRegister',['../classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0',1,'core::Socket::onRegister()'],['../classcore_1_1TLSSession.html#a76cec7cf4851eb27abe77a2339344c6d',1,'core::TLSSession::onRegister()']]], - ['onregistered_30',['onRegistered',['../classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1',1,'core::Socket::onRegistered()'],['../classcore_1_1TLSSession.html#a8e26fdc9e8a6c573b5a504a1f1b137a9',1,'core::TLSSession::onRegistered()'],['../classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98',1,'core::TCPSession::onRegistered()']]], - ['ontimeout_31',['onTimeout',['../classcore_1_1Timer.html#ae51704ff08d985bbc30e3ff4c9b3c6ca',1,'core::Timer']]], - ['onunregistered_32',['onUnregistered',['../classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2',1,'core::Socket']]], - ['out_33',['out',['../classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d',1,'core::TCPSession']]], - ['output_34',['output',['../classcore_1_1Command.html#ab6352ce5650e70a5c76c3d6e4eefd292',1,'core::Command::output()'],['../classcore_1_1TCPServer.html#a49e3ead1bf4e7830685780e73c4db5db',1,'core::TCPServer::output()'],['../classcore_1_1TCPSession.html#a50037cbfc515650e04054e5481785981',1,'core::TCPSession::output()'],['../classcore_1_1TCPSocket.html#afacf7528ff3c9ac077d7b5a49e2116fd',1,'core::TCPSocket::output()'],['../classcore_1_1TLSSession.html#ae55de8a035d1ddc560cf619b2030af43',1,'core::TLSSession::output()']]] -]; diff --git a/html/search/all_8.html b/html/search/all_8.html deleted file mode 100644 index 83c55ae..0000000 --- a/html/search/all_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_8.js b/html/search/all_8.js deleted file mode 100644 index 5f37b67..0000000 --- a/html/search/all_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['processcommand_35',['processCommand',['../classcore_1_1Command.html#a95176f2532c38ee14e3fee40ee28b1bd',1,'core::Command::processCommand()'],['../classcore_1_1CommandList.html#a1819e1cb377b5d8e5e00b4777e2b4aba',1,'core::CommandList::processCommand()'],['../classcore_1_1EPoll.html#a22b5f1545aff3162040844be043abcce',1,'core::EPoll::processCommand()'],['../classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae',1,'core::SubscriptionManager::processCommand()'],['../classcore_1_1TCPServer.html#a6b7a7e1ac4132942fcaf418ed41c1437',1,'core::TCPServer::processCommand()']]], - ['processrequest_36',['processRequest',['../classcore_1_1CommandList.html#aa9b789df8eed15dc037bd98d596fe6e0',1,'core::CommandList']]], - ['protocol_37',['protocol',['../classcore_1_1ConsoleSession.html#aa1818efcd33a4152d2089aa545f08833',1,'core::ConsoleSession::protocol()'],['../classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7',1,'core::TCPSession::protocol()'],['../classcore_1_1TLSSession.html#a208145cc1fcdc14054602aacc2c51d91',1,'core::TLSSession::protocol()']]] -]; diff --git a/html/search/all_9.html b/html/search/all_9.html deleted file mode 100644 index 1e263c1..0000000 --- a/html/search/all_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_9.js b/html/search/all_9.js deleted file mode 100644 index d7c9538..0000000 --- a/html/search/all_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['receivedata_38',['receiveData',['../classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875',1,'core::Socket::receiveData()'],['../classcore_1_1TLSSession.html#a8507cdcd23ac4b340ce6f6d5f0b26a52',1,'core::TLSSession::receiveData()']]], - ['registersocket_39',['registerSocket',['../classcore_1_1EPoll.html#a3d813c7bbf0da70ebc8e3cb6aeeacfb4',1,'core::EPoll']]], - ['remove_40',['remove',['../classcore_1_1CommandList.html#aaac684effb9ecf5238d23ca60d3fffaa',1,'core::CommandList']]] -]; diff --git a/html/search/all_a.html b/html/search/all_a.html deleted file mode 100644 index 3a6cac1..0000000 --- a/html/search/all_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_a.js b/html/search/all_a.js deleted file mode 100644 index 35d29aa..0000000 --- a/html/search/all_a.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['send_41',['send',['../classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889',1,'core::TCPSession']]], - ['sendtoall_42',['sendToAll',['../classcore_1_1TCPServer.html#a7080f7d45e734087e81b83c5e1f8e676',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)'],['../classcore_1_1TCPServer.html#af708df59e1bc60077c16db97f9cc8ff0',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender)']]], - ['sessionfilter_43',['SessionFilter',['../classcore_1_1SessionFilter.html',1,'core']]], - ['sessions_44',['sessions',['../classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633',1,'core::TCPServer']]], - ['setblocksize_45',['setBlockSize',['../classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5',1,'core::TCPSession']]], - ['setcursorlocation_46',['setCursorLocation',['../classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa',1,'core::TerminalSession']]], - ['setdescriptor_47',['setDescriptor',['../classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762',1,'core::Socket']]], - ['settimer_48',['setTimer',['../classcore_1_1Timer.html#ac0a642cdcb76b7f995137162050d3d0b',1,'core::Timer']]], - ['shutdown_49',['shutdown',['../classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31',1,'core::Socket']]], - ['socket_50',['Socket',['../classcore_1_1Socket.html',1,'core::Socket'],['../classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d',1,'core::Socket::Socket()']]], - ['start_51',['start',['../classcore_1_1EPoll.html#aaefe2caef75eb538af90cb34682d277b',1,'core::EPoll::start()'],['../classcore_1_1Thread.html#ae6885df9a9b9503669e5776518b19054',1,'core::Thread::start()']]], - ['stop_52',['stop',['../classcore_1_1EPoll.html#a0c2865acd31d14fbf19dbc42cc084ddc',1,'core::EPoll']]], - ['subscription_53',['Subscription',['../classcore_1_1Subscription.html',1,'core']]], - ['subscriptionmanager_54',['SubscriptionManager',['../classcore_1_1SubscriptionManager.html',1,'core']]], - ['subscriptions_55',['subscriptions',['../classcore_1_1TCPServer.html#a28302dd844cfc971ee41de2000d24aa0',1,'core::TCPServer']]] -]; diff --git a/html/search/all_b.html b/html/search/all_b.html deleted file mode 100644 index 130deb4..0000000 --- a/html/search/all_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_b.js b/html/search/all_b.js deleted file mode 100644 index f913f73..0000000 --- a/html/search/all_b.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['tcpserver_56',['TCPServer',['../classcore_1_1TCPServer.html',1,'core::TCPServer'],['../classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b',1,'core::TCPServer::TCPServer()']]], - ['tcpsession_57',['TCPSession',['../classcore_1_1TCPSession.html',1,'core']]], - ['tcpsocket_58',['TCPSocket',['../classcore_1_1TCPSocket.html',1,'core']]], - ['terminalsession_59',['TerminalSession',['../classcore_1_1TerminalSession.html',1,'core']]], - ['terminate_60',['terminate',['../classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3',1,'core::TCPSession']]], - ['thread_61',['Thread',['../classcore_1_1Thread.html',1,'core']]], - ['threadscope_62',['ThreadScope',['../classcore_1_1ThreadScope.html',1,'core']]], - ['timer_63',['Timer',['../classcore_1_1Timer.html',1,'core']]], - ['tlsserver_64',['TLSServer',['../classcore_1_1TLSServer.html',1,'core::TLSServer'],['../classcore_1_1TLSServer.html#a6460f9872936015efdfd0b8de04aa2fe',1,'core::TLSServer::TLSServer()']]], - ['tlssession_65',['TLSSession',['../classcore_1_1TLSSession.html',1,'core']]] -]; diff --git a/html/search/all_c.html b/html/search/all_c.html deleted file mode 100644 index 3dd5af0..0000000 --- a/html/search/all_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_c.js b/html/search/all_c.js deleted file mode 100644 index 3e872c1..0000000 --- a/html/search/all_c.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['udpserversocket_66',['UDPServerSocket',['../classcore_1_1UDPServerSocket.html',1,'core']]], - ['udpsocket_67',['UDPSocket',['../classcore_1_1UDPSocket.html',1,'core']]], - ['unregistersocket_68',['unregisterSocket',['../classcore_1_1EPoll.html#a5ab5e82ab51e0952fc8fbcc128f52900',1,'core::EPoll']]] -]; diff --git a/html/search/all_d.html b/html/search/all_d.html deleted file mode 100644 index af7f2f0..0000000 --- a/html/search/all_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_d.js b/html/search/all_d.js deleted file mode 100644 index a46b93a..0000000 --- a/html/search/all_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['whitelist_69',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]], - ['write_70',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] -]; diff --git a/html/search/all_e.html b/html/search/all_e.html deleted file mode 100644 index e25df42..0000000 --- a/html/search/all_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/all_e.js b/html/search/all_e.js deleted file mode 100644 index 8340282..0000000 --- a/html/search/all_e.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_71',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_72',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_73',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_74',['~TLSServer',['../classcore_1_1TLSServer.html#ac71db77c796a1bf65357409cb96054c7',1,'core::TLSServer']]] -]; diff --git a/html/search/classes_0.html b/html/search/classes_0.html deleted file mode 100644 index af8159e..0000000 --- a/html/search/classes_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_0.js b/html/search/classes_0.js deleted file mode 100644 index a188085..0000000 --- a/html/search/classes_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['command_75',['Command',['../classcore_1_1Command.html',1,'core']]], - ['commandlist_76',['CommandList',['../classcore_1_1CommandList.html',1,'core']]], - ['consoleserver_77',['ConsoleServer',['../classcore_1_1ConsoleServer.html',1,'core']]], - ['consolesession_78',['ConsoleSession',['../classcore_1_1ConsoleSession.html',1,'core']]] -]; diff --git a/html/search/classes_1.html b/html/search/classes_1.html deleted file mode 100644 index 576e916..0000000 --- a/html/search/classes_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_1.js b/html/search/classes_1.js deleted file mode 100644 index b0ef45f..0000000 --- a/html/search/classes_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['epoll_79',['EPoll',['../classcore_1_1EPoll.html',1,'core']]] -]; diff --git a/html/search/classes_2.html b/html/search/classes_2.html deleted file mode 100644 index 956405e..0000000 --- a/html/search/classes_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_2.js b/html/search/classes_2.js deleted file mode 100644 index f4a56f5..0000000 --- a/html/search/classes_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['inotify_80',['INotify',['../classcore_1_1INotify.html',1,'core']]], - ['ipaddress_81',['IPAddress',['../classcore_1_1IPAddress.html',1,'core']]], - ['ipaddresslist_82',['IPAddressList',['../classcore_1_1IPAddressList.html',1,'core']]] -]; diff --git a/html/search/classes_3.html b/html/search/classes_3.html deleted file mode 100644 index d33343b..0000000 --- a/html/search/classes_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_3.js b/html/search/classes_3.js deleted file mode 100644 index 475f2d8..0000000 --- a/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['object_83',['Object',['../classcore_1_1Object.html',1,'core']]] -]; diff --git a/html/search/classes_4.html b/html/search/classes_4.html deleted file mode 100644 index 8430b07..0000000 --- a/html/search/classes_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_4.js b/html/search/classes_4.js deleted file mode 100644 index 1ef0d07..0000000 --- a/html/search/classes_4.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['sessionfilter_84',['SessionFilter',['../classcore_1_1SessionFilter.html',1,'core']]], - ['socket_85',['Socket',['../classcore_1_1Socket.html',1,'core']]], - ['subscription_86',['Subscription',['../classcore_1_1Subscription.html',1,'core']]], - ['subscriptionmanager_87',['SubscriptionManager',['../classcore_1_1SubscriptionManager.html',1,'core']]] -]; diff --git a/html/search/classes_5.html b/html/search/classes_5.html deleted file mode 100644 index c2f1b76..0000000 --- a/html/search/classes_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_5.js b/html/search/classes_5.js deleted file mode 100644 index 7bf8e59..0000000 --- a/html/search/classes_5.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['tcpserver_88',['TCPServer',['../classcore_1_1TCPServer.html',1,'core']]], - ['tcpsession_89',['TCPSession',['../classcore_1_1TCPSession.html',1,'core']]], - ['tcpsocket_90',['TCPSocket',['../classcore_1_1TCPSocket.html',1,'core']]], - ['terminalsession_91',['TerminalSession',['../classcore_1_1TerminalSession.html',1,'core']]], - ['thread_92',['Thread',['../classcore_1_1Thread.html',1,'core']]], - ['threadscope_93',['ThreadScope',['../classcore_1_1ThreadScope.html',1,'core']]], - ['timer_94',['Timer',['../classcore_1_1Timer.html',1,'core']]], - ['tlsserver_95',['TLSServer',['../classcore_1_1TLSServer.html',1,'core']]], - ['tlssession_96',['TLSSession',['../classcore_1_1TLSSession.html',1,'core']]] -]; diff --git a/html/search/classes_6.html b/html/search/classes_6.html deleted file mode 100644 index e39847c..0000000 --- a/html/search/classes_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/classes_6.js b/html/search/classes_6.js deleted file mode 100644 index f5e021f..0000000 --- a/html/search/classes_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['udpserversocket_97',['UDPServerSocket',['../classcore_1_1UDPServerSocket.html',1,'core']]], - ['udpsocket_98',['UDPSocket',['../classcore_1_1UDPSocket.html',1,'core']]] -]; diff --git a/html/search/close.png b/html/search/close.png deleted file mode 100644 index 9342d3dfeea7b7c4ee610987e717804b5a42ceb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN diff --git a/html/search/close.svg b/html/search/close.svg deleted file mode 100644 index a933eea..0000000 --- a/html/search/close.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/html/search/functions_0.html b/html/search/functions_0.html deleted file mode 100644 index eb4c501..0000000 --- a/html/search/functions_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_0.js b/html/search/functions_0.js deleted file mode 100644 index dad7998..0000000 --- a/html/search/functions_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['add_99',['add',['../classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9',1,'core::CommandList']]] -]; diff --git a/html/search/functions_1.html b/html/search/functions_1.html deleted file mode 100644 index ef4088b..0000000 --- a/html/search/functions_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_1.js b/html/search/functions_1.js deleted file mode 100644 index 19d16a1..0000000 --- a/html/search/functions_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['clear_100',['clear',['../classcore_1_1TerminalSession.html#a42bb06857891220a831da04248233935',1,'core::TerminalSession']]], - ['cleareol_101',['clearEOL',['../classcore_1_1TerminalSession.html#aa660768eed03b0b996a749e8a146446c',1,'core::TerminalSession']]], - ['cleartimer_102',['clearTimer',['../classcore_1_1Timer.html#a8e063f46e89dac04364871e909ab940a',1,'core::Timer']]] -]; diff --git a/html/search/functions_2.html b/html/search/functions_2.html deleted file mode 100644 index ca5aa10..0000000 --- a/html/search/functions_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_2.js b/html/search/functions_2.js deleted file mode 100644 index e101051..0000000 --- a/html/search/functions_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['epoll_103',['EPoll',['../classcore_1_1EPoll.html#a2fd5cc4336b5f72990ecc0e7ea3d7641',1,'core::EPoll']]], - ['eventreceived_104',['eventReceived',['../classcore_1_1EPoll.html#a3238b150b5d0a57eb2e1b17daa236d3b',1,'core::EPoll::eventReceived()'],['../classcore_1_1Socket.html#a4c9a3396693ff919eb827729f9e72b03',1,'core::Socket::eventReceived()']]] -]; diff --git a/html/search/functions_3.html b/html/search/functions_3.html deleted file mode 100644 index d79f55b..0000000 --- a/html/search/functions_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_3.js b/html/search/functions_3.js deleted file mode 100644 index 7e67380..0000000 --- a/html/search/functions_3.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['getclientaddress_105',['getClientAddress',['../classcore_1_1IPAddress.html#ae5e7e28589d026bbbc6c3423d418b008',1,'core::IPAddress']]], - ['getclientaddressandport_106',['getClientAddressAndPort',['../classcore_1_1IPAddress.html#abea870f1a048cb7bba1d2bad98558232',1,'core::IPAddress']]], - ['getclientport_107',['getClientPort',['../classcore_1_1IPAddress.html#a39f706f2d43d7d001296ecead4b587e8',1,'core::IPAddress']]], - ['getdescriptor_108',['getDescriptor',['../classcore_1_1EPoll.html#a1e52017e1deae15c1c87c6b6a099e1ed',1,'core::EPoll::getDescriptor()'],['../classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08',1,'core::Socket::getDescriptor()']]], - ['getelapsed_109',['getElapsed',['../classcore_1_1Timer.html#a0df7f1ffc05529b45d6e13713bbc0209',1,'core::Timer']]], - ['getsocketaccept_110',['getSocketAccept',['../classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8',1,'core::ConsoleServer::getSocketAccept()'],['../classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9',1,'core::TCPServer::getSocketAccept()']]], - ['grabinput_111',['grabInput',['../classcore_1_1CommandList.html#a72aea93a650f148c639ba25a724da243',1,'core::CommandList']]] -]; diff --git a/html/search/functions_4.html b/html/search/functions_4.html deleted file mode 100644 index 1657cad..0000000 --- a/html/search/functions_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_4.js b/html/search/functions_4.js deleted file mode 100644 index 87669a1..0000000 --- a/html/search/functions_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['isstopping_112',['isStopping',['../classcore_1_1EPoll.html#a301b46b71ac7ac61a687ff723fe269b3',1,'core::EPoll']]] -]; diff --git a/html/search/functions_5.html b/html/search/functions_5.html deleted file mode 100644 index 9301d6b..0000000 --- a/html/search/functions_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_5.js b/html/search/functions_5.js deleted file mode 100644 index 54497f9..0000000 --- a/html/search/functions_5.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['onblockreceived_113',['onBlockReceived',['../classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a',1,'core::TCPSession']]], - ['onconnected_114',['onConnected',['../classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626',1,'core::TCPSession']]], - ['ondatareceived_115',['onDataReceived',['../classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5',1,'core::Socket::onDataReceived()'],['../classcore_1_1TCPServer.html#a276ccbc8cb9b4380ebd78807b97f0159',1,'core::TCPServer::onDataReceived()'],['../classcore_1_1TCPSession.html#afc2d2a92bc65e1e5122a93d120253a1d',1,'core::TCPSession::onDataReceived()'],['../classcore_1_1UDPServerSocket.html#a41933ca153c854a800e3d047ab18313e',1,'core::UDPServerSocket::onDataReceived()']]], - ['onlinereceived_116',['onLineReceived',['../classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff',1,'core::TCPSession']]], - ['onregister_117',['onRegister',['../classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0',1,'core::Socket::onRegister()'],['../classcore_1_1TLSSession.html#a76cec7cf4851eb27abe77a2339344c6d',1,'core::TLSSession::onRegister()']]], - ['onregistered_118',['onRegistered',['../classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1',1,'core::Socket::onRegistered()'],['../classcore_1_1TLSSession.html#a8e26fdc9e8a6c573b5a504a1f1b137a9',1,'core::TLSSession::onRegistered()'],['../classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98',1,'core::TCPSession::onRegistered()']]], - ['ontimeout_119',['onTimeout',['../classcore_1_1Timer.html#ae51704ff08d985bbc30e3ff4c9b3c6ca',1,'core::Timer']]], - ['onunregistered_120',['onUnregistered',['../classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2',1,'core::Socket']]], - ['output_121',['output',['../classcore_1_1Command.html#ab6352ce5650e70a5c76c3d6e4eefd292',1,'core::Command::output()'],['../classcore_1_1TCPServer.html#a49e3ead1bf4e7830685780e73c4db5db',1,'core::TCPServer::output()'],['../classcore_1_1TCPSession.html#a50037cbfc515650e04054e5481785981',1,'core::TCPSession::output()'],['../classcore_1_1TCPSocket.html#afacf7528ff3c9ac077d7b5a49e2116fd',1,'core::TCPSocket::output()'],['../classcore_1_1TLSSession.html#ae55de8a035d1ddc560cf619b2030af43',1,'core::TLSSession::output()']]] -]; diff --git a/html/search/functions_6.html b/html/search/functions_6.html deleted file mode 100644 index 9c4f5fc..0000000 --- a/html/search/functions_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_6.js b/html/search/functions_6.js deleted file mode 100644 index 479aeac..0000000 --- a/html/search/functions_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['processcommand_122',['processCommand',['../classcore_1_1Command.html#a95176f2532c38ee14e3fee40ee28b1bd',1,'core::Command::processCommand()'],['../classcore_1_1CommandList.html#a1819e1cb377b5d8e5e00b4777e2b4aba',1,'core::CommandList::processCommand()'],['../classcore_1_1EPoll.html#a22b5f1545aff3162040844be043abcce',1,'core::EPoll::processCommand()'],['../classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae',1,'core::SubscriptionManager::processCommand()'],['../classcore_1_1TCPServer.html#a6b7a7e1ac4132942fcaf418ed41c1437',1,'core::TCPServer::processCommand()']]], - ['processrequest_123',['processRequest',['../classcore_1_1CommandList.html#aa9b789df8eed15dc037bd98d596fe6e0',1,'core::CommandList']]], - ['protocol_124',['protocol',['../classcore_1_1ConsoleSession.html#aa1818efcd33a4152d2089aa545f08833',1,'core::ConsoleSession::protocol()'],['../classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7',1,'core::TCPSession::protocol()'],['../classcore_1_1TLSSession.html#a208145cc1fcdc14054602aacc2c51d91',1,'core::TLSSession::protocol()']]] -]; diff --git a/html/search/functions_7.html b/html/search/functions_7.html deleted file mode 100644 index 46b5c0f..0000000 --- a/html/search/functions_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_7.js b/html/search/functions_7.js deleted file mode 100644 index 8ef85fe..0000000 --- a/html/search/functions_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['receivedata_125',['receiveData',['../classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875',1,'core::Socket::receiveData()'],['../classcore_1_1TLSSession.html#a8507cdcd23ac4b340ce6f6d5f0b26a52',1,'core::TLSSession::receiveData()']]], - ['registersocket_126',['registerSocket',['../classcore_1_1EPoll.html#a3d813c7bbf0da70ebc8e3cb6aeeacfb4',1,'core::EPoll']]], - ['remove_127',['remove',['../classcore_1_1CommandList.html#aaac684effb9ecf5238d23ca60d3fffaa',1,'core::CommandList']]] -]; diff --git a/html/search/functions_8.html b/html/search/functions_8.html deleted file mode 100644 index 31a1d95..0000000 --- a/html/search/functions_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_8.js b/html/search/functions_8.js deleted file mode 100644 index d7e2c67..0000000 --- a/html/search/functions_8.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['send_128',['send',['../classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889',1,'core::TCPSession']]], - ['sendtoall_129',['sendToAll',['../classcore_1_1TCPServer.html#a7080f7d45e734087e81b83c5e1f8e676',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter)'],['../classcore_1_1TCPServer.html#af708df59e1bc60077c16db97f9cc8ff0',1,'core::TCPServer::sendToAll(std::stringstream &out, TCPSession &sender)']]], - ['setblocksize_130',['setBlockSize',['../classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5',1,'core::TCPSession']]], - ['setcursorlocation_131',['setCursorLocation',['../classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa',1,'core::TerminalSession']]], - ['setdescriptor_132',['setDescriptor',['../classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762',1,'core::Socket']]], - ['settimer_133',['setTimer',['../classcore_1_1Timer.html#ac0a642cdcb76b7f995137162050d3d0b',1,'core::Timer']]], - ['shutdown_134',['shutdown',['../classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31',1,'core::Socket']]], - ['socket_135',['Socket',['../classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d',1,'core::Socket']]], - ['start_136',['start',['../classcore_1_1EPoll.html#aaefe2caef75eb538af90cb34682d277b',1,'core::EPoll::start()'],['../classcore_1_1Thread.html#ae6885df9a9b9503669e5776518b19054',1,'core::Thread::start()']]], - ['stop_137',['stop',['../classcore_1_1EPoll.html#a0c2865acd31d14fbf19dbc42cc084ddc',1,'core::EPoll']]] -]; diff --git a/html/search/functions_9.html b/html/search/functions_9.html deleted file mode 100644 index 9a8e429..0000000 --- a/html/search/functions_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_9.js b/html/search/functions_9.js deleted file mode 100644 index 36a853e..0000000 --- a/html/search/functions_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['tcpserver_138',['TCPServer',['../classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b',1,'core::TCPServer']]], - ['terminate_139',['terminate',['../classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3',1,'core::TCPSession']]], - ['tlsserver_140',['TLSServer',['../classcore_1_1TLSServer.html#a6460f9872936015efdfd0b8de04aa2fe',1,'core::TLSServer']]] -]; diff --git a/html/search/functions_a.html b/html/search/functions_a.html deleted file mode 100644 index 5ecc152..0000000 --- a/html/search/functions_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_a.js b/html/search/functions_a.js deleted file mode 100644 index 92241bd..0000000 --- a/html/search/functions_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['unregistersocket_141',['unregisterSocket',['../classcore_1_1EPoll.html#a5ab5e82ab51e0952fc8fbcc128f52900',1,'core::EPoll']]] -]; diff --git a/html/search/functions_b.html b/html/search/functions_b.html deleted file mode 100644 index e301fed..0000000 --- a/html/search/functions_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_b.js b/html/search/functions_b.js deleted file mode 100644 index 789f3bf..0000000 --- a/html/search/functions_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['write_142',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] -]; diff --git a/html/search/functions_c.html b/html/search/functions_c.html deleted file mode 100644 index c4f3268..0000000 --- a/html/search/functions_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/functions_c.js b/html/search/functions_c.js deleted file mode 100644 index 4ffc4d0..0000000 --- a/html/search/functions_c.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_143',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_144',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_145',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_146',['~TLSServer',['../classcore_1_1TLSServer.html#ac71db77c796a1bf65357409cb96054c7',1,'core::TLSServer']]] -]; diff --git a/html/search/mag_sel.png b/html/search/mag_sel.png deleted file mode 100644 index 39c0ed52a25dd9d080ee0d42ae6c6042bdfa04d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz6!2%?$TA$hhDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~NU84L`?eGCi_EEpJ?t}-xGu`@87+QPtK?83kxQ`TapwHK(CDaqU2h2ejD|C#+j z9%q3^WHAE+w=f7ZGR&GI0Tg5}@$_|Nf5gMiEhFgvHvB$N=!mC_V~EE2vzPXI9ZnEo zd+1zHor@dYLod2Y{ z@R$7$Z!PXTbY$|@#T!bMzm?`b<(R`cbw(gxJHzu zB$lLFB^RXvDF!10LknF)BV7aY5JN*NBMU1-b8Q0yD+2>vd*|CI8glbfGSez?Ylunu RoetE%;OXk;vd$@?2>>CYplSdB diff --git a/html/search/mag_sel.svg b/html/search/mag_sel.svg deleted file mode 100644 index 03626f6..0000000 --- a/html/search/mag_sel.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/html/search/nomatches.html b/html/search/nomatches.html deleted file mode 100644 index 2b9360b..0000000 --- a/html/search/nomatches.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - -
    -
    No Matches
    -
    - - diff --git a/html/search/search.css b/html/search/search.css deleted file mode 100644 index 9074198..0000000 --- a/html/search/search.css +++ /dev/null @@ -1,257 +0,0 @@ -/*---------------- Search Box */ - -#MSearchBox { - white-space : nowrap; - background: white; - border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; -} - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 1.1em; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: #909090; - outline: none; - font-family: Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - height: 1.4em; - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; - z-index:10000; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: Arial, Verdana, sans-serif; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: Arial, Verdana, sans-serif; -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/html/search/search.js b/html/search/search.js deleted file mode 100644 index fb226f7..0000000 --- a/html/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W diff --git a/html/search/search_r.png b/html/search/search_r.png deleted file mode 100644 index 1af5d21ee13e070d7600f1c4657fde843b953a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD diff --git a/html/search/searchdata.js b/html/search/searchdata.js deleted file mode 100644 index f474f46..0000000 --- a/html/search/searchdata.js +++ /dev/null @@ -1,24 +0,0 @@ -var indexSectionsWithContent = -{ - 0: "abcegimoprstuw~", - 1: "ceiostu", - 2: "acegioprstuw~", - 3: "bcmosw" -}; - -var indexSectionNames = -{ - 0: "all", - 1: "classes", - 2: "functions", - 3: "variables" -}; - -var indexSectionLabels = -{ - 0: "All", - 1: "Classes", - 2: "Functions", - 3: "Variables" -}; - diff --git a/html/search/variables_0.html b/html/search/variables_0.html deleted file mode 100644 index 1e477c0..0000000 --- a/html/search/variables_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_0.js b/html/search/variables_0.js deleted file mode 100644 index 5fb7883..0000000 --- a/html/search/variables_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blacklist_147',['blackList',['../classcore_1_1TCPServer.html#a82f6bf16e4ab20d8b30da09e034fffff',1,'core::TCPServer']]] -]; diff --git a/html/search/variables_1.html b/html/search/variables_1.html deleted file mode 100644 index ea73d9a..0000000 --- a/html/search/variables_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_1.js b/html/search/variables_1.js deleted file mode 100644 index fa91e03..0000000 --- a/html/search/variables_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['commands_148',['commands',['../classcore_1_1CommandList.html#ad0aedf95828fe743908d8423f171ff36',1,'core::CommandList::commands()'],['../classcore_1_1TCPServer.html#afcc44802b988e2f4292504e804dccf8b',1,'core::TCPServer::commands()']]] -]; diff --git a/html/search/variables_2.html b/html/search/variables_2.html deleted file mode 100644 index 0580462..0000000 --- a/html/search/variables_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_2.js b/html/search/variables_2.js deleted file mode 100644 index 2753863..0000000 --- a/html/search/variables_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maxsockets_149',['maxSockets',['../classcore_1_1EPoll.html#acfcef2513d94f7b9a191fed3dc744d90',1,'core::EPoll']]] -]; diff --git a/html/search/variables_3.html b/html/search/variables_3.html deleted file mode 100644 index 0d69e76..0000000 --- a/html/search/variables_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_3.js b/html/search/variables_3.js deleted file mode 100644 index 26b86a5..0000000 --- a/html/search/variables_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['out_150',['out',['../classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d',1,'core::TCPSession']]] -]; diff --git a/html/search/variables_4.html b/html/search/variables_4.html deleted file mode 100644 index a4b6506..0000000 --- a/html/search/variables_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_4.js b/html/search/variables_4.js deleted file mode 100644 index 029ecac..0000000 --- a/html/search/variables_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['sessions_151',['sessions',['../classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633',1,'core::TCPServer']]], - ['subscriptions_152',['subscriptions',['../classcore_1_1TCPServer.html#a28302dd844cfc971ee41de2000d24aa0',1,'core::TCPServer']]] -]; diff --git a/html/search/variables_5.html b/html/search/variables_5.html deleted file mode 100644 index 7e345d1..0000000 --- a/html/search/variables_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/html/search/variables_5.js b/html/search/variables_5.js deleted file mode 100644 index ea20743..0000000 --- a/html/search/variables_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['whitelist_153',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]] -]; diff --git a/html/splitbar.png b/html/splitbar.png deleted file mode 100644 index fe895f2c58179b471a22d8320b39a4bd7312ec8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/html/sync_off.png b/html/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/html/sync_on.png b/html/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/html/tab_a.png b/html/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/html/tab_b.png b/html/tab_b.png deleted file mode 100644 index e2b4a8638cb3496a016eaed9e16ffc12846dea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/html/tabs.css b/html/tabs.css deleted file mode 100644 index 7d45d36..0000000 --- a/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/latex/Makefile b/latex/Makefile deleted file mode 100644 index 877c9cc..0000000 --- a/latex/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -LATEX_CMD=pdflatex - -all: refman.pdf - -pdf: refman.pdf - -refman.pdf: clean refman.tex - $(LATEX_CMD) refman - makeindex refman.idx - $(LATEX_CMD) refman - latex_count=8 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - $(LATEX_CMD) refman ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - makeindex refman.idx - $(LATEX_CMD) refman - - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/latex/annotated.tex b/latex/annotated.tex deleted file mode 100644 index d02ed23..0000000 --- a/latex/annotated.tex +++ /dev/null @@ -1,27 +0,0 @@ -\doxysection{Class List} -Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Command}{core\+::\+Command}} }{\pageref{classcore_1_1Command}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1CommandList}{core\+::\+Command\+List}} }{\pageref{classcore_1_1CommandList}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ConsoleServer}{core\+::\+Console\+Server}} }{\pageref{classcore_1_1ConsoleServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ConsoleSession}{core\+::\+Console\+Session}} }{\pageref{classcore_1_1ConsoleSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1EPoll}{core\+::\+EPoll}} }{\pageref{classcore_1_1EPoll}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1INotify}{core\+::\+INotify}} }{\pageref{classcore_1_1INotify}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1IPAddress}{core\+::\+IPAddress}} }{\pageref{classcore_1_1IPAddress}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1IPAddressList}{core\+::\+IPAddress\+List}} }{\pageref{classcore_1_1IPAddressList}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Object}{core\+::\+Object}} }{\pageref{classcore_1_1Object}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SessionFilter}{core\+::\+Session\+Filter}} }{\pageref{classcore_1_1SessionFilter}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Socket}{core\+::\+Socket}} }{\pageref{classcore_1_1Socket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Subscription}{core\+::\+Subscription}} }{\pageref{classcore_1_1Subscription}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SubscriptionManager}{core\+::\+Subscription\+Manager}} }{\pageref{classcore_1_1SubscriptionManager}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPServer}{core\+::\+TCPServer}} }{\pageref{classcore_1_1TCPServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSession}{core\+::\+TCPSession}} }{\pageref{classcore_1_1TCPSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSocket}{core\+::\+TCPSocket}} }{\pageref{classcore_1_1TCPSocket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TerminalSession}{core\+::\+Terminal\+Session}} }{\pageref{classcore_1_1TerminalSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Thread}{core\+::\+Thread}} }{\pageref{classcore_1_1Thread}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ThreadScope}{core\+::\+Thread\+Scope}} }{\pageref{classcore_1_1ThreadScope}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Timer}{core\+::\+Timer}} }{\pageref{classcore_1_1Timer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TLSServer}{core\+::\+TLSServer}} }{\pageref{classcore_1_1TLSServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TLSSession}{core\+::\+TLSSession}} }{\pageref{classcore_1_1TLSSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1UDPServerSocket}{core\+::\+UDPServer\+Socket}} }{\pageref{classcore_1_1UDPServerSocket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1UDPSocket}{core\+::\+UDPSocket}} }{\pageref{classcore_1_1UDPSocket}}{} -\end{DoxyCompactList} diff --git a/latex/classcore_1_1Command.tex b/latex/classcore_1_1Command.tex deleted file mode 100644 index 13d8555..0000000 --- a/latex/classcore_1_1Command.tex +++ /dev/null @@ -1,75 +0,0 @@ -\hypertarget{classcore_1_1Command}{}\doxysection{core\+::Command Class Reference} -\label{classcore_1_1Command}\index{core::Command@{core::Command}} - - -{\ttfamily \#include $<$Command.\+h$>$} - - - -Inheritance diagram for core\+::Command\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Command__inherit__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -virtual int \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -virtual void \mbox{\hyperlink{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}{output}} (std\+::stringstream \&out) -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Command}{Command}} - -Use the \mbox{\hyperlink{classcore_1_1Command}{Command}} object in combination with a \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} object to maintain a list of functions that can be invoked as a result of processing a request. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}\label{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}} -\index{core::Command@{core::Command}!output@{output}} -\index{output@{output}!core::Command@{core::Command}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+Command\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -Specify the output that will occur to the specified session. - - -\begin{DoxyParams}{Parameters} -{\em session} & The session that will receive the output. \\ -\hline -\end{DoxyParams} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{core\+::\+TCPServer}}. - -\mbox{\Hypertarget{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}\label{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}} -\index{core::Command@{core::Command}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::Command@{core::Command}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Command\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object. - - -\begin{DoxyParams}{Parameters} -{\em request} & The request that was entered by the user to invoke this command. \\ -\hline -{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition. -\end{DoxyReturn} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}{core\+::\+TCPServer}}, \mbox{\hyperlink{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}{core\+::\+Subscription\+Manager}}, \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{core\+::\+EPoll}}, and \mbox{\hyperlink{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}{core\+::\+Command\+List}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Command.\+h\item -Command.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1CommandList.tex b/latex/classcore_1_1CommandList.tex deleted file mode 100644 index 02aeab7..0000000 --- a/latex/classcore_1_1CommandList.tex +++ /dev/null @@ -1,123 +0,0 @@ -\hypertarget{classcore_1_1CommandList}{}\doxysection{core\+::Command\+List Class Reference} -\label{classcore_1_1CommandList}\index{core::CommandList@{core::CommandList}} - - -{\ttfamily \#include $<$Command\+List.\+h$>$} - - - -Inheritance diagram for core\+::Command\+List\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=191pt]{classcore_1_1CommandList__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Command\+List\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=191pt]{classcore_1_1CommandList__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_a04609187f7b55e881fc31ac3b51a18c4}\label{classcore_1_1CommandList_a04609187f7b55e881fc31ac3b51a18c4}} -{\bfseries Command\+List} (std\+::string delimiter=\char`\"{}\char`\"{}, int depth=0) -\item -void \mbox{\hyperlink{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}{add}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command, std\+::string name=\char`\"{}\char`\"{}) -\item -void \mbox{\hyperlink{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}{remove}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command) -\item -bool \mbox{\hyperlink{classcore_1_1CommandList_aa9b789df8eed15dc037bd98d596fe6e0}{process\+Request}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -bool \mbox{\hyperlink{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}{grab\+Input}} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Command}{Command}} \&command) -\item -\mbox{\Hypertarget{classcore_1_1CommandList_a9214dc76dbcde1520277d044c00cc1fc}\label{classcore_1_1CommandList_a9214dc76dbcde1520277d044c00cc1fc}} -void {\bfseries clear\+Grab} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -int \mbox{\hyperlink{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -std\+::map$<$ std\+::string, \mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ $>$ \mbox{\hyperlink{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}{commands}} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_adfc9ae3f4473a3cd35d5d1ebb5d1b2eb}\label{classcore_1_1CommandList_adfc9ae3f4473a3cd35d5d1ebb5d1b2eb}} -std\+::string {\bfseries delimiter} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_aa72e019cef882e68b917d87ad06cade8}\label{classcore_1_1CommandList_aa72e019cef882e68b917d87ad06cade8}} -int {\bfseries depth} -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} - -This object organizes \mbox{\hyperlink{classcore_1_1Command}{Command}} objects into a list that is used to parse an input and run the process associated with the selected command. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}\label{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}} -\index{core::CommandList@{core::CommandList}!add@{add}} -\index{add@{add}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{add()}{add()}} -{\footnotesize\ttfamily void core\+::\+Command\+List\+::add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command, }\item[{std\+::string}]{name = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -Add a new command to the command list and assign a default search value. \mbox{\Hypertarget{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}\label{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}} -\index{core::CommandList@{core::CommandList}!grabInput@{grabInput}} -\index{grabInput@{grabInput}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{grabInput()}{grabInput()}} -{\footnotesize\ttfamily bool core\+::\+Command\+List\+::grab\+Input (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session, }\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})} - -Use \mbox{\hyperlink{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}{grab\+Input()}} within a \mbox{\hyperlink{classcore_1_1Command}{Command}} object to force the requesting handler to receive all further input from the socket. Use release\+Grab() method to release the session back to normal command processing. \mbox{\Hypertarget{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}\label{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}} -\index{core::CommandList@{core::CommandList}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Command\+List\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object. - - -\begin{DoxyParams}{Parameters} -{\em request} & The request that was entered by the user to invoke this command. \\ -\hline -{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition. -\end{DoxyReturn} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1CommandList_aa9b789df8eed15dc037bd98d596fe6e0}\label{classcore_1_1CommandList_aa9b789df8eed15dc037bd98d596fe6e0}} -\index{core::CommandList@{core::CommandList}!processRequest@{processRequest}} -\index{processRequest@{processRequest}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{processRequest()}{processRequest()}} -{\footnotesize\ttfamily bool core\+::\+Command\+List\+::process\+Request (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})} - -Use this method to apply a parsed ZString to the command set and execute the matching parameter. The selected command will return a true on a call to check(). If there is a handler that has a grab on the process handler then control is given to the process handler holding the grab on the input. \mbox{\Hypertarget{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}\label{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}} -\index{core::CommandList@{core::CommandList}!remove@{remove}} -\index{remove@{remove}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{remove()}{remove()}} -{\footnotesize\ttfamily void core\+::\+Command\+List\+::remove (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})} - -Remove a command object from the command list. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}\label{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}} -\index{core::CommandList@{core::CommandList}!commands@{commands}} -\index{commands@{commands}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{commands}{commands}} -{\footnotesize\ttfamily std\+::map$<$std\+::string, \mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$$>$ core\+::\+Command\+List\+::commands\hspace{0.3cm}{\ttfamily [protected]}} - -The vector of all registered commands. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Command\+List.\+h\item -Command\+List.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1CommandList__coll__graph.md5 b/latex/classcore_1_1CommandList__coll__graph.md5 deleted file mode 100644 index 16cef61..0000000 --- a/latex/classcore_1_1CommandList__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a96f3e328f89a36f8c825e2406f69cfd \ No newline at end of file diff --git a/latex/classcore_1_1CommandList__coll__graph.pdf b/latex/classcore_1_1CommandList__coll__graph.pdf deleted file mode 100644 index 25117e305f49fe76f147b9f23a3d64f91896b14e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6704 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 diff --git a/latex/classcore_1_1Command__coll__graph.md5 b/latex/classcore_1_1Command__coll__graph.md5 deleted file mode 100644 index b1d441f..0000000 --- a/latex/classcore_1_1Command__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a6101fc959b5d2ef84a8a6db1830dc39 \ No newline at end of file diff --git a/latex/classcore_1_1Command__coll__graph.pdf b/latex/classcore_1_1Command__coll__graph.pdf deleted file mode 100644 index 489ed6795438777b5b37b5b94ac45c2321039284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6589 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 diff --git a/latex/classcore_1_1Command__inherit__graph.md5 b/latex/classcore_1_1Command__inherit__graph.md5 deleted file mode 100644 index 1e3eece..0000000 --- a/latex/classcore_1_1Command__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3526df9d00552d3dc2c0c203a1be8aaa \ No newline at end of file diff --git a/latex/classcore_1_1Command__inherit__graph.pdf b/latex/classcore_1_1Command__inherit__graph.pdf deleted file mode 100644 index 493f3eb3bfff208ce52721359b6a94eadccd66d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11145 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 diff --git a/latex/classcore_1_1ConsoleServer.tex b/latex/classcore_1_1ConsoleServer.tex deleted file mode 100644 index f8db41a..0000000 --- a/latex/classcore_1_1ConsoleServer.tex +++ /dev/null @@ -1,51 +0,0 @@ -\hypertarget{classcore_1_1ConsoleServer}{}\doxysection{core\+::Console\+Server Class Reference} -\label{classcore_1_1ConsoleServer}\index{core::ConsoleServer@{core::ConsoleServer}} - - -Inheritance diagram for core\+::Console\+Server\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Console\+Server\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1ConsoleServer_a938c93207ced5bfa3e15e9f4a1cbf3f0}\label{classcore_1_1ConsoleServer_a938c93207ced5bfa3e15e9f4a1cbf3f0}} -{\bfseries Console\+Server} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address) -\item -\mbox{\Hypertarget{classcore_1_1ConsoleServer_ace482706881fd6cbec4e01534c091391}\label{classcore_1_1ConsoleServer_ace482706881fd6cbec4e01534c091391}} -void {\bfseries log\+Send} (std\+::string out) override -\item -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}{get\+Socket\+Accept}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}\label{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}} -\index{core::ConsoleServer@{core::ConsoleServer}!getSocketAccept@{getSocketAccept}} -\index{getSocketAccept@{getSocketAccept}!core::ConsoleServer@{core::ConsoleServer}} -\doxysubsubsection{\texorpdfstring{getSocketAccept()}{getSocketAccept()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+Console\+Server\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}{core\+::\+TCPServer}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Console\+Server.\+h\item -Console\+Server.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ConsoleServer__coll__graph.md5 b/latex/classcore_1_1ConsoleServer__coll__graph.md5 deleted file mode 100644 index e9e1edc..0000000 --- a/latex/classcore_1_1ConsoleServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a4ebc47440f704b1f6db6bf83abbc128 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleServer__coll__graph.pdf b/latex/classcore_1_1ConsoleServer__coll__graph.pdf deleted file mode 100644 index f04265acb886ec3f41ae348a6e8cc574c2bff8f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13755 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 uUeDbf2?Dm6ABigL`S1pf!M?_*s6 diff --git a/latex/classcore_1_1ConsoleServer__inherit__graph.md5 b/latex/classcore_1_1ConsoleServer__inherit__graph.md5 deleted file mode 100644 index 5dbe872..0000000 --- a/latex/classcore_1_1ConsoleServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d8a7b139f69b81405af9117126175bb6 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleServer__inherit__graph.pdf b/latex/classcore_1_1ConsoleServer__inherit__graph.pdf deleted file mode 100644 index 2ef72b2f846c6203ed4490fc1282288ffc78581a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9236 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 C7_a*P diff --git a/latex/classcore_1_1ConsoleSession.tex b/latex/classcore_1_1ConsoleSession.tex deleted file mode 100644 index 5f04dae..0000000 --- a/latex/classcore_1_1ConsoleSession.tex +++ /dev/null @@ -1,65 +0,0 @@ -\hypertarget{classcore_1_1ConsoleSession}{}\doxysection{core\+::Console\+Session Class Reference} -\label{classcore_1_1ConsoleSession}\index{core::ConsoleSession@{core::ConsoleSession}} - - -{\ttfamily \#include $<$Console\+Session.\+h$>$} - - - -Inheritance diagram for core\+::Console\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=203pt]{classcore_1_1ConsoleSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Console\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1ConsoleSession_ae735e9739fb4cfd2ef983cc56f9982c7}\label{classcore_1_1ConsoleSession_ae735e9739fb4cfd2ef983cc56f9982c7}} -{\bfseries Console\+Session} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -\mbox{\Hypertarget{classcore_1_1ConsoleSession_a6e6b56503966f1cae5bdff8b3814e2b9}\label{classcore_1_1ConsoleSession_a6e6b56503966f1cae5bdff8b3814e2b9}} -void {\bfseries write\+Log} (std\+::string data) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{protocol}} (coreutils\+::\+ZString \&data) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1ConsoleSession}{Console\+Session}} - -Extends the session parameters for this \mbox{\hyperlink{classcore_1_1TCPSocket}{TCPSocket}} derived object. Extend the \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{protocol()}} method in order to define the behavior and protocol interaction for this socket which is a console session. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}\label{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}} -\index{core::ConsoleSession@{core::ConsoleSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::ConsoleSession@{core::ConsoleSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+Console\+Session\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input. - -When data is received within the session two modes are available to pass the data through the protocol method\+: LINE or BLOCK. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{core\+::\+TCPSession}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Console\+Session.\+h\item -Console\+Session.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ConsoleSession__coll__graph.md5 b/latex/classcore_1_1ConsoleSession__coll__graph.md5 deleted file mode 100644 index 1c6e4cb..0000000 --- a/latex/classcore_1_1ConsoleSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -cc5d4fa0c42ae34b1169b000474a8246 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleSession__coll__graph.pdf b/latex/classcore_1_1ConsoleSession__coll__graph.pdf deleted file mode 100644 index 47cadc6f4a4d67699da9494addf0796f51465bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14620 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 Wp`37sBMJiK3c^U)+2z$0NdFH>%eG1Y diff --git a/latex/classcore_1_1ConsoleSession__inherit__graph.md5 b/latex/classcore_1_1ConsoleSession__inherit__graph.md5 deleted file mode 100644 index 20b0d97..0000000 --- a/latex/classcore_1_1ConsoleSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0f5e7e7912dc563e80e4ac78360dc9fe \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleSession__inherit__graph.pdf b/latex/classcore_1_1ConsoleSession__inherit__graph.pdf deleted file mode 100644 index e7e4966e099bd37f1da9e0578b58c46b995bc13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8320 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 D8d%`t diff --git a/latex/classcore_1_1EPoll.tex b/latex/classcore_1_1EPoll.tex deleted file mode 100644 index a3da268..0000000 --- a/latex/classcore_1_1EPoll.tex +++ /dev/null @@ -1,217 +0,0 @@ -\hypertarget{classcore_1_1EPoll}{}\doxysection{core\+::EPoll Class Reference} -\label{classcore_1_1EPoll}\index{core::EPoll@{core::EPoll}} - - -{\ttfamily \#include $<$EPoll.\+h$>$} - - - -Inheritance diagram for core\+::EPoll\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1EPoll__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::EPoll\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1EPoll__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}{EPoll}} () -\item -\mbox{\hyperlink{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}{$\sim$\+EPoll}} () -\item -bool \mbox{\hyperlink{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}{start}} (int number\+Of\+Threads, int \mbox{\hyperlink{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}{max\+Sockets}}) -\begin{DoxyCompactList}\small\item\em Start the BMAEPoll processing. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop}} () -\begin{DoxyCompactList}\small\item\em Stop and shut down the BMAEPoll processing. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}{is\+Stopping}} () -\begin{DoxyCompactList}\small\item\em Returns a true if the stop command has been requested. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}{register\+Socket}} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket) -\begin{DoxyCompactList}\small\item\em Register a BMASocket for monitoring by BMAEPoll. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a5ab5e82ab51e0952fc8fbcc128f52900}{unregister\+Socket}} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket) -\begin{DoxyCompactList}\small\item\em Unregister a BMASocket from monitoring by BMAEPoll. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}{get\+Descriptor}} () -\begin{DoxyCompactList}\small\item\em Return the descriptor for the e\+Poll socket. \end{DoxyCompactList}\item -void \mbox{\hyperlink{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}{event\+Received}} (struct epoll\+\_\+event event) -\begin{DoxyCompactList}\small\item\em Dispatch event to appropriate socket. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\begin{DoxyCompactList}\small\item\em Output the threads array to the console. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1EPoll_a033633714311f3edc4127ddd1c37f299}\label{classcore_1_1EPoll_a033633714311f3edc4127ddd1c37f299}} -void {\bfseries reset\+Socket} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -int \mbox{\hyperlink{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}{max\+Sockets}} -\begin{DoxyCompactList}\small\item\em The maximum number of socket allowed. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} - -Manage socket events from the epoll system call. - -Use this object to establish a socket server using the epoll network structure of Linux. - -Use this object to establish the basis of working with multiple sockets of all sorts using the epoll capabilities of the Linux platform. \mbox{\hyperlink{classcore_1_1Socket}{Socket}} objects can register with \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} which will establish a communication mechanism with that socket. - -The maximum number of sockets to communicate with is specified on the start method. - -Threads are used to establish a read queue for epoll. The desired number of threads (or queues) is established by a parameter on the start method. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}\label{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}} -\index{core::EPoll@{core::EPoll}!EPoll@{EPoll}} -\index{EPoll@{EPoll}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{EPoll()}{EPoll()}} -{\footnotesize\ttfamily core\+::\+EPoll\+::\+EPoll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The constructor for the BMAEPoll object. \mbox{\Hypertarget{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}\label{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}} -\index{core::EPoll@{core::EPoll}!````~EPoll@{$\sim$EPoll}} -\index{````~EPoll@{$\sim$EPoll}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{$\sim$EPoll()}{~EPoll()}} -{\footnotesize\ttfamily core\+::\+EPoll\+::$\sim$\+EPoll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The destructor for the BMAEPoll object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}\label{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}} -\index{core::EPoll@{core::EPoll}!eventReceived@{eventReceived}} -\index{eventReceived@{eventReceived}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{eventReceived()}{eventReceived()}} -{\footnotesize\ttfamily void core\+::\+EPoll\+::event\+Received (\begin{DoxyParamCaption}\item[{struct epoll\+\_\+event}]{event }\end{DoxyParamCaption})} - - - -Dispatch event to appropriate socket. - -Receive the epoll events and dispatch the event to the socket making the request. \mbox{\Hypertarget{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}\label{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}} -\index{core::EPoll@{core::EPoll}!getDescriptor@{getDescriptor}} -\index{getDescriptor@{getDescriptor}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{getDescriptor()}{getDescriptor()}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::get\+Descriptor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Return the descriptor for the e\+Poll socket. - -Use this method to obtain the current descriptor socket number for the epoll function call. \mbox{\Hypertarget{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}\label{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}} -\index{core::EPoll@{core::EPoll}!isStopping@{isStopping}} -\index{isStopping@{isStopping}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{isStopping()}{isStopping()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::is\+Stopping (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Returns a true if the stop command has been requested. - -This method returns a true if the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method has been called and the epoll system is shutting. \mbox{\Hypertarget{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}\label{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}} -\index{core::EPoll@{core::EPoll}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - - - -Output the threads array to the console. - -The \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{process\+Command()}} method displays the thread array to the requesting console via the session passed as parameter. - - -\begin{DoxyParams}{Parameters} -{\em session} & the session to write the requested data to. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}\label{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}} -\index{core::EPoll@{core::EPoll}!registerSocket@{registerSocket}} -\index{registerSocket@{registerSocket}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{registerSocket()}{registerSocket()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::register\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$}]{socket }\end{DoxyParamCaption})} - - - -Register a BMASocket for monitoring by BMAEPoll. - -Use register\+Socket to add a new socket to the e\+Poll event watch list. This enables a new BMASocket object to receive events when data is received as well as to write data output to the socket. - - -\begin{DoxyParams}{Parameters} -{\em socket} & a pointer to a BMASocket object. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -a booelean that indicates the socket was registered or not. -\end{DoxyReturn} -\mbox{\Hypertarget{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}\label{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}} -\index{core::EPoll@{core::EPoll}!start@{start}} -\index{start@{start}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{start()}{start()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::start (\begin{DoxyParamCaption}\item[{int}]{number\+Of\+Threads, }\item[{int}]{max\+Sockets }\end{DoxyParamCaption})} - - - -Start the BMAEPoll processing. - -Use the \mbox{\hyperlink{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}{start()}} method to initiate the threads and begin epoll queue processing. - - -\begin{DoxyParams}{Parameters} -{\em number\+Of\+Threads} & the number of threads to start for processing epoll entries. \\ -\hline -{\em max\+Sockets} & the maximum number of open sockets that epoll will manage. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}\label{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}} -\index{core::EPoll@{core::EPoll}!stop@{stop}} -\index{stop@{stop}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{stop()}{stop()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::stop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Stop and shut down the BMAEPoll processing. - -Use the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method to initiate the shutdown process for the epoll socket management. - -A complete shutdown of all managed sockets will be initiated by this method call. \mbox{\Hypertarget{classcore_1_1EPoll_a5ab5e82ab51e0952fc8fbcc128f52900}\label{classcore_1_1EPoll_a5ab5e82ab51e0952fc8fbcc128f52900}} -\index{core::EPoll@{core::EPoll}!unregisterSocket@{unregisterSocket}} -\index{unregisterSocket@{unregisterSocket}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{unregisterSocket()}{unregisterSocket()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::unregister\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$}]{socket }\end{DoxyParamCaption})} - - - -Unregister a BMASocket from monitoring by BMAEPoll. - -Use this method to remove a socket from receiving events from the epoll system. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}\label{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}} -\index{core::EPoll@{core::EPoll}!maxSockets@{maxSockets}} -\index{maxSockets@{maxSockets}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{maxSockets}{maxSockets}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::max\+Sockets} - - - -The maximum number of socket allowed. - -The maximum number of sockets that can be managed by the epoll system. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -EPoll.\+h\item -EPoll.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1EPoll__coll__graph.md5 b/latex/classcore_1_1EPoll__coll__graph.md5 deleted file mode 100644 index ed85b5d..0000000 --- a/latex/classcore_1_1EPoll__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -98b90bfe6ece875f9b9fa2075b6d694f \ No newline at end of file diff --git a/latex/classcore_1_1EPoll__coll__graph.pdf b/latex/classcore_1_1EPoll__coll__graph.pdf deleted file mode 100644 index d3f6ce2a1f8694b7a8bf91265dadababe0a8ba3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6390 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 X!?P0Qia(4r0t`k{@bM{XDpCAD4RF2h diff --git a/latex/classcore_1_1INotify__inherit__graph.md5 b/latex/classcore_1_1INotify__inherit__graph.md5 deleted file mode 100644 index 1ea421b..0000000 --- a/latex/classcore_1_1INotify__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f5ea77c62672e519022863919c4aea3 \ No newline at end of file diff --git a/latex/classcore_1_1INotify__inherit__graph.pdf b/latex/classcore_1_1INotify__inherit__graph.pdf deleted file mode 100644 index f4b4c532d07c1384823dbf02b402566cf9a96f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6755 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 diff --git a/latex/classcore_1_1IPAddress.tex b/latex/classcore_1_1IPAddress.tex deleted file mode 100644 index e3ae49b..0000000 --- a/latex/classcore_1_1IPAddress.tex +++ /dev/null @@ -1,56 +0,0 @@ -\hypertarget{classcore_1_1IPAddress}{}\doxysection{core\+::IPAddress Class Reference} -\label{classcore_1_1IPAddress}\index{core::IPAddress@{core::IPAddress}} - - -Inheritance diagram for core\+::IPAddress\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=172pt]{classcore_1_1IPAddress__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::IPAddress\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=172pt]{classcore_1_1IPAddress__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a31fb55b1b979f0e8a07446285f9a99f8}\label{classcore_1_1IPAddress_a31fb55b1b979f0e8a07446285f9a99f8}} -{\bfseries IPAddress} (std\+::string address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a37d942b8fae09010adbda33f714808c0}\label{classcore_1_1IPAddress_a37d942b8fae09010adbda33f714808c0}} -{\bfseries IPAddress} (std\+::string address, int port) -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a095a5ab48cc72161c1614ddfa89ac3ee}\label{classcore_1_1IPAddress_a095a5ab48cc72161c1614ddfa89ac3ee}} -struct sockaddr $\ast$ {\bfseries get\+Pointer} () -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}\label{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}} -std\+::string \mbox{\hyperlink{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}{get\+Client\+Address}} () -\begin{DoxyCompactList}\small\item\em Get the client network address as xxx.\+xxx.\+xxx.\+xxx. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}\label{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}} -std\+::string \mbox{\hyperlink{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}{get\+Client\+Address\+And\+Port}} () -\begin{DoxyCompactList}\small\item\em Get the client network address and port as xxx.\+xxx.\+xxx.\+xxx\+:ppppp. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}\label{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}} -int \mbox{\hyperlink{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}{get\+Client\+Port}} () -\begin{DoxyCompactList}\small\item\em Get the client network port number. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_ac1291bdc515fc5b2c9ba177ddec06454}\label{classcore_1_1IPAddress_ac1291bdc515fc5b2c9ba177ddec06454}} -struct sockaddr\+\_\+in {\bfseries addr} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a00856ef1b1deccd0341cd7ea6d1bc8e5}\label{classcore_1_1IPAddress_a00856ef1b1deccd0341cd7ea6d1bc8e5}} -socklen\+\_\+t {\bfseries address\+Length} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -IPAddress.\+h\item -IPAddress.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1IPAddressList.tex b/latex/classcore_1_1IPAddressList.tex deleted file mode 100644 index 654f1d8..0000000 --- a/latex/classcore_1_1IPAddressList.tex +++ /dev/null @@ -1,23 +0,0 @@ -\hypertarget{classcore_1_1IPAddressList}{}\doxysection{core\+::IPAddress\+List Class Reference} -\label{classcore_1_1IPAddressList}\index{core::IPAddressList@{core::IPAddressList}} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_a740cf5f7e2633836b7a741b9f048036f}\label{classcore_1_1IPAddressList_a740cf5f7e2633836b7a741b9f048036f}} -std\+::map$<$ std\+::string, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} $>$ {\bfseries get\+List} () -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_ab98c5a502d8f5cfb4e8c451c48dbc131}\label{classcore_1_1IPAddressList_ab98c5a502d8f5cfb4e8c451c48dbc131}} -void {\bfseries add} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} ip\+Address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_a86e9890e15e8e0d87e34f36b637d5c40}\label{classcore_1_1IPAddressList_a86e9890e15e8e0d87e34f36b637d5c40}} -bool {\bfseries remove} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} ip\+Address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_add254c996687fd8f9ada0b5335e477cd}\label{classcore_1_1IPAddressList_add254c996687fd8f9ada0b5335e477cd}} -bool {\bfseries contains} (std\+::string ip\+Address) -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -IPAddress\+List.\+h\item -IPAddress\+List.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1IPAddress__coll__graph.md5 b/latex/classcore_1_1IPAddress__coll__graph.md5 deleted file mode 100644 index 36b9e9f..0000000 --- a/latex/classcore_1_1IPAddress__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7f7ac9b55c8d17116ebd1c299b44c348 \ No newline at end of file diff --git a/latex/classcore_1_1IPAddress__coll__graph.pdf b/latex/classcore_1_1IPAddress__coll__graph.pdf deleted file mode 100644 index 7837edf8b1b79e93cad1a520c2ce593b4864a6f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6660 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 diff --git a/latex/classcore_1_1IPAddress__inherit__graph.md5 b/latex/classcore_1_1IPAddress__inherit__graph.md5 deleted file mode 100644 index 36b9e9f..0000000 --- a/latex/classcore_1_1IPAddress__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7f7ac9b55c8d17116ebd1c299b44c348 \ No newline at end of file diff --git a/latex/classcore_1_1IPAddress__inherit__graph.pdf b/latex/classcore_1_1IPAddress__inherit__graph.pdf deleted file mode 100644 index 7f03a26b5c527e06d0be2bbae73dcb435c9feb2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6660 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 diff --git a/latex/classcore_1_1Object.tex b/latex/classcore_1_1Object.tex deleted file mode 100644 index 0893207..0000000 --- a/latex/classcore_1_1Object.tex +++ /dev/null @@ -1,25 +0,0 @@ -\hypertarget{classcore_1_1Object}{}\doxysection{core\+::Object Class Reference} -\label{classcore_1_1Object}\index{core::Object@{core::Object}} - - -Inheritance diagram for core\+::Object\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Object__inherit__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Object_aa096b2bab35f1019c91077ef3ec106ce}\label{classcore_1_1Object_aa096b2bab35f1019c91077ef3ec106ce}} -std\+::string {\bfseries name} -\item -\mbox{\Hypertarget{classcore_1_1Object_ad503c264c529c41c25528c34421c83df}\label{classcore_1_1Object_ad503c264c529c41c25528c34421c83df}} -std\+::string {\bfseries tag} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Object.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Object__inherit__graph.md5 b/latex/classcore_1_1Object__inherit__graph.md5 deleted file mode 100644 index f95bc31..0000000 --- a/latex/classcore_1_1Object__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0072956b617b9e545ab65b3703c04beb \ No newline at end of file diff --git a/latex/classcore_1_1Object__inherit__graph.pdf b/latex/classcore_1_1Object__inherit__graph.pdf deleted file mode 100644 index 17df090d553a2b2af213c3fc9c6917e078c4bbb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8382 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 diff --git a/latex/classcore_1_1SessionFilter.tex b/latex/classcore_1_1SessionFilter.tex deleted file mode 100644 index a6c9358..0000000 --- a/latex/classcore_1_1SessionFilter.tex +++ /dev/null @@ -1,32 +0,0 @@ -\hypertarget{classcore_1_1SessionFilter}{}\doxysection{core\+::Session\+Filter Class Reference} -\label{classcore_1_1SessionFilter}\index{core::SessionFilter@{core::SessionFilter}} - - -Inheritance diagram for core\+::Session\+Filter\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=185pt]{classcore_1_1SessionFilter__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Session\+Filter\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=185pt]{classcore_1_1SessionFilter__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SessionFilter_a9871d18a9f90c8028f879b0993b25b6f}\label{classcore_1_1SessionFilter_a9871d18a9f90c8028f879b0993b25b6f}} -virtual bool {\bfseries test} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Session\+Filter.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SessionFilter__coll__graph.md5 b/latex/classcore_1_1SessionFilter__coll__graph.md5 deleted file mode 100644 index f79d473..0000000 --- a/latex/classcore_1_1SessionFilter__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -18bd2019d4b8e217560cd8e7622ec59f \ No newline at end of file diff --git a/latex/classcore_1_1SessionFilter__coll__graph.pdf b/latex/classcore_1_1SessionFilter__coll__graph.pdf deleted file mode 100644 index 83a1cca3004ae768aefca23e857a924b5fa6935c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6629 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 Ukf{u1P;e-MLrO~Tgg(dr0Hxl5TmS$7 diff --git a/latex/classcore_1_1SessionFilter__inherit__graph.md5 b/latex/classcore_1_1SessionFilter__inherit__graph.md5 deleted file mode 100644 index f79d473..0000000 --- a/latex/classcore_1_1SessionFilter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -18bd2019d4b8e217560cd8e7622ec59f \ No newline at end of file diff --git a/latex/classcore_1_1SessionFilter__inherit__graph.pdf b/latex/classcore_1_1SessionFilter__inherit__graph.pdf deleted file mode 100644 index fdbb22f86e8d2e98a96e6c6db8cb9fff43d122bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6629 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 diff --git a/latex/classcore_1_1Socket.tex b/latex/classcore_1_1Socket.tex deleted file mode 100644 index 4e3d81b..0000000 --- a/latex/classcore_1_1Socket.tex +++ /dev/null @@ -1,230 +0,0 @@ -\hypertarget{classcore_1_1Socket}{}\doxysection{core\+::Socket Class Reference} -\label{classcore_1_1Socket}\index{core::Socket@{core::Socket}} - - -{\ttfamily \#include $<$Socket.\+h$>$} - - - -Inheritance diagram for core\+::Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Socket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1Socket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}{Socket}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual \mbox{\hyperlink{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}{$\sim$\+Socket}} () -\item -void \mbox{\hyperlink{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}{shutdown}} (std\+::string text=\char`\"{}unknown\char`\"{}) -\item -void \mbox{\hyperlink{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}{set\+Descriptor}} (int descriptor) -\begin{DoxyCompactList}\small\item\em Set the descriptor for the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}\label{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}} -int \mbox{\hyperlink{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}{get\+Descriptor}} () -\begin{DoxyCompactList}\small\item\em Get the descriptor for the socket. ~\newline - \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1Socket_a4c9a3396693ff919eb827729f9e72b03}{event\+Received}} (struct epoll\+\_\+event event) -\begin{DoxyCompactList}\small\item\em Parse epoll event and call specified callbacks. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}{write}} (std\+::string data) -\item -\mbox{\Hypertarget{classcore_1_1Socket_a4855594af113428eacdaa7448d661121}\label{classcore_1_1Socket_a4855594af113428eacdaa7448d661121}} -void {\bfseries write} (char $\ast$buffer, int length) -\item -\mbox{\Hypertarget{classcore_1_1Socket_ad67b0f95127bd987b98323120f40f6ed}\label{classcore_1_1Socket_ad67b0f95127bd987b98323120f40f6ed}} -void {\bfseries output} (std\+::stringstream \&out) -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{on\+Register}} () -\begin{DoxyCompactList}\small\item\em Called before the socket has registered with the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}\label{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}} -virtual void \mbox{\hyperlink{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}{on\+Registered}} () -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_aa1d380db54a5b2efbc859e3744bd898b}\label{classcore_1_1Socket_aa1d380db54a5b2efbc859e3744bd898b}} -virtual void {\bfseries on\+Unregister} () -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}{on\+Unregistered}} () -\begin{DoxyCompactList}\small\item\em Called when the socket has finished unregistering for the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a43247bfe43c2be5ab3863d9057d46b7c}\label{classcore_1_1Socket_a43247bfe43c2be5ab3863d9057d46b7c}} -bool {\bfseries needs\+To\+Write} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a9f9a89f5caab42f77b3759ceb54a0a78}\label{classcore_1_1Socket_a9f9a89f5caab42f77b3759ceb54a0a78}} -bool {\bfseries reset} = false -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a71c77a162698b9c074a7497beab7b5d8}\label{classcore_1_1Socket_a71c77a162698b9c074a7497beab7b5d8}} -void {\bfseries set\+Buffer\+Size} (int length) -\item -\mbox{\Hypertarget{classcore_1_1Socket_aa9195676bb7ecbec167ecf5336921cbb}\label{classcore_1_1Socket_aa9195676bb7ecbec167ecf5336921cbb}} -int {\bfseries get\+Buffer\+Size} () -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{on\+Data\+Received}} (std\+::string data) -\begin{DoxyCompactList}\small\item\em Called when data is received from the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_ae048b57ac2c34381378f3da0e758b3c8}\label{classcore_1_1Socket_ae048b57ac2c34381378f3da0e758b3c8}} -virtual void {\bfseries on\+Data\+Received} (coreutils\+::\+ZString \&data) -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}{receive\+Data}} (coreutils\+::\+ZString \&buffer) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a3b0b139ac7da581f0d969f6ae9a0c97c}\label{classcore_1_1Socket_a3b0b139ac7da581f0d969f6ae9a0c97c}} -\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \& {\bfseries e\+Poll} -\item -\mbox{\Hypertarget{classcore_1_1Socket_aa09db6c6298d20ea76c6e65f8bffd3dc}\label{classcore_1_1Socket_aa09db6c6298d20ea76c6e65f8bffd3dc}} -bool {\bfseries shut\+Down} = false -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Socket}{Socket}} - -The core component to managing a socket. - -Hooks into the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} through the registration and unregistration process and provides a communication socket of the specified protocol type. This object provides for all receiving data threading through use of the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} object and also provides buffering for output data requests to the socket. - -A program using a socket object can request to open a socket (network or device) and communicate through the streambuffer interface of the socket object. - -The socket side of the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} accepts EPOLLIN event and will maintain the data in a buffer for the stream readers to read. A on\+Data\+Received event is then sent with the data received in the buffer that can be read through the stream. Only sockets that send events to epoll can be used with this object. - -When writing to the stream the data is written into a buffer and a EPOLLOUT is scheduled. Upon receiving the EPOLLOUT event then the buffer is written to the socket output. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}\label{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}} -\index{core::Socket@{core::Socket}!Socket@{Socket}} -\index{Socket@{Socket}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{Socket()}{Socket()}} -{\footnotesize\ttfamily core\+::\+Socket\+::\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{std\+::string}]{text = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -Constructor - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & The \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} socket descriptor. \\ -\hline -{\em text} & A title for this socket. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}\label{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}} -\index{core::Socket@{core::Socket}!````~Socket@{$\sim$Socket}} -\index{````~Socket@{$\sim$Socket}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{$\sim$Socket()}{~Socket()}} -{\footnotesize\ttfamily core\+::\+Socket\+::$\sim$\+Socket (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -Destructor - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Socket_a4c9a3396693ff919eb827729f9e72b03}\label{classcore_1_1Socket_a4c9a3396693ff919eb827729f9e72b03}} -\index{core::Socket@{core::Socket}!eventReceived@{eventReceived}} -\index{eventReceived@{eventReceived}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{eventReceived()}{eventReceived()}} -{\footnotesize\ttfamily bool core\+::\+Socket\+::event\+Received (\begin{DoxyParamCaption}\item[{struct epoll\+\_\+event}]{event }\end{DoxyParamCaption})} - - - -Parse epoll event and call specified callbacks. - -The event received from epoll is sent through the event\+Received method which will parse the event and call the read and write callbacks on the socket. - -This method is called by the BMAEPoll object and should not be called from any user extended classes unless an epoll event is being simulated. - -The return value of false will delete the socket object causing the destructors to run. The return value of true will enable the socket on e\+Poll to receive more events. \mbox{\Hypertarget{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}\label{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}} -\index{core::Socket@{core::Socket}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called when data is received from the socket. - -The on\+Connected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The on\+Data\+Received method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN - - -\begin{DoxyParams}{Parameters} -{\em data} & the data that has been received from the socket. \\ -\hline -\end{DoxyParams} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}{core\+::\+UDPServer\+Socket}}, and \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{core\+::\+TCPServer}}. - -\mbox{\Hypertarget{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}\label{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}} -\index{core::Socket@{core::Socket}!onRegister@{onRegister}} -\index{onRegister@{onRegister}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onRegister()}{onRegister()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Register (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - - - -Called before the socket has registered with the epoll processing. - -The on\+Register method is called before the socket is registered with e\+Poll so objects extending the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} definition can initialize the socket before receiving events. Evoked when the descriptor is set using set\+Descriptor for the socket. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}\label{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}} -\index{core::Socket@{core::Socket}!onUnregistered@{onUnregistered}} -\index{onUnregistered@{onUnregistered}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onUnregistered()}{onUnregistered()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Unregistered (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - - - -Called when the socket has finished unregistering for the epoll processing. - -The on\+Unregistered method is called whenever the socket is unregistered with e\+Poll and socket communcation events will be stopped. The default method will close the socket and clean up the connection. If this is overridden by an extended object then the object should call this method to clean the socket up. \mbox{\Hypertarget{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}\label{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}} -\index{core::Socket@{core::Socket}!receiveData@{receiveData}} -\index{receiveData@{receiveData}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -receive\+Data will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}\label{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}} -\index{core::Socket@{core::Socket}!setDescriptor@{setDescriptor}} -\index{setDescriptor@{setDescriptor}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{setDescriptor()}{setDescriptor()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::set\+Descriptor (\begin{DoxyParamCaption}\item[{int}]{descriptor }\end{DoxyParamCaption})} - - - -Set the descriptor for the socket. - -set\+Descriptor establishes the file descriptor for the socket and registers the socket on the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} controller. set\+Descriptor will invoke the \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{on\+Register()}} event. \mbox{\Hypertarget{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}\label{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}} -\index{core::Socket@{core::Socket}!shutdown@{shutdown}} -\index{shutdown@{shutdown}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{shutdown()}{shutdown()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::shutdown (\begin{DoxyParamCaption}\item[{std\+::string}]{text = {\ttfamily \char`\"{}unknown\char`\"{}} }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}{shutdown()}} method to terminate the socket connection and remove resources. This method is provided to ensure that all destructors are called for all inherited objects with a virtual destructor. \mbox{\Hypertarget{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}\label{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}} -\index{core::Socket@{core::Socket}!write@{write}} -\index{write@{write}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{write()}{write()}} -{\footnotesize\ttfamily int core\+::\+Socket\+::write (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})} - -Write data to the socket. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Socket.\+h\item -Socket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Socket__coll__graph.md5 b/latex/classcore_1_1Socket__coll__graph.md5 deleted file mode 100644 index 7ac220a..0000000 --- a/latex/classcore_1_1Socket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -601ffa7b2c2f8f190cefef69aff78b25 \ No newline at end of file diff --git a/latex/classcore_1_1Socket__coll__graph.pdf b/latex/classcore_1_1Socket__coll__graph.pdf deleted file mode 100644 index 3ac9b17b9e7f588f95900be0c980c7ef87325305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7380 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%0DmGNCW!#b0hEq71aCP4tgJvN1{jlIl7!rnd#D%? z5^RcqaSLPQhQ@n{g9s`~|8J%uyzH+Xi8sG_639A_w!>3J==`4sHZPzLA%80XhX1mI z5_GW`J1<+nEuGI6iN<0;5D|#D2pGiYh{L&iN{IrVj{xd`MY=npZ9PRWSO@;Sk*^3i zt>ZlfmGEAZd`ePKFcb=gK_tKkFicEL7>wWrgZckn>7TZIMITh`=l48JA`Lzxx`0w1~ut-41V+sFdVu1DsRK%XM ti#`T}1N?gka|mx7R(G?$ {\bfseries subscribers} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Subscription.\+h\item -Subscription.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionManager.tex b/latex/classcore_1_1SubscriptionManager.tex deleted file mode 100644 index 321cb86..0000000 --- a/latex/classcore_1_1SubscriptionManager.tex +++ /dev/null @@ -1,62 +0,0 @@ -\hypertarget{classcore_1_1SubscriptionManager}{}\doxysection{core\+::Subscription\+Manager Class Reference} -\label{classcore_1_1SubscriptionManager}\index{core::SubscriptionManager@{core::SubscriptionManager}} - - -Inheritance diagram for core\+::Subscription\+Manager\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=226pt]{classcore_1_1SubscriptionManager__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Subscription\+Manager\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=226pt]{classcore_1_1SubscriptionManager__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_ad1a021be5d55d1e9f0944c97f79ae9e2}\label{classcore_1_1SubscriptionManager_ad1a021be5d55d1e9f0944c97f79ae9e2}} -int {\bfseries add} (\mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} \&subscription) -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_aed407c183c390f4459bb6527b30c8198}\label{classcore_1_1SubscriptionManager_aed407c183c390f4459bb6527b30c8198}} -int {\bfseries remove\+Session\+Subscriptions} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -int \mbox{\hyperlink{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\end{DoxyCompactItemize} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}\label{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}} -\index{core::SubscriptionManager@{core::SubscriptionManager}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::SubscriptionManager@{core::SubscriptionManager}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Subscription\+Manager\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object. - - -\begin{DoxyParams}{Parameters} -{\em request} & The request that was entered by the user to invoke this command. \\ -\hline -{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition. -\end{DoxyReturn} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Subscription\+Manager.\+h\item -Subscription\+Manager.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionManager__coll__graph.md5 b/latex/classcore_1_1SubscriptionManager__coll__graph.md5 deleted file mode 100644 index 254c729..0000000 --- a/latex/classcore_1_1SubscriptionManager__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64505415bff46906df08a028a1ac62cb \ No newline at end of file diff --git a/latex/classcore_1_1SubscriptionManager__coll__graph.pdf b/latex/classcore_1_1SubscriptionManager__coll__graph.pdf deleted file mode 100644 index b5491751404985cac6b572b0ffc5f623a8a3d957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7513 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 Oa9Mg`VJ#DF`u_n@a3rY! diff --git a/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 b/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 deleted file mode 100644 index 254c729..0000000 --- a/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64505415bff46906df08a028a1ac62cb \ No newline at end of file diff --git a/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf b/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf deleted file mode 100644 index b5491751404985cac6b572b0ffc5f623a8a3d957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7513 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 Oa9Mg`VJ#DF`u_n@a3rY! diff --git a/latex/classcore_1_1Subscription__coll__graph.md5 b/latex/classcore_1_1Subscription__coll__graph.md5 deleted file mode 100644 index 59c55fd..0000000 --- a/latex/classcore_1_1Subscription__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2729f4733c58f8e25137c8d4e188b60b \ No newline at end of file diff --git a/latex/classcore_1_1Subscription__coll__graph.pdf b/latex/classcore_1_1Subscription__coll__graph.pdf deleted file mode 100644 index 33d7f0bbdd9ce81e4ee290f89c5eef5d2e1f1f65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14241 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 diff --git a/latex/classcore_1_1TCPServer.tex b/latex/classcore_1_1TCPServer.tex deleted file mode 100644 index 15c37d1..0000000 --- a/latex/classcore_1_1TCPServer.tex +++ /dev/null @@ -1,207 +0,0 @@ -\hypertarget{classcore_1_1TCPServer}{}\doxysection{core\+::TCPServer Class Reference} -\label{classcore_1_1TCPServer}\index{core::TCPServer@{core::TCPServer}} - - -{\ttfamily \#include $<$TCPServer.\+h$>$} - - - -Inheritance diagram for core\+::TCPServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=304pt]{classcore_1_1TCPServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}{TCPServer}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address, std\+::string delimiter=\char`\"{} \char`\"{}, int depth=10, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual \mbox{\hyperlink{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}{$\sim$\+TCPServer}} () -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a554ec6e67d368e7bb545d95635c0a0df}\label{classcore_1_1TCPServer_a554ec6e67d368e7bb545d95635c0a0df}} -virtual void {\bfseries session\+Error\+Handler} (std\+::string error\+String, std\+::stringstream \&out) -\item -virtual \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}{get\+Socket\+Accept}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&epoll) -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a88c603cd5df9dbc1632fd4b5e164d75b}\label{classcore_1_1TCPServer_a88c603cd5df9dbc1632fd4b5e164d75b}} -void {\bfseries remove\+From\+Session\+List} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$session) -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}\label{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}} -void \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{output}} (std\+::stringstream \&out) -\begin{DoxyCompactList}\small\item\em Output the consoles array to the console. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a9cfcf2984ddc7e1d8f157c9f07ad03e1}\label{classcore_1_1TCPServer_a9cfcf2984ddc7e1d8f157c9f07ad03e1}} -void {\bfseries send\+To\+All} (std\+::stringstream \&out) -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}{send\+To\+All}} (std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&sender, \mbox{\hyperlink{classcore_1_1SessionFilter}{Session\+Filter}} filter) -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}{send\+To\+All}} (std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&sender) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -std\+::vector$<$ \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ $>$ \mbox{\hyperlink{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}{sessions}} -\item -\mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} \mbox{\hyperlink{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}{commands}} -\item -\mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}{black\+List}} -\item -\mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}{white\+List}} -\item -\mbox{\hyperlink{classcore_1_1SubscriptionManager}{Subscription\+Manager}} \mbox{\hyperlink{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}{subscriptions}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{on\+Data\+Received}} (std\+::string data) override -\item -int \mbox{\hyperlink{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} - -Manage a socket connection as a TCP server type. Connections to the socket are processed through the accept functionality. - -A list of connections is maintained in a vector object. - -This object extends the BMACommand object as well so it can be added to a Console object and process commands to display status information. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}\label{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}} -\index{core::TCPServer@{core::TCPServer}!TCPServer@{TCPServer}} -\index{TCPServer@{TCPServer}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{TCPServer()}{TCPServer()}} -{\footnotesize\ttfamily core\+::\+TCPServer\+::\+TCPServer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}}}]{address, }\item[{std\+::string}]{delimiter = {\ttfamily \char`\"{}~\char`\"{}}, }\item[{int}]{depth = {\ttfamily 10}, }\item[{std\+::string}]{text = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -The constructor for the \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} object. - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} instance that manages the socket. \\ -\hline -{\em url} & the IP address for the socket to receive connection requests. \\ -\hline -{\em port} & the port number that the socket will listen on. \\ -\hline -{\em command\+Name} & the name of the command used to invoke the status display for this object. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}\label{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}} -\index{core::TCPServer@{core::TCPServer}!````~TCPServer@{$\sim$TCPServer}} -\index{````~TCPServer@{$\sim$TCPServer}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{$\sim$TCPServer()}{~TCPServer()}} -{\footnotesize\ttfamily core\+::\+TCPServer\+::$\sim$\+TCPServer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The destructor for this object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}\label{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}} -\index{core::TCPServer@{core::TCPServer}!getSocketAccept@{getSocketAccept}} -\index{getSocketAccept@{getSocketAccept}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{getSocketAccept()}{getSocketAccept()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+TCPServer\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. - -Reimplemented in \mbox{\hyperlink{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}{core\+::\+Console\+Server}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}\label{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}} -\index{core::TCPServer@{core::TCPServer}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the virtual data\+Received since for the server these are requests to accept the new connection socket. No data is to be read or written when this method is called. It is the response to the fact that a new connection is coming into the system - - -\begin{DoxyParams}{Parameters} -{\em data} & the pointer to the buffer containing the received data. \\ -\hline -{\em length} & the length of the associated data buffer. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}\label{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}} -\index{core::TCPServer@{core::TCPServer}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+TCPServer\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -This method is called when the \mbox{\hyperlink{classcore_1_1Command}{Command}} associated with this object is requested because a user has typed in the associated command name on a command entry line. - - -\begin{DoxyParams}{Parameters} -{\em the} & session object to write the output to. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}\label{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}} -\index{core::TCPServer@{core::TCPServer}!sendToAll@{sendToAll}} -\index{sendToAll@{sendToAll}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sendToAll()}{sendToAll()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::send\+To\+All (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{sender }\end{DoxyParamCaption})} - -Use this send\+To\+All method to output the contents of the out stream to all the connections on the server excluding the sender session and the entries identified by the passed in filter object. \mbox{\Hypertarget{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}\label{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}} -\index{core::TCPServer@{core::TCPServer}!sendToAll@{sendToAll}} -\index{sendToAll@{sendToAll}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sendToAll()}{sendToAll()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::send\+To\+All (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{sender, }\item[{\mbox{\hyperlink{classcore_1_1SessionFilter}{Session\+Filter}}}]{filter }\end{DoxyParamCaption})} - -Use this send\+To\+All method to output the contents of the out stream to all the connections on the server excluding the sender session. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}\label{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}} -\index{core::TCPServer@{core::TCPServer}!blackList@{blackList}} -\index{blackList@{blackList}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{blackList}{blackList}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}}$\ast$ core\+::\+TCPServer\+::black\+List} - -If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted. \mbox{\Hypertarget{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}\label{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}} -\index{core::TCPServer@{core::TCPServer}!commands@{commands}} -\index{commands@{commands}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{commands}{commands}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} core\+::\+TCPServer\+::commands} - -The commands object is a \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} and is used to store \mbox{\hyperlink{classcore_1_1Command}{Command}} objects to be parsed and run as data comes into the session. \mbox{\Hypertarget{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}\label{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}} -\index{core::TCPServer@{core::TCPServer}!sessions@{sessions}} -\index{sessions@{sessions}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sessions}{sessions}} -{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$$>$ core\+::\+TCPServer\+::sessions} - -The list of sessions that are currently open and being maintained by this object. \mbox{\Hypertarget{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}\label{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}} -\index{core::TCPServer@{core::TCPServer}!subscriptions@{subscriptions}} -\index{subscriptions@{subscriptions}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{subscriptions}{subscriptions}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1SubscriptionManager}{Subscription\+Manager}} core\+::\+TCPServer\+::subscriptions} - -The \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} Manager tracks all subscriptions on the server. \mbox{\Hypertarget{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}\label{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}} -\index{core::TCPServer@{core::TCPServer}!whiteList@{whiteList}} -\index{whiteList@{whiteList}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{whiteList}{whiteList}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}}$\ast$ core\+::\+TCPServer\+::white\+List} - -If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPServer.\+h\item -TCPServer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPServer__coll__graph.md5 b/latex/classcore_1_1TCPServer__coll__graph.md5 deleted file mode 100644 index 07d9f0d..0000000 --- a/latex/classcore_1_1TCPServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6217c13639011961a1bf70a3e5264d12 \ No newline at end of file diff --git a/latex/classcore_1_1TCPServer__coll__graph.pdf b/latex/classcore_1_1TCPServer__coll__graph.pdf deleted file mode 100644 index 23388c60912fbea5a86c7067736f3a113a506224..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13204 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 a$F@5P?uI%W*&r|kDni7;aZ_EM=>Gx#s>vq+ diff --git a/latex/classcore_1_1TCPServer__inherit__graph.md5 b/latex/classcore_1_1TCPServer__inherit__graph.md5 deleted file mode 100644 index aaf0df0..0000000 --- a/latex/classcore_1_1TCPServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b99be97b5935f58c2a5f55c17513c720 \ No newline at end of file diff --git a/latex/classcore_1_1TCPServer__inherit__graph.pdf b/latex/classcore_1_1TCPServer__inherit__graph.pdf deleted file mode 100644 index 3c2e06ff439e62d814fcce89c8fb16eebba276ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9185 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 Q4gxMGM$} - - - -Inheritance diagram for core\+::TCPSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=320pt]{classcore_1_1TCPSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a7e1192babcdeb688f463d3e9e85d0979}\label{classcore_1_1TCPSession_a7e1192babcdeb688f463d3e9e85d0979}} -{\bfseries TCPSession} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{output}} (std\+::stringstream \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}{send}} () -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}{terminate}} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a2c39191d695d79891989ea628f42c0a8}\label{classcore_1_1TCPSession_a2c39191d695d79891989ea628f42c0a8}} -\mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ {\bfseries grab} = NULL -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a265d9493fa544e601b5ad5fb1663340c}\label{classcore_1_1TCPSession_a265d9493fa544e601b5ad5fb1663340c}} -\mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \& {\bfseries server} -\item -std\+::stringstream \mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}\label{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}} -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}{on\+Registered}} () override -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}{on\+Data\+Received}} (coreutils\+::\+ZString \&data) override -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}{on\+Line\+Received}} (coreutils\+::\+ZString \&line) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}{on\+Block\+Received}} (coreutils\+::\+ZString \&block) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}{on\+Connected}} () -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{protocol}} (coreutils\+::\+ZString \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}{set\+Block\+Size}} (int size=0) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} - -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} defines the nature of the interaction with the client and stores persistent data for a defined session. \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} objects are not sockets but instead provide a communications control mechanism. Protocol conversations are provided through extensions from this object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}\label{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}} -\index{core::TCPSession@{core::TCPSession}!onBlockReceived@{onBlockReceived}} -\index{onBlockReceived@{onBlockReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onBlockReceived()}{onBlockReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Block\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the on\+Block\+Received method to receive a string of characters that represents a single block of data of length determined by the block length value. If on\+Data\+Received was overriden this method will not be called unless the on\+Data\+Received calls this method explicitly using the class and member name. \mbox{\Hypertarget{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}\label{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}} -\index{core::TCPSession@{core::TCPSession}!onConnected@{onConnected}} -\index{onConnected@{onConnected}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onConnected()}{onConnected()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Connected (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -This method is called from within the protocol method when protocol is called on the initial connection where the data is an empty string. Use this method to deliver a message to the connection upon connection. \mbox{\Hypertarget{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}\label{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}} -\index{core::TCPSession@{core::TCPSession}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override this method to receive data directly from the socket as data is received. If you need data split by line termination characters then override the on\+Line\+Received method instead. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}\label{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}} -\index{core::TCPSession@{core::TCPSession}!onLineReceived@{onLineReceived}} -\index{onLineReceived@{onLineReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onLineReceived()}{onLineReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Line\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{line }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the on\+Line\+Received method to receive a string of characters that represents a single line of data terminated by a LF or CRLF. If on\+Data\+Received was overriden this method will not be called unless the on\+Data\+Received calls this method explicitly using the class and member name. \mbox{\Hypertarget{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}\label{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}} -\index{core::TCPSession@{core::TCPSession}!output@{output}} -\index{output@{output}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{core\+::\+TCPSocket}}. - - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}\label{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}} -\index{core::TCPSession@{core::TCPSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input. - -When data is received within the session two modes are available to pass the data through the protocol method\+: LINE or BLOCK. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}{core\+::\+TLSSession}}, and \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{core\+::\+Console\+Session}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}\label{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}} -\index{core::TCPSession@{core::TCPSession}!send@{send}} -\index{send@{send}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{send()}{send()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::send (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The send method is used to output the contents of the out stream to the session containing the stream. \mbox{\Hypertarget{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}\label{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}} -\index{core::TCPSession@{core::TCPSession}!setBlockSize@{setBlockSize}} -\index{setBlockSize@{setBlockSize}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{setBlockSize()}{setBlockSize()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::set\+Block\+Size (\begin{DoxyParamCaption}\item[{int}]{size = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} - -Use set\+Block\+Size to set the amount of data that should be read at once from the session data buffer. If this value is set to 0 then the data will be retrieved \mbox{\Hypertarget{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}\label{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}} -\index{core::TCPSession@{core::TCPSession}!terminate@{terminate}} -\index{terminate@{terminate}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{terminate()}{terminate()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::terminate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use this method to terminate this \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}\label{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}} -\index{core::TCPSession@{core::TCPSession}!out@{out}} -\index{out@{out}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{out}{out}} -{\footnotesize\ttfamily std\+::stringstream core\+::\+TCPSession\+::out} - -Use out to send data to the session socket or other session sockets. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSession.\+h\item -TCPSession.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSession__coll__graph.md5 b/latex/classcore_1_1TCPSession__coll__graph.md5 deleted file mode 100644 index a022454..0000000 --- a/latex/classcore_1_1TCPSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3b790dd1292cdd59467f33301651c136 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession__coll__graph.pdf b/latex/classcore_1_1TCPSession__coll__graph.pdf deleted file mode 100644 index 326a39f7f497bc6de95e1e4ccbd748a45a1868d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13812 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 diff --git a/latex/classcore_1_1TCPSocket.tex b/latex/classcore_1_1TCPSocket.tex deleted file mode 100644 index ac37dba..0000000 --- a/latex/classcore_1_1TCPSocket.tex +++ /dev/null @@ -1,71 +0,0 @@ -\hypertarget{classcore_1_1TCPSocket}{}\doxysection{core\+::TCPSocket Class Reference} -\label{classcore_1_1TCPSocket}\index{core::TCPSocket@{core::TCPSocket}} - - -{\ttfamily \#include $<$TCPSocket.\+h$>$} - - - -Inheritance diagram for core\+::TCPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=275pt]{classcore_1_1TCPSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_a09089f0bc701edcf6c148958fd29d374}\label{classcore_1_1TCPSocket_a09089f0bc701edcf6c148958fd29d374}} -{\bfseries TCPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_aa7ffbbd17827ffe769684fa8345862d6}\label{classcore_1_1TCPSocket_aa7ffbbd17827ffe769684fa8345862d6}} -{\bfseries TCPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text) -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_a22dae8f5b7989d206fab918297e0df94}\label{classcore_1_1TCPSocket_a22dae8f5b7989d206fab918297e0df94}} -void {\bfseries connect} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} \&address) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{output}} (std\+::stringstream \&out) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_abe7d0a740dc0c19c058661270a6fb630}\label{classcore_1_1TCPSocket_abe7d0a740dc0c19c058661270a6fb630}} -\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} {\bfseries ip\+Address} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSocket}{TCPSocket}} - -Provides a network TCP socket. - -For accessing TCP network functions use this object. The connection oriented nature of TCP provides a single client persistent connection with data error correction and a durable synchronous data connection. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}\label{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}} -\index{core::TCPSocket@{core::TCPSocket}!output@{output}} -\index{output@{output}!core::TCPSocket@{core::TCPSocket}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSocket\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+TLSSession}}, \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{core\+::\+TCPServer}}, and \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+TCPSession}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSocket.\+h\item -TCPSocket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSocket__coll__graph.md5 b/latex/classcore_1_1TCPSocket__coll__graph.md5 deleted file mode 100644 index 1a3f265..0000000 --- a/latex/classcore_1_1TCPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a33fab216720a2263f2d7805928efbed \ No newline at end of file diff --git a/latex/classcore_1_1TCPSocket__coll__graph.pdf b/latex/classcore_1_1TCPSocket__coll__graph.pdf deleted file mode 100644 index 2c6e5c70303c2df4be3b5233a846df7c34187c5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9749 zcmcI~c|6qL_kX1jWyz9dWMp4wGsc#(@4Kv_!PpsQMp2S5St3NTCL-C_h=}ZkP_`o3 zk}M&6mcFl{_1))>_wV!g{9Z5SzV5l_b?-gro^xLJah{h~Pf0}-CWfTqeKc3FNhJk_ zg0VKvRI;*Qh!)1(f#3*+K>?Zp6&MVLs5rS2FgT!eMH4Ve7+b6zhDuJ33Qxdc&~8-T z$@#{EI_xmID{Cg}p4)US<4=Txln&&aQO@MWhETl7Kc`^vu;=}JaZP1W8kc4_-|%9= z9BV29U){)5us^LkbbTXs+eU*tDR%PR<~Wk`uAtv`qfx@j3OD}_MGDy#_RVua6(PT8 zYKw{|VhHEh6_P+%jhv8;hbbXM6^1xF4M9n3?)Wu>R)&0enS_$j-ZMuTx3mfd)bV0v zE`F4+I_^WCRx(Z`($)vP)jFt;V16sES})#GA6snX@b0j~Owjv)6djs@;h>|Z-^mUw z=8MY7g68K>hRwOjz2zvaX@GIxg(ykC&(%(@RyKXM_9l`#Ibgmv3AtD?N;b!MTRkC- zi1Fl3CDTz?p`8!4gZjQu=lvw;k)KyK5>uw~-XmX~jX1}~8-XGs8KRDCdDldSzjT2e z%=T?=YkkNa;7>2&t2(qec0#{bK)@kf)B8(Gemk32W%|lFDZ{1K7C9pyA(oW~&blm? zxPmS(2)X(Fl+p==5G%8W6_Jv=kDqcms6mv90>dDGdll{zeDvc@^;hTD-VltNqryTN z&qXbDW>O7@S&P}Kbjr-`R5J+p7<504xtzn55= z_SEMX*^TQf`N~uUY9AD2YGNcroU*u$ghb02D2(N}Q(ZpF#PT2Fz8$7~;^;#~0r~>l zb8%gC^vQykSgXaf3SJI|Q-N66DAwD0FBwiRIgnpcjk>fShYH;KaICzLCrbD|wOOTN zVI=tr)@_N!o#Z5}4{gOjO14j+;Dx0?W)_J0#ZQmkTFx3*-`Liw`Bs=CSmj`It}j&+ z#rv-N^XGN?&H9}KZPm0_s4(t!-)$XuBDu+~Z;&1U??53?BnDDV@~0Q=x{b0oLDi4| zxC~fUmP7z92pS4hzz{`wFboW_MFYQpBLNM2zYrCyJK;BOdr_z;6bys?@I-(M`1>&l z_|M_M5F;NC3>YHs?v5qwj&0~=L)ay0Ik~&+Q3yCMTY?@MhXICw?vnJq&~|!QCwBrK zYylRR0$d&ihQX1)N;qnl3>22TFBo8K3Ex=(+7H&fHu>M?{e3pJ1ShOJ=|$jz7=j^Z z4b*?sfJd+ZkF6^jkGI9*FxD_@m?75I1w#;XB)GW>lGwhhM8R-ZVA%x{u>OyvSJuP2y8dh7#s7QZ;eQJ+4h6#z zfZz!6UnLR-CXs>S58=Plez5+JgjdA6xuMfmH@fACA~F{oRse z-z54!ZT|=H2lM|(1L}J6c6K-n9{;a(Ao1VpK>R=G010dcc1<4+m-zDuuz%QI>pwjK zAn&>doTMzkd;Ukd(6w;};>^ER1nRpYEC8uUL4mYqA^8WXBpC{+Bq@tjl6VcMEPn)% zzayv~+5rRR1@A?O@4@nC_=RX=?3~aFSZ^Q(l6FUM6cP-V`r#ppKhWOXnQt}#DqiU5}q=7N(g#z0kpMEo8b z4KR4D7tR)g2a`TMdt(~@7U%I`B#C?PyFd!^Fp|UufT!;jyJ`YfcdxdqBw!JL3$nky zXutM_zr_1b`$E!idpk%N7zKk%{;^Sj|3nK=eVSpfh^< z+zh#nJuK;cIimDT-5IcSak&6;ai$DsC>s=}5(;zfVnG@^(B<w1BP%2(`Se8| zDJz;U3BZ${yxiBkT)w^Lx3>9tI9bY}w*PDX$Lo3uA$Mcx!3A%Y9GI_^xLb&DeTfO8 zeC+_)A?D5~xH5CaA%ePI)~8o4S_oK`f?96- z1C8q-t{6KaI~%3ybhl}h&9$X7>D!IW8LMvaL+V#YHV}81 zLk%;y28{ckgfVvrvgK@0o#qasL@$M$q4J3^ZM|^v5!OVV{(K$M*NzUeU2i0%ikVN6nj#9n&tka=}2SKV%a3 zn(fLNda`Igj3sA8lTx#(>PobX#j9Qp3-^lWTdSfQGZs#Ait(1^cix}|T;{?j^#}J& zhsL<}g@i9(3v{)2rBmknyiDnsvf%t#Mq7J+;;HoLDC$eVmTjU!Cg(gIVvU#ITITAG zISyy(E6btN(W4OT9i=Rvsp-r12_B^e?>jDbNQCG7vPGZrClPdHK$C=!#%I?j?=H!p{lLf~N4WP6n?`u%0|UI1Y4*9CSX1ZwgZG(uO77IPZ*KBsYQdo(DxBVv0P4%kMk z5HmLNZpkY$k{QKsSCL0py*lQ0Q~9&2t7dIv#>vo#swY{ zI9ghxZdRujseDMpZ@h}-iFVi9GP~sShuN7J4rJ5oekRXReo9n4 zxOlEuB+2fzE7xG0o5MCT`>m1X)$Ic%{$g~@1Ize zWoTJDIj@W@=e^Z%TQ3g3C?sy7r;A*M9q{Kc)xg!l$Oe zO4ZNAMyHD(n?K|eR-O)I8M8Itu+em&E_nJb?ygD;N0;v1OUaI*w1ee*X+L`ff43W;Ws~9B|RA1nnx!#1?mcM)3GRb zyFTZZXFFhEG4o&VJ3KJMOm18_kyeavRIe z9<*Zy*QzSXJk`OSU#};G2fP7GCe!5WbWI(~dJR*+dPpj>^OpDLK~&BP+aP_qZ}{^{ zFOz3kDvr%|PcmwkA;t8cz8dIz(-*)N#v62Alk!aE;cOjtlv9q1#QVn1yZvR4718Rk zlN_FWnS7^i9b9|N#qXtO_l%<-#f8YIYBdpJvzpvqbo3aDAHySty&awxI27#ge~Yb< zTf~^D52jbJ36;m5+xA!S+g|4!c)3P#RK!B|@=b*F#+T@})T~TDNg;=hQeDxDDw)Yc zgFUY*S|~y+c!gCW$gOV~qmR87xYc-uK0!brJe0dkYo8-H$?Mqt^o&gNTef;l9>x0l znb5ra%sY_92P*cbBE1=;Vj@}-u-65q9?>fVL^a-eWEiA?E+{uOtv5b=d)8-;FYUTp z-%~MDf)@W_@-CNST=H6W&kahN9g-7MJGW*t@=XJ zdL~0>lCr(wiwnGEL4_wwe7Dv!IhdGS*{@aznOaDp+g2lkwuGdUgSPT>#$EJVj@tQm z@}0er^T;K)sbV>NTHJ9dy_mgUWu+_XT_y)EaiP&;rS9%W5fJ4ny$(fb(7bf;ee_at z)ySi&uAQs}2i6zI)Q0p+%=CD9$8Ju$JITeg`-ohBUUmg1%VjaE+Y++b$#7DuQv3X$Wvjf;8vmnkqz0U@T8&TUF2QKlY9}OZ-g0QCH5tL0nG5ZHyHbl3(R>z3esvo`hC;MjXd zv%s{M#+2Q3LN2hK^s@hApTP(fF2Ffl(W(m+l+TD(QixU0LQ2ZJaP%I3BYCk{)RGBW z(mjBC!VrzEm%MK$Xy%;kBP1%(5k0Ae&#ZhsR>I(0EEnAQ3BNJ)^zqQZIn@G0|LvKV z5pCK68m1f;qYpid9}5lTj!W?L@RjjPUb?d?HfpUNadUt4dG@>%U^3fyK)DwdlNnH}x>^OL_)QtH+#_jyV?cNdL3n`5WCylKy zE+8{k28@^nUuHz9r)-aqUC8E^%7`pU{5W>^fU{lAy!sg^h;B--UxdiuDIjXIKI1o_3^ot%$gQ5m$S69 zR6ZkIXgeV@t*}<S*Lp8-UA2AUk^z41ry;+?b zTV-!$-FHuvKQ%%g*;R) zo&*D3mXwLd>?$zbLdN_LdvQ9~h^|Lcu*EkQ#sa8a84!5|d!R^EO8v`@;FKOqi z;XY3$iKaN)WK0HDR{6FcHmi7I@>-X$;a3}fHOshUSZ^)&qhVu;0HpUs@aAmI>J+N* zeoGn`vzsTORS0i%LrZu5X>r+dVuo(NTTH5qQsT#&8A_2b5inKR;OQXO80PVgk@L?h z3kvYO6vStax1aPn=z7#<6bi>bXJ5Z)%5MLvc9|`c?!{S%txz~9o#Mrz z&cdbBxYHbpn|d-Fr7_=PvEzdqx}S8Usb|=^hGx34b4o);-}zA=XogyXUzCfrW8Z_c zMdG^kRSpM^tqH8G=Re?F&%eCClH%dP73Y2Zm*o%3T|J)7bNZRmI9_qNud%nM|xr5?w-EQe_HqHMgzzWoI%t$=xiRVx?_a%zHBa ztx8XJoa&uI#Va>cm&?u!eTd~FH;27XXj>hMr%&+(h*^H>@`8Y z$QW!Z9%?3_Ol+m2ir#tsxZmeoEs=3NV(nNjgBXu3r$MAc2i1170@V}7oH<7fuO0l2 zAeyRhaYRta=E>CMGVQlY&d(36vx)@iPC0jTf2MDV%5gskPBj`Gw&+0`a9Lij&V8ix z&eHVc91f}yVDBI#>$?R1`hTg%8A zNUr%4XQ995an({y;gK=N#|zOZmLm(%96Nyx!63hu(F)MZ{<=zg3YnI)H~Tp=8q8?4 zbD8=W$>vqha0jnRR=15Z2FHN>8b%KWkAv7GLF0ObXYLKP9RO{qM#4@9-&g%I&~58c zrX~Bu1tN3n<4gdz++x3#Wcz3en`GlCIG7AHJXut`Zy4V2w8pBuaNla5*?<+K$81EK z=W7SeKm!^TYzZ1Js?(t8n?sIs|H0{;*uj}*%(xON-aeOpv-wt55gDx2$s@{5}HF%9VJ@B0v9RC(N3 zctMkA@kx~0e(Y(Vq0z`-Q%d?(Jd_(0t8GtceVg%|4)pg2!c=j*&Grg_0x zQd{X{VKV3SDMV)dPts6J$~KLvqqdS87+z4WHu88UH&io0kFyg&lO6&i(4+W!aY`^2r`dkMh%Z&+>nQ5*s2HCpaVhpG(9mVI%~p_{>MUi$`bm zX)4LRgBpT@F%s7r8sOm{p){(^o-CVD?akL46pQ&*qmI~WK@$~qj)v!4iw61eWE63F z)rHtDj7TncwoXE~_EWRF6Dh6}iz!5)t`9?xE_o53=`kD`jcP(KfQ8wI_6L%`aE)Rj zw`UtT!wNs@QA-BbitxZDH*6W;Ql@vZMs0pW{;wa zXHx0uA|f1V^bgU6swv|_>Xhlb&ySz~K=<-l0D}mKapElN{x4LN!ut>uF|dFHNfys? z*nuOUW%!h&qi14VU^A7${t!ulbn=0Hm#^I)j7x|*U_@Sj?W@zX=@s#fZwg%B1`lox z9@~6>&fe`DDJS|5lN%a>H|rH<6pm@VRy$vS(#Sk?@U`J#_^ zNgE}tf<{7(GPUQI<38)sYeUn8Tw8TV{9-B{Eu5aEy=$Yh3TCy7YixNr_O)zIHFg^& zx3;fD>-{0l=OWB~P?nIuTK_JeVU4+S!gYgJT{3N+PqnYn5smpXCZ(7gZ^Ed&4Ee$j zZ6eoP8nd|2A`1Oy>rI0S2C`13N`LgziQn}4!uiI5=W3sXdfN`uhHwKY@UdO$E#KG= zPkGNl#VE;a!R>d2eB??#a-%0r8nNrL+S0UmMo+fk+_V~@mucxB#*g<5Xtw4}1qLhv z7-8>-o3rgm6_7<0)X7Rb`+38*4v{xX=u|D0VD8}G3%I)|-(gCGxWv!(`#bGT!X1?` zcw3y42LX%Q%^8zOI%qclRa7(7QqocvR&XNht)Vdnhc*OK)}jVj0JZtatb%rPa`gcV z{Nw|Z7{MgYT|AF;e82$@M!b{?hdY) z?}(*5-j)Pk0xY|okfuzklV08>D55>oFisARzgP?j7&l|E_kOTy56$1yu z_Oj={<-JMP{KLZcz)TYN?hrqbRU;rlPiotxDxmQg63f5SmJ<$7P;^A&ekel={k;x@ zN$hq<>gv~efZ@Ao``s30ci{Mile+^LV&dd3?~Zr+LD+3Iak3*gk`nz07zyh5f4vb1 z5(e<=mXIVN1QJpt{YU@^;a&?Iz=3}8pnxTlfRX?O5|21oViz3$)&BdF1b{z~c#r_t zyvIv|9!NJF1>kSMKN2OiTS@_Nk^}+)^ak7Igo4F^CnOvSMo7W;%mV;UuxH(!NT*T2 z0G$+mep^AH{^tUckRAN4k~E#{NGjTcLiR8#MXVRFcCg<%fd7s!>*26=Ubesy7y(J|>4FQ0Bfa-uldpJ7T;>EBy2f;myR|F2okT7s1(jfo=C22Sm z4ueX<;J_~&i4ujP_@Pk2-v=cr_Rnc6q5&tsI_yq-R|Me5z@MUe<1qGAB&e1O`tt%y zAdvu?X%GHRlO#FSZY$XR2MvIH0j-g)Uo$36uP*KS?R6zhskw{l0Dl92$sWxZQ8Dq0=S674{;b0TxRD!*>C`UE5K2x5okq a_Yd2_6VN!quH{IO6ct5~qJs3M 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 - - - -Inheritance diagram for core\+::TLSServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=288pt]{classcore_1_1TLSServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TLSServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TLSServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}{TLSServer}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address) -\item -\mbox{\hyperlink{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}{$\sim$\+TLSServer}} () -\item -\mbox{\Hypertarget{classcore_1_1TLSServer_a984dfd9faaa792e29f905e860d2e4a9e}\label{classcore_1_1TLSServer_a984dfd9faaa792e29f905e860d2e4a9e}} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ {\bfseries get\+Socket\+Accept} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TLSServer_ab4e788350bda508fa44604d146e7537f}\label{classcore_1_1TLSServer_ab4e788350bda508fa44604d146e7537f}} -SSL\+\_\+\+CTX $\ast$ {\bfseries ctx} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TLSServer}{TLSServer}} - -Manage a socket connection as a TLS server type. Connections to the socket are processed through the accept functionality. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}\label{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}} -\index{core::TLSServer@{core::TLSServer}!TLSServer@{TLSServer}} -\index{TLSServer@{TLSServer}!core::TLSServer@{core::TLSServer}} -\doxysubsubsection{\texorpdfstring{TLSServer()}{TLSServer()}} -{\footnotesize\ttfamily core\+::\+TLSServer\+::\+TLSServer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}}}]{address }\end{DoxyParamCaption})} - -The constructor. - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & the BMAEPoll instance that manages the socket. \\ -\hline -{\em url} & the IP address for the socket to receive connection requests. \\ -\hline -{\em port} & the port number that the socket will listen on. \\ -\hline -{\em command\+Name} & the name of the command used to invoke the status display for this object. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -the instance of the BMATLSServer\+Socket. -\end{DoxyReturn} -\mbox{\Hypertarget{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}\label{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}} -\index{core::TLSServer@{core::TLSServer}!````~TLSServer@{$\sim$TLSServer}} -\index{````~TLSServer@{$\sim$TLSServer}!core::TLSServer@{core::TLSServer}} -\doxysubsubsection{\texorpdfstring{$\sim$TLSServer()}{~TLSServer()}} -{\footnotesize\ttfamily core\+::\+TLSServer\+::$\sim$\+TLSServer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The destructor for this object. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TLSServer.\+h\item -TLSServer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TLSServer__coll__graph.md5 b/latex/classcore_1_1TLSServer__coll__graph.md5 deleted file mode 100644 index 84562fe..0000000 --- a/latex/classcore_1_1TLSServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f3c936336841423916e1884cda6e5405 \ No newline at end of file diff --git a/latex/classcore_1_1TLSServer__coll__graph.pdf b/latex/classcore_1_1TLSServer__coll__graph.pdf deleted file mode 100644 index 5aa9f5438f0e358adb410e2734e6b8944999ef02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13596 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 jKoC{TB`k0^@s=25s5l3BQDGH;bx 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 E52Yhuw*UYD diff --git a/latex/classcore_1_1TLSSession.tex b/latex/classcore_1_1TLSSession.tex deleted file mode 100644 index a835161..0000000 --- a/latex/classcore_1_1TLSSession.tex +++ /dev/null @@ -1,107 +0,0 @@ -\hypertarget{classcore_1_1TLSSession}{}\doxysection{core\+::TLSSession Class Reference} -\label{classcore_1_1TLSSession}\index{core::TLSSession@{core::TLSSession}} - - -{\ttfamily \#include $<$TLSSession.\+h$>$} - - - -Inheritance diagram for core\+::TLSSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=180pt]{classcore_1_1TLSSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TLSSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TLSSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TLSSession_ac2bd48a18a46a3b6827cd689775e3552}\label{classcore_1_1TLSSession_ac2bd48a18a46a3b6827cd689775e3552}} -{\bfseries TLSSession} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -virtual void \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{output}} (std\+::stringstream \&\mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}}) -\item -virtual void \mbox{\hyperlink{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}{protocol}} (coreutils\+::\+ZString \&data) override -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}{receive\+Data}} (coreutils\+::\+ZString \&buffer) override -\item -void \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}{on\+Register}} () -\begin{DoxyCompactList}\small\item\em Called before the socket has registered with the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}\label{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}} -void \mbox{\hyperlink{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}{on\+Registered}} () -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TLSSession}{TLSSession}} - -Provides a network TLS socket. - -For accessing TLS network functions use this object. The connection oriented nature of TLS provides a single client persistent connection with data error correction and a durable synchronous data connection. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}\label{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}} -\index{core::TLSSession@{core::TLSSession}!onRegister@{onRegister}} -\index{onRegister@{onRegister}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{onRegister()}{onRegister()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::on\+Register (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called before the socket has registered with the epoll processing. - -The on\+Register method is called before the socket is registered with e\+Poll so objects extending the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} definition can initialize the socket before receiving events. Evoked when the descriptor is set using set\+Descriptor for the socket. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}\label{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}} -\index{core::TLSSession@{core::TLSSession}!output@{output}} -\index{output@{output}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (Session) and will output the detail information for the client socket. When extending TLSSocket or Session you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+TCPSession}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}\label{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}} -\index{core::TLSSession@{core::TLSSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input. - -When data is received within the session two modes are available to pass the data through the protocol method\+: LINE or BLOCK. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{core\+::\+TCPSession}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}\label{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}} -\index{core::TLSSession@{core::TLSSession}!receiveData@{receiveData}} -\index{receiveData@{receiveData}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -receive\+Data will read the data from the socket and place it in the socket buffer. TLS layer overrides this to be able to read from SSL. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}{core\+::\+Socket}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TLSSession.\+h\item -TLSSession.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TLSSession__coll__graph.md5 b/latex/classcore_1_1TLSSession__coll__graph.md5 deleted file mode 100644 index 78e7281..0000000 --- a/latex/classcore_1_1TLSSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5fc9a5f70f8f3528a30212ff7794e169 \ No newline at end of file diff --git a/latex/classcore_1_1TLSSession__coll__graph.pdf b/latex/classcore_1_1TLSSession__coll__graph.pdf deleted file mode 100644 index bc31ece45d72f7d3288464da6ab2f84870c27f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14226 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 diff --git a/latex/classcore_1_1TLSSession__inherit__graph.md5 b/latex/classcore_1_1TLSSession__inherit__graph.md5 deleted file mode 100644 index 39319e9..0000000 --- a/latex/classcore_1_1TLSSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -547702fb1dc57c45ed4be5e1a8eb0583 \ No newline at end of file diff --git a/latex/classcore_1_1TLSSession__inherit__graph.pdf b/latex/classcore_1_1TLSSession__inherit__graph.pdf deleted file mode 100644 index 28b7d0887a01fc325b708127dafe965624b2f149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7512 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 - - - -Inheritance diagram for core\+::Thread\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1Thread__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Thread\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1Thread__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Thread_acf8e7e682431fa6a4a3a77ce9b33aefc}\label{classcore_1_1Thread_acf8e7e682431fa6a4a3a77ce9b33aefc}} -{\bfseries Thread} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1Thread_a88638bbc82ac8d05fc4400db90a89451}\label{classcore_1_1Thread_a88638bbc82ac8d05fc4400db90a89451}} -{\bfseries Thread} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1ThreadScope}{Thread\+Scope}} $\ast$thread) -\item -void \mbox{\hyperlink{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}{start}} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_a9ba3b9a5127dcfa0ee2c5f315d6a648d}\label{classcore_1_1Thread_a9ba3b9a5127dcfa0ee2c5f315d6a648d}} -void {\bfseries join} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_a0b5d8efe9bf913e06a7768cb5ef75c8a}\label{classcore_1_1Thread_a0b5d8efe9bf913e06a7768cb5ef75c8a}} -std\+::string {\bfseries get\+Status} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_adddf5bccd9189cbd81eeadf0311dbdd6}\label{classcore_1_1Thread_adddf5bccd9189cbd81eeadf0311dbdd6}} -pid\+\_\+t {\bfseries get\+Thread\+Id} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_aca6a18a5aba7e87fe91a828f4896d654}\label{classcore_1_1Thread_aca6a18a5aba7e87fe91a828f4896d654}} -int {\bfseries get\+Count} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_aa5b676aa441735c2ac60d05fd3ab02b5}\label{classcore_1_1Thread_aa5b676aa441735c2ac60d05fd3ab02b5}} -void {\bfseries output} (std\+::stringstream \&data) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Thread}{Thread}} - -This thread object is designed to be the thread processor for the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} object. It wraps the thread object to allow maintaining a status value for monitoring the thread activity. \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} will instantiate a \mbox{\hyperlink{classcore_1_1Thread}{Thread}} object for each thread specified in the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}}\textquotesingle{}s start method. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}\label{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}} -\index{core::Thread@{core::Thread}!start@{start}} -\index{start@{start}!core::Thread@{core::Thread}} -\doxysubsubsection{\texorpdfstring{start()}{start()}} -{\footnotesize\ttfamily void core\+::\+Thread\+::start (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Start the thread object. This will cause the epoll scheduler to commence reading the epoll queue. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Thread.\+h\item -Thread.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ThreadScope.tex b/latex/classcore_1_1ThreadScope.tex deleted file mode 100644 index 975b049..0000000 --- a/latex/classcore_1_1ThreadScope.tex +++ /dev/null @@ -1,7 +0,0 @@ -\hypertarget{classcore_1_1ThreadScope}{}\doxysection{core\+::Thread\+Scope Class Reference} -\label{classcore_1_1ThreadScope}\index{core::ThreadScope@{core::ThreadScope}} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Thread\+Scope.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Thread__coll__graph.md5 b/latex/classcore_1_1Thread__coll__graph.md5 deleted file mode 100644 index bbc1377..0000000 --- a/latex/classcore_1_1Thread__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6c8d331b9f919c769d46392c930a2b0 \ No newline at end of file diff --git a/latex/classcore_1_1Thread__coll__graph.pdf b/latex/classcore_1_1Thread__coll__graph.pdf deleted file mode 100644 index b83ce2ce08fd6d6ec7680bc4cb90bc73d5065ae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6406 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 - - - -Inheritance diagram for core\+::Timer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=156pt]{classcore_1_1Timer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Timer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1Timer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Timer_aa12f319bab9c7a350244c4d47fe59de9}\label{classcore_1_1Timer_aa12f319bab9c7a350244c4d47fe59de9}} -{\bfseries Timer} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1Timer_a6ba8de81f8e3b26fd132e29230646024}\label{classcore_1_1Timer_a6ba8de81f8e3b26fd132e29230646024}} -{\bfseries Timer} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, double delay) -\item -void \mbox{\hyperlink{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}{set\+Timer}} (double delay) -\item -void \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer}} () -\item -double \mbox{\hyperlink{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}{get\+Elapsed}} () -\item -\mbox{\Hypertarget{classcore_1_1Timer_afee1c871ce74e6b594bd6e64ad3cb576}\label{classcore_1_1Timer_afee1c871ce74e6b594bd6e64ad3cb576}} -double {\bfseries get\+Epoch} () -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -virtual void \mbox{\hyperlink{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}{on\+Timeout}} ()=0 -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Timer}{Timer}} - -Set and trigger callback upon specified timeout. - -The \mbox{\hyperlink{classcore_1_1Timer}{Timer}} is used to establish a timer using the timer socket interface. It cannot be instantiated directly but must be extended. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}\label{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}} -\index{core::Timer@{core::Timer}!clearTimer@{clearTimer}} -\index{clearTimer@{clearTimer}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{clearTimer()}{clearTimer()}} -{\footnotesize\ttfamily void core\+::\+Timer\+::clear\+Timer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer()}} to unset the timer and return the timer to an idle state. \mbox{\Hypertarget{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}\label{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}} -\index{core::Timer@{core::Timer}!getElapsed@{getElapsed}} -\index{getElapsed@{getElapsed}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{getElapsed()}{getElapsed()}} -{\footnotesize\ttfamily double core\+::\+Timer\+::get\+Elapsed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}{get\+Elapsed()}} method to obtain the amount of time that has elapsed since the timer was set. \mbox{\Hypertarget{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}\label{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}} -\index{core::Timer@{core::Timer}!onTimeout@{onTimeout}} -\index{onTimeout@{onTimeout}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{onTimeout()}{onTimeout()}} -{\footnotesize\ttfamily virtual void core\+::\+Timer\+::on\+Timeout (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}} - -This method is called when the time out occurs. \mbox{\Hypertarget{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}\label{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}} -\index{core::Timer@{core::Timer}!setTimer@{setTimer}} -\index{setTimer@{setTimer}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{setTimer()}{setTimer()}} -{\footnotesize\ttfamily void core\+::\+Timer\+::set\+Timer (\begin{DoxyParamCaption}\item[{double}]{delay }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}{set\+Timer()}} method to set the time out value for timer. Setting the timer also starts the timer countdown. The \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer()}} method can be used to reset the timer without triggering the \mbox{\hyperlink{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}{on\+Timeout()}} callback. - - -\begin{DoxyParams}{Parameters} -{\em delay} & the amount of time in seconds to wait before trigering the on\+Timeout function. \\ -\hline -\end{DoxyParams} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Timer.\+h\item -Timer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Timer__coll__graph.md5 b/latex/classcore_1_1Timer__coll__graph.md5 deleted file mode 100644 index b287f16..0000000 --- a/latex/classcore_1_1Timer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7797114d50492239a6a8ab7ebcacad0b \ No newline at end of file diff --git a/latex/classcore_1_1Timer__coll__graph.pdf b/latex/classcore_1_1Timer__coll__graph.pdf deleted file mode 100644 index 4bf9272dcc6e755b6278ebc45cf02b0df89f2b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7945 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

    LXHRT z+Iwh*zi`gZw`bSMNT`hd_@6I1JT#!?RyH!=TWgJr*&eVh# z!R(B!=7P$XtiM=|xK^zpHI1r~y6?1iNx$F3RR|#V)M{71v9DT82*QrJ^p0vCO_L zk%qSd%X4K*svn-MP_T^+@O~t62q6E{4uA{+$dau{KpL7C9YCx89A0->Hc&=spaEr7 zGzLJaYN!L6sv0ZmfiVM5CJ}TfUS#5m;G#n(KjQ{V6MnjU^|L?@2)c`D;zW==+Mh#M%uqa3Zf=*R+h+d33gleiou3_1G z1QJkV-_e??%kc-3lWIdDL7FR=8KB*-A%f(X-$Mk+RCG2CrX&xD1a_C7LR0{lC#YXy z%wEsx2o^M|M*sm7dgTdt5{(L=R8UwIBp~n2U>v6JLVz+Oh9gn`PMIt=;q0I(Pg_`!GrD;Nf&4u0&=0Z>*kq`D@kZT$;FLVo`XQ-j$3 z7xrIvXiYGFzuRF@7%+mrV@QlD=)%7+b@e|m6cPhw!tZu!YS=&4qNb(+()KSq4YfbU z1I_+e3kHk+g9D5@<`)haG(5No(Ae_773m0=YU=D*SW>BA!a(s_))0*;o?u=q>zM3+ WM0gs59T|)UQUkVq`@RDPu>S%6G|*N6 diff --git a/latex/classcore_1_1UDPServerSocket.tex b/latex/classcore_1_1UDPServerSocket.tex deleted file mode 100644 index 039ecb6..0000000 --- a/latex/classcore_1_1UDPServerSocket.tex +++ /dev/null @@ -1,80 +0,0 @@ -\hypertarget{classcore_1_1UDPServerSocket}{}\doxysection{core\+::UDPServer\+Socket Class Reference} -\label{classcore_1_1UDPServerSocket}\index{core::UDPServerSocket@{core::UDPServerSocket}} - - -{\ttfamily \#include $<$UDPServer\+Socket.\+h$>$} - - - -Inheritance diagram for core\+::UDPServer\+Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=290pt]{classcore_1_1UDPServerSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::UDPServer\+Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=245pt]{classcore_1_1UDPServerSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a6fee7bc6dc2f94d48734c07cbc918734}\label{classcore_1_1UDPServerSocket_a6fee7bc6dc2f94d48734c07cbc918734}} -{\bfseries UDPServer\+Socket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string url, short int port, std\+::string command\+Name) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}{on\+Data\+Received}} (std\+::string data) override -\begin{DoxyCompactList}\small\item\em Called when data is received from the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_aef32dee99a40a8951a708e99776539d4}\label{classcore_1_1UDPServerSocket_aef32dee99a40a8951a708e99776539d4}} -int {\bfseries process\+Command} (std\+::string request, std\+::stringstream \&data) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a83362532c66271699c4e60d1da2a41bc}\label{classcore_1_1UDPServerSocket_a83362532c66271699c4e60d1da2a41bc}} -std\+::vector$<$ Session $\ast$ $>$ {\bfseries sessions} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1UDPSocket}{UDPSocket}} - -Manage a socket connection as a UDP server type. Connections to the socket are processed through the session list functionality. A list of sessions is maintained in a vector object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}\label{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}} -\index{core::UDPServerSocket@{core::UDPServerSocket}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::UDPServerSocket@{core::UDPServerSocket}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+UDPServer\+Socket\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called when data is received from the socket. - -The on\+Connected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The on\+Data\+Received method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN - - -\begin{DoxyParams}{Parameters} -{\em data} & the data that has been received from the socket. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -UDPServer\+Socket.\+h\item -UDPServer\+Socket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1UDPServerSocket__coll__graph.md5 b/latex/classcore_1_1UDPServerSocket__coll__graph.md5 deleted file mode 100644 index eb429e0..0000000 --- a/latex/classcore_1_1UDPServerSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5fe54968761d04dd96b6878affeacc10 \ No newline at end of file diff --git a/latex/classcore_1_1UDPServerSocket__coll__graph.pdf b/latex/classcore_1_1UDPServerSocket__coll__graph.pdf deleted file mode 100644 index adb25b5f6d2675d6cd34df389e91987d480abe52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8863 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 CD9Q)` diff --git a/latex/doxygen.sty b/latex/doxygen.sty deleted file mode 100644 index 8f59bcc..0000000 --- a/latex/doxygen.sty +++ /dev/null @@ -1,576 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{doxygen} - -% Packages used by this style file -\RequirePackage{alltt} -%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{calc} -\RequirePackage{float} -%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{verbatim} -\RequirePackage[table]{xcolor} -\RequirePackage{longtable_doxygen} -\RequirePackage{tabu_doxygen} -\RequirePackage{fancyvrb} -\RequirePackage{tabularx} -\RequirePackage{multicol} -\RequirePackage{multirow} -\RequirePackage{hanging} -\RequirePackage{ifpdf} -\RequirePackage{adjustbox} -\RequirePackage{amssymb} -\RequirePackage{stackengine} -\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis - -%---------- Internal commands used in this style file ---------------- - -\newcommand{\ensurespace}[1]{% - \begingroup% - \setlength{\dimen@}{#1}% - \vskip\z@\@plus\dimen@% - \penalty -100\vskip\z@\@plus -\dimen@% - \vskip\dimen@% - \penalty 9999% - \vskip -\dimen@% - \vskip\z@skip% hide the previous |\vskip| from |\addvspace| - \endgroup% -} - -\newcommand{\DoxyHorRuler}[1]{% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{#1=0}% - {% - \hrule% - }% - {% - \hrulefilll% - }% -} -\newcommand{\DoxyLabelFont}{} -\newcommand{\entrylabel}[1]{% - {% - \parbox[b]{\labelwidth-4pt}{% - \makebox[0pt][l]{\DoxyLabelFont#1}% - \vspace{1.5\baselineskip}% - }% - }% -} - -\newenvironment{DoxyDesc}[1]{% - \ensurespace{4\baselineskip}% - \begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - %\setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - }% - \item[#1]% -}{% - \end{list}% -} - -\newsavebox{\xrefbox} -\newlength{\xreflength} -\newcommand{\xreflabel}[1]{% - \sbox{\xrefbox}{#1}% - \setlength{\xreflength}{\wd\xrefbox}% - \ifthenelse{\xreflength>\labelwidth}{% - \begin{minipage}{\textwidth}% - \setlength{\parindent}{0pt}% - \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% - \end{minipage}% - }{% - \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% - }% -} - -%---------- Commands used by doxygen LaTeX output generator ---------- - -% Used by

     ... 
    -\newenvironment{DoxyPre}{% - \small% - \begin{alltt}% -}{% - \end{alltt}% - \normalsize% -} -% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. -\newlength{\CodeWidthChar} -\newlength{\CodeHeightChar} -\settowidth{\CodeWidthChar}{?} -\settoheight{\CodeHeightChar}{?} -% Necessary for hanging indent -\newlength{\DoxyCodeWidth} - -\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} - -\newcommand\NiceSpace{% - \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% -} - -% Used by @code ... @endcode -\newenvironment{DoxyCode}[1]{% - \par% - \scriptsize% - \normalfont\ttfamily% - \rightskip0pt plus 1fil% - \settowidth{\DoxyCodeWidth}{000000}% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{\equal{#1}{0}} - { - {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% - } - { - {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% - } - -}{% - \normalfont% - \normalsize% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% -} - -% Redefining not defined characters, i.e. "Replacement Character" in tex output. -\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% - \textcolor{white}{\sffamily\bfseries\small ?}}{% - \rotatebox{45}{$\blacksquare$}}}} - -% Used by @example, @include, @includelineno and @dontinclude -\newenvironment{DoxyCodeInclude}[1]{% - \DoxyCode{#1}% -}{% - \endDoxyCode% -} - -% Used by @verbatim ... @endverbatim -\newenvironment{DoxyVerb}{% - \footnotesize% - \verbatim% -}{% - \endverbatim% - \normalsize% -} - -% Used by @verbinclude -\newenvironment{DoxyVerbInclude}{% - \DoxyVerb% -}{% - \endDoxyVerb% -} - -% Used by numbered lists (using '-#' or
      ...
    ) -\newenvironment{DoxyEnumerate}{% - \enumerate% -}{% - \endenumerate% -} - -% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) -\newenvironment{DoxyItemize}{% - \itemize% -}{% - \enditemize% -} - -% Used by description lists (using
    ...
    ) -\newenvironment{DoxyDescription}{% - \description% -}{% - \enddescription% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if caption is specified) -\newenvironment{DoxyImage}{% - \begin{figure}[H]% - \centering% -}{% - \end{figure}% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if no caption is specified) -\newenvironment{DoxyImageNoCaption}{% - \begin{center}% -}{% - \end{center}% -} - -% Used by @image -% (only if inline is specified) -\newenvironment{DoxyInlineImage}{% -}{% -} - -% Used by @attention -\newenvironment{DoxyAttention}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @author and @authors -\newenvironment{DoxyAuthor}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @date -\newenvironment{DoxyDate}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @invariant -\newenvironment{DoxyInvariant}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @note -\newenvironment{DoxyNote}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @post -\newenvironment{DoxyPostcond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @pre -\newenvironment{DoxyPrecond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @copyright -\newenvironment{DoxyCopyright}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @remark -\newenvironment{DoxyRemark}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @return and @returns -\newenvironment{DoxyReturn}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @since -\newenvironment{DoxySince}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @see -\newenvironment{DoxySeeAlso}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @version -\newenvironment{DoxyVersion}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @warning -\newenvironment{DoxyWarning}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @internal -\newenvironment{DoxyInternal}[1]{% - \paragraph*{#1}% -}{% -} - -% Used by @par and @paragraph -\newenvironment{DoxyParagraph}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by parameter lists -\newenvironment{DoxyParams}[2][]{% - \tabulinesep=1mm% - \par% - \ifthenelse{\equal{#1}{}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description - {\ifthenelse{\equal{#1}{1}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc - } - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields of simple structs -\newenvironment{DoxyFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields simple class style enums -\newenvironment{DoxyEnumFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for parameters within a detailed function description -\newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% -}{% -} - -% Used by return value lists -\newenvironment{DoxyRetVals}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by exception lists -\newenvironment{DoxyExceptions}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by template parameter lists -\newenvironment{DoxyTemplParams}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for member lists -\newenvironment{DoxyCompactItemize}{% - \begin{itemize}% - \setlength{\itemsep}{-3pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \setlength{\partopsep}{0pt}% -}{% - \end{itemize}% -} - -% Used for member descriptions -\newenvironment{DoxyCompactList}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - \setlength{\itemsep}{0pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \renewcommand{\makelabel}{\hfill}% - }% -}{% - \end{list}% -} - -% Used for reference lists (@bug, @deprecated, @todo, etc.) -\newenvironment{DoxyRefList}{% - \begin{list}{}{% - \setlength{\labelwidth}{10pt}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \renewcommand{\makelabel}{\xreflabel}% - }% -}{% - \end{list}% -} - -% Used by @bug, @deprecated, @todo, etc. -\newenvironment{DoxyRefDesc}[1]{% - \begin{list}{}{% - \renewcommand\makelabel[1]{\textbf{##1}}% - \settowidth\labelwidth{\makelabel{#1}}% - \setlength\leftmargin{\labelwidth+\labelsep}% - }% -}{% - \end{list}% -} - -% Used by parameter lists and simple sections -\newenvironment{Desc} -{\begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - \setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - } -}{% - \end{list}% -} - -% Used by tables -\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% -\newenvironment{TabularC}[1]% -{\tabulinesep=1mm -\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% -{\end{longtabu*}\par}% - -\newenvironment{TabularNC}[1]% -{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% -{\end{tabu}\par}% - -% Used for member group headers -\newenvironment{Indent}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - }% - \item[]\ignorespaces% -}{% - \unskip% - \end{list}% -} - -% Used when hyperlinks are turned off -\newcommand{\doxyref}[3]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% -} - -% Used to link to a table when hyperlinks are turned on -\newcommand{\doxytablelink}[2]{% - \ref{#1}% -} - -% Used to link to a table when hyperlinks are turned off -\newcommand{\doxytableref}[3]{% - \ref{#3}% -} - -% Used by @addindex -\newcommand{\lcurly}{\{} -\newcommand{\rcurly}{\}} - -% Colors used for syntax highlighting -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} - -% Color used for table heading -\newcommand{\tableheadbgcolor}{lightgray}% - -% Version of hypertarget with correct landing location -\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} - -% possibility to have sections etc. be within the margins -% unfortunately had to copy part of book.cls and add \raggedright -\makeatletter -\newcommand\doxysection{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\raggedright\normalfont\Large\bfseries}} -\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\large\bfseries}} -\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {-1em}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\raggedright\normalfont\normalsize\bfseries}} -\makeatother -% Define caption that is also suitable in a table -\makeatletter -\def\doxyfigcaption{% -\H@refstepcounter{figure}% -\@dblarg{\@caption{figure}}} -\makeatother diff --git a/latex/hierarchy.tex b/latex/hierarchy.tex deleted file mode 100644 index dd9b309..0000000 --- a/latex/hierarchy.tex +++ /dev/null @@ -1,48 +0,0 @@ -\doxysection{Class Hierarchy} -This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Command}{\pageref{classcore_1_1Command}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Command\+List}{\pageref{classcore_1_1CommandList}}{} -\item \contentsline{section}{core\+::EPoll}{\pageref{classcore_1_1EPoll}}{} -\item \contentsline{section}{core\+::Subscription\+Manager}{\pageref{classcore_1_1SubscriptionManager}}{} -\item \contentsline{section}{core\+::TCPServer}{\pageref{classcore_1_1TCPServer}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Server}{\pageref{classcore_1_1ConsoleServer}}{} -\item \contentsline{section}{core\+::TLSServer}{\pageref{classcore_1_1TLSServer}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::UDPServer\+Socket}{\pageref{classcore_1_1UDPServerSocket}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::IPAddress\+List}{\pageref{classcore_1_1IPAddressList}}{} -\item coreutils\+::Log\+Listener\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Server}{\pageref{classcore_1_1ConsoleServer}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Object}{\pageref{classcore_1_1Object}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::IPAddress}{\pageref{classcore_1_1IPAddress}}{} -\item \contentsline{section}{core\+::Session\+Filter}{\pageref{classcore_1_1SessionFilter}}{} -\item \contentsline{section}{core\+::Thread}{\pageref{classcore_1_1Thread}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Socket}{\pageref{classcore_1_1Socket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::INotify}{\pageref{classcore_1_1INotify}}{} -\item \contentsline{section}{core\+::TCPSocket}{\pageref{classcore_1_1TCPSocket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::TCPServer}{\pageref{classcore_1_1TCPServer}}{} -\item \contentsline{section}{core\+::TCPSession}{\pageref{classcore_1_1TCPSession}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::TLSSession}{\pageref{classcore_1_1TLSSession}}{} -\item \contentsline{section}{core\+::Terminal\+Session}{\pageref{classcore_1_1TerminalSession}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Session}{\pageref{classcore_1_1ConsoleSession}}{} -\end{DoxyCompactList} -\end{DoxyCompactList} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Timer}{\pageref{classcore_1_1Timer}}{} -\item \contentsline{section}{core\+::UDPSocket}{\pageref{classcore_1_1UDPSocket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::UDPServer\+Socket}{\pageref{classcore_1_1UDPServerSocket}}{} -\end{DoxyCompactList} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Subscription}{\pageref{classcore_1_1Subscription}}{} -\item \contentsline{section}{core\+::Thread\+Scope}{\pageref{classcore_1_1ThreadScope}}{} -\end{DoxyCompactList} diff --git a/latex/longtable_doxygen.sty b/latex/longtable_doxygen.sty deleted file mode 100644 index a0eb314..0000000 --- a/latex/longtable_doxygen.sty +++ /dev/null @@ -1,448 +0,0 @@ -%% -%% This is file `longtable.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% longtable.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at http://latex-project.org/bugs.html -%% (but please observe conditions on bug reports sent to that address!) -%% -%% Copyright 1993-2016 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. -%% -------------------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file may only be distributed together with a copy of the LaTeX -%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' -%% without such generated files. -%% -%% The list of all files belonging to the LaTeX `Tools Bundle' is -%% given in the file `manifest.txt'. -%% -%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle -\NeedsTeXFormat{LaTeX2e}[1995/06/01] -\ProvidesPackage{longtable_doxygen} - [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] -\def\LT@err{\PackageError{longtable}} -\def\LT@warn{\PackageWarning{longtable}} -\def\LT@final@warn{% - \AtEndDocument{% - \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% - \global\let\LT@final@warn\relax} -\DeclareOption{errorshow}{% - \def\LT@warn{\PackageInfo{longtable}}} -\DeclareOption{pausing}{% - \def\LT@warn#1{% - \LT@err{#1}{This is not really an error}}} -\DeclareOption{set}{} -\DeclareOption{final}{} -\ProcessOptions -\newskip\LTleft \LTleft=\fill -\newskip\LTright \LTright=\fill -\newskip\LTpre \LTpre=\bigskipamount -\newskip\LTpost \LTpost=\bigskipamount -\newcount\LTchunksize \LTchunksize=20 -\let\c@LTchunksize\LTchunksize -\newdimen\LTcapwidth \LTcapwidth=4in -\newbox\LT@head -\newbox\LT@firsthead -\newbox\LT@foot -\newbox\LT@lastfoot -\newcount\LT@cols -\newcount\LT@rows -\newcounter{LT@tables} -\newcounter{LT@chunks}[LT@tables] -\ifx\c@table\undefined - \newcounter{table} - \def\fnum@table{\tablename~\thetable} -\fi -\ifx\tablename\undefined - \def\tablename{Table} -\fi -\newtoks\LT@p@ftn -\mathchardef\LT@end@pen=30000 -\def\longtable{% - \par - \ifx\multicols\@undefined - \else - \ifnum\col@number>\@ne - \@twocolumntrue - \fi - \fi - \if@twocolumn - \LT@err{longtable not in 1-column mode}\@ehc - \fi - \begingroup - \@ifnextchar[\LT@array{\LT@array[x]}} -\def\LT@array[#1]#2{% - \refstepcounter{table}\stepcounter{LT@tables}% - \if l#1% - \LTleft\z@ \LTright\fill - \else\if r#1% - \LTleft\fill \LTright\z@ - \else\if c#1% - \LTleft\fill \LTright\fill - \fi\fi\fi - \let\LT@mcol\multicolumn - \let\LT@@tabarray\@tabarray - \let\LT@@hl\hline - \def\@tabarray{% - \let\hline\LT@@hl - \LT@@tabarray}% - \let\\\LT@tabularcr\let\tabularnewline\\% - \def\newpage{\noalign{\break}}% - \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% - \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% - \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption - \@tempdima\ht\strutbox - \let\@endpbox\LT@endpbox - \ifx\extrarowheight\@undefined - \let\@acol\@tabacol - \let\@classz\@tabclassz \let\@classiv\@tabclassiv - \def\@startpbox{\vtop\LT@startpbox}% - \let\@@startpbox\@startpbox - \let\@@endpbox\@endpbox - \let\LT@LL@FM@cr\@tabularcr - \else - \advance\@tempdima\extrarowheight - \col@sep\tabcolsep - \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr - \fi - \setbox\@arstrutbox\hbox{\vrule - \@height \arraystretch \@tempdima - \@depth \arraystretch \dp \strutbox - \@width \z@}% - \let\@sharp##\let\protect\relax - \begingroup - \@mkpream{#2}% - \xdef\LT@bchunk{% - \global\advance\c@LT@chunks\@ne - \global\LT@rows\z@\setbox\z@\vbox\bgroup - \LT@setprevdepth - \tabskip\LTleft \noexpand\halign to\hsize\bgroup - \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% - \endgroup - \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols - \LT@make@row - \m@th\let\par\@empty - \everycr{}\lineskip\z@\baselineskip\z@ - \LT@bchunk} -\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} -\def\LT@start{% - \let\LT@start\endgraf - \endgraf\penalty\z@\vskip\LTpre - \dimen@\pagetotal - \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \ht\LT@foot - \dimen@ii\vfuzz - \vfuzz\maxdimen - \setbox\tw@\copy\z@ - \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox - \setbox\tw@\vbox{\unvbox\tw@}% - \vfuzz\dimen@ii - \advance\dimen@ \ht - \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@\dp - \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@ -\pagegoal - \ifdim \dimen@>\z@\vfil\break\fi - \global\@colroom\@colht - \ifvoid\LT@foot\else - \advance\vsize-\ht\LT@foot - \global\advance\@colroom-\ht\LT@foot - \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ - \maxdepth\z@ - \fi - \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak - \output{\LT@output}} -\def\endlongtable{% - \crcr - \noalign{% - \let\LT@entry\LT@entry@chop - \xdef\LT@save@row{\LT@save@row}}% - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \if@filesw - {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% - \gdef\expandafter\noexpand - \csname LT@\romannumeral\c@LT@tables\endcsname - {\LT@save@row}}}% - \fi - \ifx\LT@save@row\LT@@save@row - \else - \LT@warn{Column \@width s have changed\MessageBreak - in table \thetable}% - \LT@final@warn - \fi - \endgraf\penalty -\LT@end@pen - \endgroup - \global\@mparbottom\z@ - \pagegoal\vsize - \endgraf\penalty\z@\addvspace\LTpost - \ifvoid\footins\else\insert\footins{}\fi} -\def\LT@nofcols#1&{% - \futurelet\@let@token\LT@n@fcols} -\def\LT@n@fcols{% - \advance\LT@cols\@ne - \ifx\@let@token\LT@nofcols - \expandafter\@gobble - \else - \expandafter\LT@nofcols - \fi} -\def\LT@tabularcr{% - \relax\iffalse{\fi\ifnum0=`}\fi - \@ifstar - {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr - \LT@t@bularcr}% - {\LT@t@bularcr}} -\let\LT@crcr\crcr -\let\LT@setprevdepth\relax -\def\LT@t@bularcr{% - \global\advance\LT@rows\@ne - \ifnum\LT@rows=\LTchunksize - \gdef\LT@setprevdepth{% - \prevdepth\z@\global - \global\let\LT@setprevdepth\relax}% - \expandafter\LT@xtabularcr - \else - \ifnum0=`{}\fi - \expandafter\LT@LL@FM@cr - \fi} -\def\LT@xtabularcr{% - \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} -\def\LT@ntabularcr{% - \ifnum0=`{}\fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@argtabularcr[#1]{% - \ifnum0=`{}\fi - \ifdim #1>\z@ - \unskip\@xargarraycr{#1}% - \else - \@yargarraycr{#1}% - \fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@echunk{% - \crcr\LT@save@row\cr\egroup - \global\setbox\@ne\lastbox - \unskip - \egroup} -\def\LT@entry#1#2{% - \ifhmode\@firstofone{&}\fi\omit - \ifnum#1=\c@LT@chunks - \else - \kern#2\relax - \fi} -\def\LT@entry@chop#1#2{% - \noexpand\LT@entry - {\ifnum#1>\c@LT@chunks - 1}{0pt% - \else - #1}{#2% - \fi}} -\def\LT@entry@write{% - \noexpand\LT@entry^^J% - \@spaces} -\def\LT@kill{% - \LT@echunk - \LT@get@widths - \expandafter\LT@rebox\LT@bchunk} -\def\LT@rebox#1\bgroup{% - #1\bgroup - \unvbox\z@ - \unskip - \setbox\z@\lastbox} -\def\LT@blank@row{% - \xdef\LT@save@row{\expandafter\LT@build@blank - \romannumeral\number\LT@cols 001 }} -\def\LT@build@blank#1{% - \if#1m% - \noexpand\LT@entry{1}{0pt}% - \expandafter\LT@build@blank - \fi} -\def\LT@make@row{% - \global\expandafter\let\expandafter\LT@save@row - \csname LT@\romannumeral\c@LT@tables\endcsname - \ifx\LT@save@row\relax - \LT@blank@row - \else - {\let\LT@entry\or - \if!% - \ifcase\expandafter\expandafter\expandafter\LT@cols - \expandafter\@gobble\LT@save@row - \or - \else - \relax - \fi - !% - \else - \aftergroup\LT@blank@row - \fi}% - \fi} -\let\setlongtables\relax -\def\LT@get@widths{% - \setbox\tw@\hbox{% - \unhbox\@ne - \let\LT@old@row\LT@save@row - \global\let\LT@save@row\@empty - \count@\LT@cols - \loop - \unskip - \setbox\tw@\lastbox - \ifhbox\tw@ - \LT@def@row - \advance\count@\m@ne - \repeat}% - \ifx\LT@@save@row\@undefined - \let\LT@@save@row\LT@save@row - \fi} -\def\LT@def@row{% - \let\LT@entry\or - \edef\@tempa{% - \ifcase\expandafter\count@\LT@old@row - \else - {1}{0pt}% - \fi}% - \let\LT@entry\relax - \xdef\LT@save@row{% - \LT@entry - \expandafter\LT@max@sel\@tempa - \LT@save@row}} -\def\LT@max@sel#1#2{% - {\ifdim#2=\wd\tw@ - #1% - \else - \number\c@LT@chunks - \fi}% - {\the\wd\tw@}} -\def\LT@hline{% - \noalign{\ifnum0=`}\fi - \penalty\@M - \futurelet\@let@token\LT@@hline} -\def\LT@@hline{% - \ifx\@let@token\hline - \global\let\@gtempa\@gobble - \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% - \else - \global\let\@gtempa\@empty - \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\LT@sep}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\penalty\@M}% - \@gtempa} -\def\LT@caption{% - \noalign\bgroup - \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} -\def\LT@c@ption#1[#2]#3{% - \LT@makecaption#1\fnum@table{#3}% - \def\@tempa{#2}% - \ifx\@tempa\@empty\else - {\let\\\space - \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% - \fi} -\def\LT@capti@n{% - \@ifstar - {\egroup\LT@c@ption\@gobble[]}% - {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} -\def\LT@makecaption#1#2#3{% - \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% - \sbox\@tempboxa{#1{#2: }#3}% - \ifdim\wd\@tempboxa>\hsize - #1{#2: }#3% - \else - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \endgraf\vskip\baselineskip}% - \hss}}} -\def\LT@output{% - \ifnum\outputpenalty <-\@Mi - \ifnum\outputpenalty > -\LT@end@pen - \LT@err{floats and marginpars not allowed in a longtable}\@ehc - \else - \setbox\z@\vbox{\unvbox\@cclv}% - \ifdim \ht\LT@lastfoot>\ht\LT@foot - \dimen@\pagegoal - \advance\dimen@-\ht\LT@lastfoot - \ifdim\dimen@<\ht\z@ - \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% - \@makecol - \@outputpage - \setbox\z@\vbox{\box\LT@head}% - \fi - \fi - \global\@colroom\@colht - \global\vsize\@colht - \vbox - {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% - \fi - \else - \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% - \@makecol - \@outputpage - \global\vsize\@colroom - \copy\LT@head\nobreak - \fi} -\def\LT@end@hd@ft#1{% - \LT@echunk - \ifx\LT@start\endgraf - \LT@err - {Longtable head or foot not at start of table}% - {Increase LTchunksize}% - \fi - \setbox#1\box\z@ - \LT@get@widths - \LT@bchunk} -\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} -\def\endhead{\LT@end@hd@ft\LT@head} -\def\endfoot{\LT@end@hd@ft\LT@foot} -\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} -\def\LT@startpbox#1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \vrule \@height \ht\@arstrutbox \@width \z@} -\def\LT@endpbox{% - \@finalstrut\@arstrutbox - \egroup - \the\LT@p@ftn - \global\LT@p@ftn{}% - \hfil} -\def\LT@p@ftntext#1{% - \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% - \global\LT@p@ftn\expandafter{\@tempa{#1}}}% - -\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} -\endinput -%% -%% End of file `longtable.sty'. diff --git a/latex/refman.tex b/latex/refman.tex deleted file mode 100644 index 5127819..0000000 --- a/latex/refman.tex +++ /dev/null @@ -1,213 +0,0 @@ -\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book} - -%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package -\usepackage{ifthen} -\ifx\requestedLaTeXdate\undefined -\usepackage{array} -\else -\usepackage{array}[=2016-10-06] -\fi -%% -% Packages required by doxygen -\usepackage{fixltx2e} -\usepackage{doxygen} -\usepackage{graphicx} -\usepackage[utf8]{inputenc} -\usepackage{makeidx} -\PassOptionsToPackage{warn}{textcomp} -\usepackage{textcomp} -\usepackage[nointegrals]{wasysym} -\usepackage{ifxetex} - -% Font selection -\usepackage[T1]{fontenc} -\usepackage[scaled=.90]{helvet} -\usepackage{courier} -\renewcommand{\familydefault}{\sfdefault} -\usepackage{sectsty} -\allsectionsfont{% - \fontseries{bc}\selectfont% - \color{darkgray}% -} -\renewcommand{\DoxyLabelFont}{% - \fontseries{bc}\selectfont% - \color{darkgray}% -} -\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} - -% Arguments of doxygenemoji: -% 1) '::' form of the emoji, already "LaTeX"-escaped -% 2) file with the name of the emoji without the .png extension -% in case image exist use this otherwise use the '::' form -\newcommand{\doxygenemoji}[2]{% - \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% -} -% Page & text layout -\usepackage{geometry} -\geometry{% - a4paper,% - top=2.5cm,% - bottom=2.5cm,% - left=2.5cm,% - right=2.5cm% -} -\tolerance=750 -\hfuzz=15pt -\hbadness=750 -\setlength{\emergencystretch}{15pt} -\setlength{\parindent}{0cm} -\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} -\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} -\doxynormalparskip -\makeatletter -\renewcommand{\paragraph}{% - \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@parafont% - }% -} -\renewcommand{\subparagraph}{% - \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@subparafont% - }% -} -\makeatother - -\makeatletter -\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} -\makeatother - -% Headers & footers -\usepackage{fancyhdr} -\pagestyle{fancyplain} -\renewcommand{\footrulewidth}{0.4pt} -% -\fancypagestyle{fancyplain}{ -\fancyhf{} -\fancyhead[LE, RO]{\bfseries\thepage} -\fancyhead[LO]{\bfseries\rightmark} -\fancyhead[RE]{\bfseries\leftmark} -\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } -} -% -\fancypagestyle{plain}{ -\fancyhf{} -\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } -\renewcommand{\headrulewidth}{0pt}} -% -\pagestyle{fancyplain} -% -\renewcommand{\chaptermark}[1]{% - \markboth{#1}{}% -} -\renewcommand{\sectionmark}[1]{% - \markright{\thesection\ #1}% -} - -% Indices & bibliography -\usepackage{natbib} -\usepackage[titles]{tocloft} -\setcounter{tocdepth}{3} -\setcounter{secnumdepth}{5} -\makeindex - -\usepackage{newunicodechar} - \newunicodechar{⁻}{${}^{-}$}% Superscript minus - \newunicodechar{²}{${}^{2}$}% Superscript two - \newunicodechar{³}{${}^{3}$}% Superscript three - -% Hyperlinks (required, but should be loaded last) -\ifpdf - \usepackage[pdftex,pagebackref=true]{hyperref} -\else - \ifxetex - \usepackage[pagebackref=true]{hyperref} - \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} - \fi -\fi - -\hypersetup{% - colorlinks=true,% - linkcolor=blue,% - citecolor=blue,% - unicode% -} - -% Custom commands -\newcommand{\clearemptydoublepage}{% - \newpage{\pagestyle{empty}\cleardoublepage}% -} - -\usepackage{caption} -\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} - -\usepackage{etoc} -\etocsettocstyle{\doxytocparskip}{\doxynormalparskip} -\renewcommand{\numberline}[1]{#1~} -%===== C O N T E N T S ===== - -\begin{document} -\raggedbottom - -% Titlepage & ToC -\hypersetup{pageanchor=false, - bookmarksnumbered=true, - pdfencoding=unicode - } -\pagenumbering{alph} -\begin{titlepage} -\vspace*{7cm} -\begin{center}% -{\Large My Project }\\ -\vspace*{1cm} -{\large Generated by Doxygen 1.9.1}\\ -\end{center} -\end{titlepage} -\clearemptydoublepage -\pagenumbering{roman} -\tableofcontents -\clearemptydoublepage -\pagenumbering{arabic} -\hypersetup{pageanchor=true} - -%--- Begin generated contents --- -\chapter{Hierarchical Index} -\input{hierarchy} -\chapter{Class Index} -\input{annotated} -\chapter{Class Documentation} -\input{classcore_1_1Command} -\input{classcore_1_1CommandList} -\input{classcore_1_1ConsoleServer} -\input{classcore_1_1ConsoleSession} -\input{classcore_1_1EPoll} -\input{classcore_1_1INotify} -\input{classcore_1_1IPAddress} -\input{classcore_1_1IPAddressList} -\input{classcore_1_1Object} -\input{classcore_1_1SessionFilter} -\input{classcore_1_1Socket} -\input{classcore_1_1Subscription} -\input{classcore_1_1SubscriptionManager} -\input{classcore_1_1TCPServer} -\input{classcore_1_1TCPSession} -\input{classcore_1_1TCPSocket} -\input{classcore_1_1TerminalSession} -\input{classcore_1_1Thread} -\input{classcore_1_1ThreadScope} -\input{classcore_1_1Timer} -\input{classcore_1_1TLSServer} -\input{classcore_1_1TLSSession} -\input{classcore_1_1UDPServerSocket} -\input{classcore_1_1UDPSocket} -%--- End generated contents --- - -% Index -\backmatter -\newpage -\phantomsection -\clearemptydoublepage -\addcontentsline{toc}{chapter}{\indexname} -\printindex - -\end{document} diff --git a/latex/tabu_doxygen.sty b/latex/tabu_doxygen.sty deleted file mode 100644 index 60fd7e8..0000000 --- a/latex/tabu_doxygen.sty +++ /dev/null @@ -1,2557 +0,0 @@ -%% -%% This is file `tabu.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tabu.dtx (with options: `package') -%% -%% This is a generated file. -%% Copyright (FC) 2010-2011 - lppl -%% -%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars -%% -%% ********************************************************************************************** -%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal -%% \begin{tabu} to { preamble } => target specified -%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' -%% -%% tabu works in text and in math modes. -%% -%% X columns: automatic width adjustment + horizontal and vertical alignment -%% \begin{tabu} { X[4c] X[1c] X[-2ml] } -%% -%% Horizontal lines and / or leaders: -%% \hline\hline => double horizontal line -%% \firsthline\hline => for nested tabulars -%% \lasthline\hline => for nested tabulars -%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) -%% Automatic lines / leaders : -%% \everyrow{\hline\hline} -%% -%% Vertical lines and / or leaders: -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } -%% -%% Fixed vertical spacing adjustment: -%% \extrarowheight= \extrarowdepth= -%% or: \extrarowsep= => may be prefixed by \global -%% -%% Dynamic vertical spacing adjustment: -%% \abovetabulinesep= \belowtabulinesep= -%% or: \tabulinesep= => may be prefixed by \global -%% -%% delarray.sty shortcuts: in math and text modes -%% \begin{tabu} .... \({ preamble }\) -%% -%% Algorithms reports: -%% \tracingtabu=1 \tracingtabu=2 -%% -%% ********************************************************************************************** -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% -%% This work consists of the main source file tabu.dtx -%% and the derived files -%% tabu.sty, tabu.pdf, tabu.ins -%% -%% tabu : Flexible LaTeX tabulars -%% lppl copyright 2010-2011 by FC -%% - -\NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] -\RequirePackage{array}[2008/09/09] -\RequirePackage{varwidth}[2009/03/30] -\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} -\let\tabu@AtEnd\@empty -\def\TMP@EnsureCode#1={% - \edef\tabu@AtEnd{\tabu@AtEnd - \catcode#1 \the\catcode#1}% - \catcode#1=% -}% \TMP@EnsureCode -\TMP@EnsureCode 33 = 12 % ! -\TMP@EnsureCode 58 = 12 % : (for siunitx) -\TMP@EnsureCode124 = 12 % | -\TMP@EnsureCode 36 = 3 % $ = math shift -\TMP@EnsureCode 38 = 4 % & = tab alignment character -\TMP@EnsureCode 32 = 10 % space -\TMP@EnsureCode 94 = 7 % ^ -\TMP@EnsureCode 95 = 8 % _ -%% Constants -------------------------------------------------------- -\newcount \c@taburow \def\thetaburow {\number\c@taburow} -\newcount \tabu@nbcols -\newcount \tabu@cnt -\newcount \tabu@Xcol -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcount \tabu@alloc \tabu@alloc=\m@ne -\newcount \tabu@nested -\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} -\newdimen \tabu@target -\newdimen \tabu@spreadtarget -\newdimen \tabu@naturalX -\newdimen \tabucolX -\let\tabu@DELTA \@tempdimc -\let\tabu@thick \@tempdima -\let\tabu@on \@tempdimb -\let\tabu@off \@tempdimc -\newdimen \tabu@Xsum -\newdimen \extrarowdepth -\newdimen \abovetabulinesep -\newdimen \belowtabulinesep -\newdimen \tabustrutrule \tabustrutrule \z@ -\newtoks \tabu@thebody -\newtoks \tabu@footnotes -\newsavebox \tabu@box -\newsavebox \tabu@arstrutbox -\newsavebox \tabu@hleads -\newsavebox \tabu@vleads -\newif \iftabu@colortbl -\newif \iftabu@siunitx -\newif \iftabu@measuring -\newif \iftabu@spread -\newif \iftabu@negcoef -\newif \iftabu@everyrow -\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} -\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} -\newif \iftabu@long -\newif \iftabuscantokens -\def\tabu@rescan {\tabu@verbatim \scantokens } -%% Utilities (for internal usage) ----------------------------------- -\def\tabu@gobblespace #1 {#1} -\def\tabu@gobbletoken #1#2{#1} -\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} -\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble - \else\ifx \@sptoken\@let@token - \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX - \fi\fi -}% \tabu@gobblex -\def\tabu@X{^^J} -{\obeyspaces -\global\let\tabu@spxiii= % saves an active space (for \ifx) -\gdef\tabu@@spxiii{ }} -\def\tabu@ifenvir {% only for \multicolumn - \expandafter\tabu@if@nvir\csname\@currenvir\endcsname -}% \tabu@ifenvir -\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else - \ifx\longtabu#1first\else - second\fi\fi oftwo\endcsname -}% \tabu@ifenvir -\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} -{\catcode`\&=3 -\gdef\tabu@strtrim #1{% #1 = control sequence to trim - \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi - \let\tabu@c@l@r \@empty \let#1\@empty - \else \expandafter \tabu@trimspaces #1\@nnil - \fi -}% \tabu@strtrim -\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% -\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} -\gdef\tabu@lastspace #1{\def #3{#1}% - \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi - \tabu@trimspaces #1\@nnil} -}% \catcode -\def\tabu@sanitizearg #1#2{{% - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% - \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% -}% \tabu@sanitizearg -\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% - \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! -}% \tabu@textbar -\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} -\def\tabu@everyrow@egroup{% - \iftabu@everyrow \expandafter \endgroup \the\toks@ - \else \ifnum0=`{\fi}% - \fi -}% \tabu@everyrow@egroup -\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \z@}% -}% \tabu@arstrut -\def\tabu@rearstrut {% - \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax - \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax - \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima - \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi - \tabu@mkarstrut - \fi -}% \tabu@rearstrut -\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} -\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox - \hbox to\z@{\hbox to\z@{\hss - {\tabu@DBG{cyan}\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \z@ - width \tabustrutrule}\kern-\tabustrutrule - {\tabu@DBG{pink}\vrule - height \z@ - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \tabustrutrule}}}% -}% \tabu@DBG@arstrut -\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ - \@nextchar}}% -\def\tabu@savedecl{\ifcat$\d@llarend\else - \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode -}% \tabu@savedecl -\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} -\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } -\let\tabu@trialh@@k \@empty -\def\tabu@nowrite #1#{{\afterassignment}\toks@} -\let\tabu@write\write -\let\tabu@immediate\immediate -\def\tabu@WRITE{\begingroup - \def\immediate\write{\aftergroup\endgroup - \tabu@immediate\tabu@write}% -}% \tabu@WRITE -\expandafter\def\expandafter\tabu@GenericError\expandafter{% - \expandafter\tabu@WRITE\GenericError} -\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} -\def\tabu@noxfootnote [#1]{\@gobble} -\def\tabu@nocolor #1#{\@gobble} -\newcommand*\tabu@norowcolor[2][]{} -\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% - \futurelet\@let@token \tabu@m@ybesiunitx} -\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% - \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi - \tabu@temp}% \tabu@m@ybesiunitx -}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname -\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% -%% Fixed vertical spacing adjustment: \extrarowsep ------------------ -\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% - \iftabu@everyrow \aftergroup\tabu@Gextra - \else \aftergroup\tabu@n@Gextra - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra -}% \extrarowsep -\def\tabu@extra {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setextrasep \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extra -\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} -\def\tabu@extr@ #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extr@ -\def\tabu@setextrasep {\extrarowheight=\extrarowdepth - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth -}% \tabu@setextrasep -\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} -\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} -\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} -\let\tabu@C@extra \z@ -\let\tabu@G@extra \@empty -%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- -\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% - \iftabu@everyrow \aftergroup\tabu@Glinesep - \else \aftergroup\tabu@n@Glinesep - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep -}% \tabulinesep -\def\tabu@linesep {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setlinesep \abovetabulinesep - \fi \tabu@temp}% -}% \tabu@linesep -\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} -\def\tabu@sets@p #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep - \fi \tabu@temp}% -}% \tabu@sets@p -\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep -}% \tabu@setlinesep -\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} -\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} -\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} -\let\tabu@C@linesep \z@ -\let\tabu@G@linesep \@empty -%% \global\extrarowsep and \global\tabulinesep ------------------- -\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% - \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% -}% \tabu@Gsave -\def\tabu@Grestore#1#2{% - \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax - \ifcat$\the\toks\currentgrouplevel$\else - \global\let#1\@empty \global\let#2\z@ - \the\toks\currentgrouplevel - \fi -}% \tabu@Grestore -%% Setting code for every row --------------------------------------- -\newcommand*\everyrow{\tabu@everyrow@bgroup - \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop -}% \everyrow -\def\tabu@evrstartstop {\@ifnextchar^% - {\afterassignment \tabu@evrstartstop \tabu@stop=}% - {\ifx ^\@let@token - \afterassignment\tabu@evrstartstop \tabu@start=% - \else \afterassignment\tabu@everyr@w \toks@ - \fi}% -}% \tabu@evrstartstop -\def\tabu@everyr@w {% - \xdef\tabu@everyrow{% - \noexpand\tabu@everyrowfalse - \let\noalign \relax - \noexpand\tabu@rowfontreset - \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors - \let\noexpand\tabu@docline \noexpand\tabu@docline@evr - \the\toks@ - \noexpand\tabu@evrh@@k - \noexpand\tabu@rearstrut - \global\advance\c@taburow \@ne}% - \iftabu@everyrow \toks@\expandafter - {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% - \else \xdef\tabu@evr@G{\the\toks@}% - \fi - \tabu@everyrow@egroup -}% \tabu@everyr@w -\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only -\tabu@evr{} -%% line style and leaders ------------------------------------------- -\newcommand*\newtabulinestyle [1]{% - {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% -}% \newtabulinestyle -\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% - \tabu@sanitizearg {#1}\@tempa - \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi - \global\expandafter\let - \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi -}% \tabu@newlinestyle -\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% - \iftabu@everyrow - \toks@\expandafter{\expandafter \def \expandafter - \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% - \gdef\tabu@ls@{\tabu@ls@L}% - \else - \global\let\tabu@ls@G \tabu@thestyle - \gdef\tabu@ls@{\tabu@ls@G}% - \fi - \tabu@everyrow@egroup -}% \tabulinestyle -\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} -\def\tabu@rulecolor #1{\toks@{}% - \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% - \tabu@temp - \tabu@rulearc -}% \tabu@rulecolor -\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp - \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% - \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% - \fi - \tabu@temp -}% \tabu@ruledrsc@ -\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} -\def\tabu@rule@drsc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% - \else \toks@{\def\CT@drsc@{\color #1{#2}}}% - \fi - \else - \ifx \\#1#2\\\global\let\CT@drsc@ \relax - \else \gdef\CT@drsc@{\color #1{#2}}% - \fi - \fi - \tabu@rulearc -}% \tabu@rule@drsc@ -\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} -\def\tabu@rule@arc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% - \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% - \fi - \toks@\expandafter{\the\toks@ - \let\tabu@arc@L \CT@arc@ - \let\tabu@drsc@L \CT@drsc@ - \ignorespaces}% - \else - \ifx \\#1#2\\\gdef\CT@arc@{}% - \else \gdef\CT@arc@{\color #1{#2}}% - \fi - \global\let\tabu@arc@G \CT@arc@ - \global\let\tabu@drsc@G \CT@drsc@ - \fi - \tabu@everyrow@egroup -}% \tabu@rule@arc@ -\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} -\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} -\def\tabu@rowc@lors #1#2#3{% - \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil - \@defaultunits \tabu@start =\number0#1\relax \@nnil - \ifnum \count@<\tw@ \count@=\tw@ \fi - \advance\tabu@start \m@ne - \ifnum \tabu@start<\z@ \tabu@start \z@ \fi - \tabu@rowcolorseries #3\in@..\in@ \@nnil -}% \tabu@rowcolors -\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% - \ifx \in@#1\relax - \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% - \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ - \fi - \else - \ifx \\#2\\\tabu@rowcolorserieserror \fi - \tabu@sanitizearg{#1}\tabu@temp - \tabu@sanitizearg{#2}\@tempa - \advance\count@ \m@ne - \iftabu@everyrow - \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% - \ifnum ##2=\c@taburow - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi - \ifnum \c@taburow<##2 \else - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}\fi}% - }\edef\x{\noexpand\tabu@rc@ {\the\count@} - {\the\tabu@start} - {\tabu@temp} - {\@tempa}% - }\x - \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% - \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% - \else % inside \noalign - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% - \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% - \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}}% - }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x - \global\let\tabu@rc@G \tabu@rc@ - \fi - \fi - \tabu@everyrow@egroup -}% \tabu@rowcolorseries -\tabuDisableCommands {\let\tabu@rc@ \@empty } -\def\tabu@rowcolorserieserror {\PackageError{tabu} - {Invalid syntax for \string\taburowcolors - \MessageBreak Please look at the documentation!}\@ehd -}% \tabu@rowcolorserieserror -\newcommand*\tabureset {% - \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ - \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% -}% \tabureset -%% Parsing the line styles ------------------------------------------ -\def\tabu@getline #1{\begingroup - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa - \let\tabu@thestyle \relax - \ifcsname tabu@linestyle@\@tempa \endcsname - \edef\tabu@thestyle{\endgroup - \def\tabu@thestyle{\expandafter\noexpand - \csname tabu@linestyle@\@tempa\endcsname}% - }\tabu@thestyle - \else \expandafter\tabu@definestyle \tabu@temp \@nil - \fi -}% \tabu@getline -\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter - \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen - \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined - \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs - \def\tabu@temp{\tabu@getparam{thick}}% - \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% - \fi - {% - \let\tabu@ \relax - \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) - \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% - \expandafter}\expandafter - \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) - \def\;{\def\:}% - \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) - \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) - \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi - \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi - \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi - \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen - \tabu@on \tabulineon \fi\fi - \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen - \tabu@off \tabulineoff \fi\fi - \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi - \in@true % - \else \in@false % - \fi - \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% - \else \edef\tabu@thick{\the\tabu@thick}% - \fi - \edef \tabu@thestyle ##1##2{\endgroup - \def\tabu@thestyle{% - \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} - {\the\tabu@on}{##1} - {\the\tabu@off}{##2}% - \else \noexpand\tabu@rulesstyle - {##1\vrule width \tabu@thick}% - {##1\leaders \hrule height \tabu@thick \hfil}% - \fi}% - }\expandafter \expandafter - \expandafter \tabu@thestyle \expandafter - \expandafter \expandafter - {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% -}% \tabu@definestyle -{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active - \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} - \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} -}% \catcode -\def\tabu@oxiii #1{% - \ifcase \ifx n#1\z@ \else - \ifx f#1\@ne\else - \tw@ \fi\fi - \expandafter\tabu@onxiii - \or \expandafter\tabu@ofxiii - \else o% - \fi#1}% -\def\tabu@onxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx \tabu@spxiii#2\@ne\else - \tw@ \fi\fi\fi - \tabu@getparam{on}#2\expandafter\@gobble - \or \expandafter\tabu@onxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}}% -\def\tabu@ofxiii #1#2{% - \ifx #2f\expandafter\tabu@offxiii - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@offxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx\tabu@spxiii#2\@ne \else - \tw@ \fi\fi\fi - \tabu@getparam{off}#2\expandafter\@gobble - \or \expandafter\tabu@offxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} -\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef - \ifx \tabu@#1\else % no more spec - \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi -}% \tabu@getcolor -\def\tabu@getc@l@r #1\tabu@ {% - \def\tabu@temp{#1}\tabu@strtrim \tabu@temp - \ifx \tabu@temp\@empty - \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists - \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r - \else \let\tabu@c@lon \tabu@c@l@r - \fi - %\else \tabu@warncolour{\tabu@temp}% - \fi%\fi - \tabu@ % next spec -}% \tabu@getc@l@r -\def\tabu@warncolour #1{\PackageWarning{tabu} - {Color #1 is not defined. Default color used}% -}% \tabu@warncolour -\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% - \ifx \tabu@leaders\tabu@leaders@G \else - \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi -}% \tabu@leadersstyle -\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined - \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% -}% \tabu@rulesstyle -%% The leaders boxes ------------------------------------------------ -\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color - {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor - {% % but the leaders boxes should have colors ! - \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% - \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% - \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thehleaders \tabu@theleaders - }% - {% - \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% - \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% - \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thevleaders \tabu@theleaders - }% - \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% - }% -}% \tabu@LEADERS -\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} -\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color - \global\setbox \tabu@leads=\@box{% - {#3\tabu@therule{#1}{#2}}% - \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi - {#3\tabu@therule{#1}{#2}}}% - \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss - {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% - \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% - {##1\tabu@therule{#1}{#2}}% - \xleaders \copy\tabu@leads \@ss - \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% - }\tabu@theleaders{#3}% -}% \tabu@l@@d@rs -%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- -\newcommand*\tabu {\tabu@longfalse - \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% - \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endtabu*\endcsname{\endtabu}% - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {tabu} -\let\tabu@tabular \tabular % -\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} -\newcommand*\longtabu {\tabu@longtrue - \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi - \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% - \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% - \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {longtabu} -\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} -\def\tabu@nolongtabu{\PackageError{tabu} - {longtabu requires the longtable package}\@ehd} -%% Read the target and then : \tabular or \@array ------------------ -\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } -\def\tabu@sett@rget {\tabu@target \z@ - \ifcase \ifx \bgroup\@let@token \z@ \else - \ifx \@sptoken\@let@token \@ne \else - \if t\@let@token \tw@ \else - \if s\@let@token \thr@@\else - \z@\fi\fi\fi\fi - \expandafter\tabu@begin - \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget - \or \expandafter\tabu@to - \or \expandafter\tabu@spread - \fi -}% \tabu@sett@rget -\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} -\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} -\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } -\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } -\def\tabu@linegoalt@rget {% - \ifx \tabu@temp\LNGL@setlinegoal - \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal - \tabu@begin -}% \tabu@linegoalt@rget -\def\tabu@begin #1#{% - \iftabu@measuring \expandafter\tabu@nestedmeasure \fi - \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty - \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% - \fi - \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil -}% \tabu@begin -\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup - \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% - \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% -}% \tabu@tabu@ -\def\tabu@nestedmeasure {% - \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax - \tabu@spreadtrue - \else \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}% - \expandafter\tabu@collectbody\expandafter\tabu@quickrule - \expandafter\endgroup - \fi -}% \tabu@nestedmeasure -\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} -%% \tabu@setup \tabu@init \tabu@indent -\def\tabu@setup{\tabu@alloc@ - \ifcase \tabu@nested - \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ - \let\tabu@afterendpar \par - \fi\fi\fi - \def\tabu@aligndefault{c}\tabu@init \tabu@indent - \else % - \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth - \fi - \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined - \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% - \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... - \let\@endpbox \tabu@endpbox % idem " " " " " " - \let\@tabarray \tabu@tabarray % idem " " " " " " - \tabu@setcleanup \tabu@setreset -}% \tabu@setup -\def\tabu@init{\tabu@starttimer \tabu@measuringfalse - \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% - \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline - \let\firstline \tabu@firstline \let\lastline \tabu@lastline - \let\hline \tabu@hline \let\@xhline \tabu@xhline - \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox - \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi - \tabu@trivlist % - \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext - \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering - \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft - \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering - \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft - \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont - \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x - \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar - \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok - \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn - \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! - \let\tabu@endpbox \@endpbox % idem " " " " " " " - \let\tabu@tabarray \@tabarray % idem " " " " " " " - \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) - \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi -}% \tabu@init -\def\tabu@indent{% correction for indentation - \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget - \everypar\expandafter{% - \the\everypar\everypar\expandafter{\the\everypar}% - \setbox\z@=\lastbox - \ifdim\wd\z@>\z@ \edef\tabu@thetarget - {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi - \box\z@}% - \fi\fi -}% \tabu@indent -\def\tabu@setcleanup {% saves last global assignments - \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax - \def\tabu@aftergroupcleanup{% - \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% - \else - \def\tabu@aftergroupcleanup{% - \aftergroup\aftergroup\aftergroup\tabu@cleanup - \let\tabu@aftergroupcleanup \relax}% - \fi - \let\tabu@arc@Gsave \tabu@arc@G - \let\tabu@arc@G \tabu@arc@L % - \let\tabu@drsc@Gsave \tabu@drsc@G - \let\tabu@drsc@G \tabu@drsc@L % - \let\tabu@ls@Gsave \tabu@ls@G - \let\tabu@ls@G \tabu@ls@L % - \let\tabu@rc@Gsave \tabu@rc@G - \let\tabu@rc@G \tabu@rc@L % - \let\tabu@evr@Gsave \tabu@evr@G - \let\tabu@evr@G \tabu@evr@L % - \let\tabu@celllalign@save \tabu@celllalign - \let\tabu@cellralign@save \tabu@cellralign - \let\tabu@cellleft@save \tabu@cellleft - \let\tabu@cellright@save \tabu@cellright - \let\tabu@@celllalign@save \tabu@@celllalign - \let\tabu@@cellralign@save \tabu@@cellralign - \let\tabu@@cellleft@save \tabu@@cellleft - \let\tabu@@cellright@save \tabu@@cellright - \let\tabu@rowfontreset@save \tabu@rowfontreset - \let\tabu@@rowfontreset@save\tabu@@rowfontreset - \let\tabu@rowfontreset \@empty - \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset - \edef\c@taburow@save {\the\c@taburow}% - \edef\tabu@naturalX@save {\the\tabu@naturalX}% - \let\tabu@naturalXmin@save \tabu@naturalXmin - \let\tabu@naturalXmax@save \tabu@naturalXmax - \let\tabu@mkarstrut@save \tabu@mkarstrut - \edef\tabu@clarstrut{% - \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax - \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax - \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% -}% \tabu@setcleanup -\def\tabu@cleanup {\begingroup - \globaldefs\@ne \tabu@everyrowtrue - \let\tabu@arc@G \tabu@arc@Gsave - \let\CT@arc@ \tabu@arc@G - \let\tabu@drsc@G \tabu@drsc@Gsave - \let\CT@drsc@ \tabu@drsc@G - \let\tabu@ls@G \tabu@ls@Gsave - \let\tabu@ls@ \tabu@ls@G - \let\tabu@rc@G \tabu@rc@Gsave - \let\tabu@rc@ \tabu@rc@G - \let\CT@do@color \relax - \let\tabu@evr@G \tabu@evr@Gsave - \let\tabu@celllalign \tabu@celllalign@save - \let\tabu@cellralign \tabu@cellralign@save - \let\tabu@cellleft \tabu@cellleft@save - \let\tabu@cellright \tabu@cellright@save - \let\tabu@@celllalign \tabu@@celllalign@save - \let\tabu@@cellralign \tabu@@cellralign@save - \let\tabu@@cellleft \tabu@@cellleft@save - \let\tabu@@cellright \tabu@@cellright@save - \let\tabu@rowfontreset \tabu@rowfontreset@save - \let\tabu@@rowfontreset \tabu@@rowfontreset@save - \tabu@naturalX =\tabu@naturalX@save - \let\tabu@naturalXmax \tabu@naturalXmax@save - \let\tabu@naturalXmin \tabu@naturalXmin@save - \let\tabu@mkarstrut \tabu@mkarstrut@save - \c@taburow =\c@taburow@save - \ifcase \tabu@nested \tabu@alloc \m@ne\fi - \endgroup % - \ifcase \tabu@nested - \the\tabu@footnotes \global\tabu@footnotes{}% - \tabu@afterendpar \tabu@elapsedtime - \fi - \tabu@clarstrut - \everyrow\expandafter {\tabu@evr@G}% -}% \tabu@cleanup -\let\tabu@afterendpar \relax -\def\tabu@setreset {% - \edef\tabu@savedparams {% \relax for \tabu@message@save - \ifmmode \col@sep \the\arraycolsep - \else \col@sep \the\tabcolsep \fi \relax - \arrayrulewidth \the\arrayrulewidth \relax - \doublerulesep \the\doublerulesep \relax - \extratabsurround \the\extratabsurround \relax - \extrarowheight \the\extrarowheight \relax - \extrarowdepth \the\extrarowdepth \relax - \abovetabulinesep \the\abovetabulinesep \relax - \belowtabulinesep \the\belowtabulinesep \relax - \def\noexpand\arraystretch{\arraystretch}% - \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% - \begingroup - \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu - \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi - \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi - \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L - \expandafter \endgroup \expandafter - \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena - \let\tabu@arc@G \tabu@arc@L - \let\tabu@drsc@G \tabu@drsc@L - \let\tabu@ls@G \tabu@ls@L - \let\tabu@rc@G \tabu@rc@L - \let\tabu@evr@G \tabu@evr@L}% - \def\tabu@reset{\tabu@savedparams - \tabu@everyrowtrue \c@taburow \z@ - \let\CT@arc@ \tabu@arc@L - \let\CT@drsc@ \tabu@drsc@L - \let\tabu@ls@ \tabu@ls@L - \let\tabu@rc@ \tabu@rc@L - \global\tabu@alloc \tabu@alloc@save - \everyrow\expandafter{\tabu@evr@L}}% -}% \tabu@reset -\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} -\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} -%% The Rewriting Process ------------------------------------------- -\def\tabu@newcolumntype #1{% - \expandafter\tabu@new@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@newcolumntype -\def\tabu@new@columntype #1#2#3{% - \def#1##1#3{\NC@{##1}}% - \let#2\relax \newcommand*#2% -}% \tabu@new@columntype -\def\tabu@privatecolumntype #1{% - \expandafter\tabu@private@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\expandafter\endcsname - \csname tabu@NC@find@\string#1\expandafter\endcsname - \csname tabu@NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@privatecolumntype -\def\tabu@private@columntype#1#2#3#4{% - \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% - \tabu@new@columntype#3#4% -}% \tabu@private@columntype -\let\tabu@privatecolumns \@empty -\newcommand*\tabucolumn [1]{\expandafter \def \expandafter - \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns - \NC@do #1}}% -\let\tabu@highprioritycolumns \@empty -%% The | ``column'' : rewriting process -------------------------- -\tabu@privatecolumntype |{\tabu@rewritevline} -\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% - \expandafter \NC@find \tabu@rewritten} -\def\tabu@lines #1{% - \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi - \NC@list\expandafter{\the\NC@list \NC@do #1}% -}% \tabu@lines@ -\def\tabu@vlinearg #1{% - \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% - \else\tabu@getline {#1}% - \fi - \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% - }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% - \expandafter \tabu@keepls \tabu@thestyle \@nil -}% \tabu@vlinearg -\def\tabu@keepls #1\@nil{% - \ifcat $\@cdr #1\@nil $% - \ifx \relax#1\else - \ifx \tabu@ls@#1\else - \let#1\relax - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@savels\noexpand#1}\fi\fi\fi -}% \tabu@keepls -\def\tabu@thevline {\begingroup - \ifdefined\tabu@leaders - \setbox\@tempboxa=\vtop to\dimexpr - \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% - \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox - \box\@tempboxa - \else - \tabu@thevrule - \fi \endgroup -}% \tabu@thevline -\def\tabu@savels #1{% - \expandafter\let\csname\string#1\endcsname #1% - \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset - \tabu@resetls#1}}% -\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% -%% \multicolumn inside tabu environment ----------------------------- -\tabu@newcolumntype \tabu@rewritemulticolumn{% - \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \tabu@savedecl - \tabu@privatecolumns - \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% - \let\tabu@savels \relax - \NC@find -}% \tabu@rewritemulticolumn -\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} -\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} -\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup - \tabu@everyrowtrue - \NC@list{\NC@do \tabu@rewritemulticolumn}% - \expandafter\@gobbletwo % gobbles \multispan{#1} - \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% - {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi - {#3}}% -}% \tabu@multic@lumn -%% The X column(s): rewriting process ----------------------------- -\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} -\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } -\def\tabu@siunitx #1{\@ifnextchar \bgroup - {\tabu@rewriteX@Ss{#1}} - {\tabu@nosiunitx{#1}}} -\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% - \@defaultunits \let\tabu@temp =#2\relax\@nnil - \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi - \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% - }\expandafter\NC@find \the\@temptokena \relax - }\expandafter\NC@rewrite@S \@gobble #2\relax - \else \tabu@siunitxerror - \fi - \expandafter \NC@find \tabu@rewritten -}% \tabu@rewriteX@Ss -\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! - \MessageBreak X column can only embed siunitx S or s columns}\@ehd -}% \tabu@siunitxerror -\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% - \iftabu@measuring - \else \tabu@measuringtrue % first X column found in the preamble - \let\@halignto \relax \let\tabu@halignto \relax - \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ - \else \tabu@spreadtarget \z@ \fi - \ifdim \tabu@target=\z@ - \setlength\tabu@target \tabu@thetarget - \tabu@message{\tabu@message@defaulttarget}% - \else \tabu@message{\tabu@message@target}\fi - \fi -}% \tabu@rewriteX -\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax - \def\tabu@rewritten{l}} -\def\tabu@Xarg #1#2#3{% - \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty - \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty - \ifx\\#1\\% - \def\tabu@rewritten{p}\tabucolX \p@ % - \else - \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ - \tabu@Xparse {}#1\relax - \fi - \tabu@Xrewritten{#2}{#3}% -}% \tabu@Xarg -\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} -\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} -\def\tabu@Xtest{% - \ifcase \ifx \relax\@let@token \z@ \else - \if ,\@let@token \m@ne\else - \if p\@let@token 1\else - \if m\@let@token 2\else - \if b\@let@token 3\else - \if l\@let@token 4\else - \if c\@let@token 5\else - \if r\@let@token 6\else - \if j\@let@token 7\else - \if L\@let@token 8\else - \if C\@let@token 9\else - \if R\@let@token 10\else - \if J\@let@token 11\else - \ifx \@sptoken\@let@token 12\else - \if .\@let@token 13\else - \if -\@let@token 13\else - \ifcat $\@let@token 14\else - 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \or \tabu@Xtype {p}% - \or \tabu@Xtype {m}% - \or \tabu@Xtype {b}% - \or \tabu@Xalign \raggedright\relax - \or \tabu@Xalign \centering\relax - \or \tabu@Xalign \raggedleft\relax - \or \tabu@Xalign \tabu@justify\relax - \or \tabu@Xalign \RaggedRight\raggedright - \or \tabu@Xalign \Centering\centering - \or \tabu@Xalign \RaggedLeft\raggedleft - \or \tabu@Xalign \justifying\tabu@justify - \or \expandafter \tabu@Xparsespace - \or \expandafter \tabu@Xcoef - \or \expandafter \tabu@Xm@th - \or \tabu@Xcoef{}% - \else\expandafter \tabu@Xparse - \fi -}% \tabu@Xtest -\def\tabu@Xalign #1#2{% - \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} - {Duplicate horizontal alignment specification}\fi - \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax - \else \def\tabu@Xlcr{#2}\let#2\relax\fi - \expandafter\tabu@Xparse -}% \tabu@Xalign -\def\tabu@Xtype #1{% - \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} - {Duplicate vertical alignment specification}\fi - \def\tabu@rewritten{#1}\expandafter\tabu@Xparse -}% \tabu@Xtype -\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% - \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi -}% \tabu@Xcoef -\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ - \tabu@Xparse{}% -}% \tabu@Xc@ef -\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} -\def\tabu@Xd@sp{\let\tabu@Xmath=$% - \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% - \expandafter\tabu@Xparse - \else \expandafter\tabu@Xparse\expandafter{\expandafter}% - \fi -}% \tabu@Xd@sp -\def\tabu@Xrewritten {% - \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi - \ifdim \tabucolX<\z@ \tabu@negcoeftrue - \else\ifdim \tabucolX=\z@ \tabucolX \p@ - \fi\fi - \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% - \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% - \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% - >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% - \tabu@rewritten {\tabu@hsize \tabu@temp}% - <{##2\ifx$\tabu@Xmath$\fi}}% - }\tabu@rewritten -}% \tabu@Xrewritten -\def\tabu@hsize #1#2{% - \ifdim #2\p@<\z@ - \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else - \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi - \fi - \else #2\tabucolX - \fi -}% \tabu@hsize -%% \usetabu and \preamble: rewriting process --------------------- -\tabu@privatecolumntype \usetabu [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\let\tabu@rewriteX \tabu@rewriteXrestore - \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% - \fi -}% \NC@rewrite@\usetabu -\tabu@privatecolumntype \preamble [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% - \fi -}% \NC@rewrite@\preamble -%% Controlling the rewriting process ------------------------------- -\tabu@newcolumntype \tabu@rewritefirst{% - \iftabu@long \aftergroup \tabu@longpream % - \else \aftergroup \tabu@pream - \fi - \let\tabu@ \relax \let\tabu@hsize \relax - \let\tabu@Xcoefs \@empty \let\tabu@savels \relax - \tabu@Xcol \z@ \tabu@cnt \tw@ - \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse - \global\setbox\@arstrutbox \box\@arstrutbox - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \NC@list\expandafter{\the\NC@list \NC@do X}% - \iftabu@siunitx % - \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi - \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% - \expandafter\def\expandafter\tabu@NC@list\expandafter{% - \the\expandafter\NC@list \tabu@NC@list}% % * | X S - \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu - \expandafter \NC@do \expandafter\preamble - \the\NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \tabu@savedecl - \tabu@privatecolumns - \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle -}% NC@rewrite@\tabu@rewritefirst -\tabu@newcolumntype \tabu@rewritemiddle{% - \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast -}% \NC@rewrite@\tabu@rewritemiddle -\tabu@newcolumntype \tabu@rewritelast{% - \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne - \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \else \let\tabu@prev\tabu@temp - \fi - \ifcase \tabu@cnt \expandafter\tabu@endrewrite - \else \expandafter\NC@find \expandafter\tabu@rewritemiddle - \fi -}% \NC@rewrite@\tabu@rewritelast -%% Choosing the strategy -------------------------------------------- -\def\tabu@endrewrite {% - \let\tabu@temp \NC@find - \ifx \@arrayright\relax \let\@arrayright \@empty \fi - \count@=% - \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print - \iftabu@measuring - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@target \csname tabu@\the\tabu@nested.T\endcsname - \tabucolX \csname tabu@\the\tabu@nested.X\endcsname - \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% - \fi - \else\iftabu@measuring 4 % X columns - \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer - \tabu@target \the\tabu@target - \tabu@spreadtarget \the\tabu@spreadtarget}% - \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% - \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% - \let\tabu@Xcoefs \relax - \else\ifcase\tabu@nested \thr@@ % outer, no X - \global\let\tabu@afterendpar \relax - \else \@ne % inner, no X, outer in mode 1 or 2 - \fi - \ifdefined\tabu@usetabu - \else \ifdim\tabu@target=\z@ - \else \let\tabu@temp \tabu@extracolsep - \fi\fi - \fi - \fi - \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% - \tabu@temp -}% \tabu@endrewrite -\def\tabu@extracolsep{\@defaultunits \expandafter\let - \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil - \ifx \tabu@temp\@sptoken - \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep - \else - \edef\tabu@temp{\noexpand\NC@find - \if |\noexpand\tabu@temp @% - \else\if !\noexpand\tabu@temp @% - \else !% - \fi\fi - {\noexpand\extracolsep\noexpand\@flushglue}}% - \fi - \tabu@temp -}% \tabu@extrac@lsep -%% Implementing the strategy ---------------------------------------- -\long\def\tabu@pream #1\@preamble {% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\tabu@aftergroupcleanup}% - \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody - \@preamble}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@pream -\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@longpream -\def\tabu@select {% - \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi - \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi - \ifcase \count@ - \global\let\tabu@elapsedtime \relax - \tabu@seteverycr - \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) - \or % exit in vertical measure + struts per cell because no X and outer in mode 3 - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \tabu@seteverycr - \expandafter \tabuthepreamble - \or % exit without measure because no X and outer in mode 4 - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@seteverycr - \expandafter \tabuthepreamble - \else % needs trials - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@savecounters - \expandafter \tabu@setstrategy - \fi -}% \tabu@select -\def\tabu@@ {\gdef\tabu@mkpreambuffer} -%% Protections to set up before trials ------------------------------ -\def\tabu@setstrategy {\begingroup % - \tabu@trialh@@k \tabu@cnt \z@ % number of trials - \hbadness \@M \let\hbadness \@tempcnta - \hfuzz \maxdimen \let\hfuzz \@tempdima - \let\write \tabu@nowrite\let\GenericError \tabu@GenericError - \let\savetabu \@gobble \let\tabudefaulttarget \linewidth - \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote - \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor - \let\tabu@aftergroupcleanup \relax % only after the last trial - \tabu@mkpreambuffer - \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init - \def\tabu@lasttry{\m@ne\p@}\fi - \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % - \tabu@collectbody \tabu@strategy % -}% \tabu@setstrategy -\def\tabu@savecounters{% - \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% - \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax -}% \tabu@savecounters -\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) - \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs - \ifdim \dimen@>\z@ - \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \fi -}% \tabucolX@init -\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum - \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ - \else -#2\p@ \tabu@negcoeftrue - \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \tabu@wddef{#1}{0pt}% - \fi -}% \tabu@Xinit -%% Collecting the environment body ---------------------------------- -\long\def\tabu@collectbody #1#2\end #3{% - \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% - \ifx \tabu@stack\@empty - \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% - \def\tabu@end@envir{\end{#3}}% - \iftabuscantokens - \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir {\let\endarray \@empty - \end{#3}\tabu@gobbleX}% - \fi - \else \def\tabu@endenvir {\end{#3}}\fi}% - \let\tabu@collectbody \tabu@endofcollect - \else\def\tabu@temp{#3}% - \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% - \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% - \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% - \else \toks@\expandafter{\the\toks@ #2\end{#3}}% - \fi\fi\fi - \fi - \tabu@collectbody{#1}% -}% \tabu@collectbody -\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% -\def\tabu@endofcollect #1{\ifnum0=`{}\fi - \expandafter\endgroup \the\toks@ #1% -}% \tabu@endofcollect -%% The trials: switching between strategies ------------------------- -\def\tabu@strategy {\relax % stops \count@ assignment ! - \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) - \expandafter \tabu@endoftrials - \or % case 1 = exit in vertical measure (outer in mode 3) - \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% - \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% - \expandafter \tabu@endoftrials - \or % case 2 = exit with a rule replacing the table (outer in mode 4) - \expandafter \tabu@quickend - \or % case 3 = outer is in mode 3 because of no X - \begingroup - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \expandafter \tabu@measuring - \else % case 4 = horizontal measure - \begingroup - \global\let\tabu@elapsedtime \tabu@message@etime - \long\def\multicolumn##1##2##3{\multispan{##1}}% - \let\tabu@startpboxORI \@startpbox - \iftabu@spread - \def\tabu@naturalXmax {\z@}% - \let\tabu@naturalXmin \tabu@naturalXmax - \tabu@evr{\global\tabu@naturalX \z@}% - \let\@startpbox \tabu@startpboxmeasure - \else\iftabu@negcoef - \let\@startpbox \tabu@startpboxmeasure - \else \let\@startpbox \tabu@startpboxquick - \fi\fi - \expandafter \tabu@measuring - \fi -}% \tabu@strategy -\def\tabu@measuring{\expandafter \tabu@trial \expandafter - \count@ \the\count@ \tabu@endtrial -}% \tabu@measuring -\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} -\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \csname tabu@adl@endtrial\endcsname - \endarray}$\egroup % got \tabu@box -}% \tabu@shorttrial -\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \tabuendlongtrial}\egroup % got \tabu@box -}% \tabu@longtrial -\def\tabuendlongtrial{% no @ allowed for \scantokens - \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths -}% \tabuendlongtrial -\def\tabu@adl@endtrial{% - \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! -\def\tabu@seteverycr {\tabu@reset - \everycr \expandafter{\the\everycr \tabu@everycr}% - \let\everycr \tabu@noeverycr % -}% \tabu@seteverycr -\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} -\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} -\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} -\def\tabu@endoftrials {% - \iftabuscantokens \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\expandafter \tabu@closetrialsgroup \expandafter - \tabu@rescan \expandafter{% - \expandafter\tabuthepreamble - \the\expandafter\tabu@thebody - \iftabu@long \else \endarray \fi}} - {\expandafter\tabu@closetrialsgroup \expandafter - \tabuthepreamble - \the\tabu@thebody}% - \tabu@endenvir % Finish ! -}% \tabu@endoftrials -\def\tabu@closetrialsgroup {% - \toks@\expandafter{\tabu@endenvir}% - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target - \tabu@cnt \the\tabu@cnt - \def\noexpand\tabu@endenvir{\the\toks@}% - %Quid de \@halignto = \tabu@halignto ?? - }% \tabu@bufferX - \tabu@bufferX - \ifcase\tabu@nested % print out (outer in mode 0) - \global\tabu@cnt \tabu@cnt - \tabu@evr{\tabu@verticaldynamicadjustment}% - \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty - \let\@finalstrut \tabu@finalstrut - \else % vertical measure of nested tabu - \tabu@evr{\tabu@verticalinit}% - \tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \fi - \tabu@clckpt \let\@halignto \tabu@halignto - \let\@halignto \@empty - \tabu@seteverycr - \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ - \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) - \fi\fi -}% \tabu@closetrialsgroup -\def\tabu@quickend {\expandafter \endgroup \expandafter - \tabu@target \the\tabu@target \tabu@quickrule - \let\endarray \relax \tabu@endenvir -}% \tabu@quickend -\def\tabu@endtrial {\relax % stops \count@ assignment ! - \ifcase \count@ \tabu@err % case 0 = impossible here - \or \tabu@err % case 1 = impossible here - \or \tabu@err % case 2 = impossible here - \or % case 3 = outer goes into mode 0 - \def\tabu@bufferX{\endgroup}\count@ \z@ - \else % case 4 = outer goes into mode 3 - \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) - \else \tabu@arith % or 2 (outer in mode 4) - \fi - \count@=% - \ifcase\tabu@nested \thr@@ % outer goes into mode 3 - \else\iftabu@measuring \tw@ % outer is in mode 4 - \else \@ne % outer is in mode 3 - \fi\fi - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% - \fi - \expandafter \tabu@bufferX \expandafter - \count@ \the\count@ \tabu@strategy -}% \tabu@endtrial -\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} -%% The algorithms: compute the widths / stop or go on --------------- -\def\tabu@arithnegcoef {% - \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs -}% \tabu@arithnegcoef -\def\tabu@arith@negcoef #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition - \advance\@tempdima #2\tabucolX - \else - \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated - \advance\dimen@ -#2\p@ - \advance\@tempdima -#2\tabucolX - \else - \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised - \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised - \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) - \fi - \fi - \fi -}% \tabu@arith@negcoef -\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ - \ifdim \@tempdima=\z@ - \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% - \else - \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} - *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% - \fi -}% \tabu@givespace -\def\tabu@arith {\advance\tabu@cnt \@ne - \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi - \tabu@arithnegcoef - \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % - \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax - \tabu@message{\tabu@message@arith}% - \ifdim \tabu@DELTA <\tabu@hfuzz - \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? - \let\tabu@ \tabu@givespace \tabu@Xcoefs - \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message - \else % already converged: nothing to do but nearly impossible... - \fi - \tabucolX \maxdimen - \tabu@measuringfalse - \else % need for narrower X columns - \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax - \tabu@measuringtrue - \@whilesw \iftabu@measuring\fi {% - \advance\tabu@cnt \@ne - \tabu@arithnegcoef - \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here - \tabu@message{\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else - \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ - \fi}% - \ifdim -\tabu@DELTA<\tabu@hfuzz - \advance\@tempdima \@tempdimb % for message - \tabu@measuringfalse - \else - \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax - \fi - }% - \fi - \tabu@message{\tabu@message@reached}% - \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% -}% \tabu@arith -\def\tabu@spreadarith {% - \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs - \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% - \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax - \iftabu@measuring - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% - \else - \tabu@message{\tabu@message@spreadarith}% - \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target - \tabu@message{(tabu) spread - \ifdim \@tempdimc>\tabu@target useless here: default target used% - \else too large: reduced to fit default target\fi.}% - \else - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% - \fi - \begingroup \let\tabu@wddef \@gobbletwo - \@tempdimb \@tempdima - \tabucolX@init - \tabu@arithnegcoef - \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax - \expandafter\endgroup \expandafter\tabucolX \the\tabucolX - \tabu@arith - \fi -}% \tabu@spreadarith -\def\tabu@spread@arith #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ - \else \advance\@tempdima \tabu@wd{#1}\relax - \fi -}% \tabu@spread@arith -%% Reporting in the .log file --------------------------------------- -\def\tabu@message@defaulttarget{% - \ifnum\tabu@nested=\z@^^J(tabu) Default target: - \ifx\tabudefaulttarget\linewidth \string\linewidth - \ifdim \tabu@thetarget=\linewidth \else - -\the\dimexpr\linewidth-\tabu@thetarget\fi = - \else\ifx\tabudefaulttarget\linegoal\string\linegoal= - \fi\fi - \else (tabu) Default target (nested): \fi - \the\tabu@target \on@line - \ifnum\tabu@nested=\z@ , page \the\c@page\fi} -\def\tabu@message@target {^^J(tabu) Target specified: - \the\tabu@target \on@line, page \the\c@page} -\def\tabu@message@arith {\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else - \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ - \fi -}% \tabu@message@arith -\def\tabu@message@spreadarith {\tabu@spreadheader - \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ - \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ - \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ - \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target - \else \@tempdimc+\tabu@spreadtarget \fi - {}{}{}{}{}\@@} -\def\tabu@message@negcoef #1#2{ - \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: - \space width = \tabu@wd {#1} - \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname - \ifdim -\tabu@pt#2\tabucolX<\tabu@target - < \number-\rem@pt#2 X - = \the\dimexpr -\tabu@pt#2\tabucolX \relax - \else - <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} -\def\tabu@message@reached{\tabu@header - ******* Reached Target: - hfuzz = \tabu@hfuzz\on@line\space *******} -\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% - \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: - \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec - \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) - -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax - *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space - cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} -\def\tabu@message@verticalsp {% - \ifdim \@tempdima>\tabu@ht - \ifdim \@tempdimb>\tabu@dp - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% - \else - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% - \fi - \else\ifdim \@tempdimb>\tabu@dp - \tabu@spaces\tabu@spaces\tabu@spaces - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi - \fi -}% \tabu@message@verticalsp -\edef\tabu@spaces{\@spaces} -\def\tabu@strippt{\expandafter\tabu@pt\the} -{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} -\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} -\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} -\def\do #1{% - \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% - \ifnum##1<10 #1 #1\else - \ifnum##1<100 #1 \else - \ifnum##1<\@m #1\fi\fi\fi - ##1.##2##3##4##5##6##7##8#1}% - \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% - \def\tabu@titles{\ifnum \tabu@nested=\z@ - (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target - #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% - \def\tabu@spreadheader{% - (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. - #1 New Target^^J% - (tabu) sprd} - \def\tabu@message@save {\begingroup - \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} - \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt - \dimexpr####1\p@{ }{ }}}% - \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% - \let\CT@arc@ \relax \let\@preamble \@gobble - \let\tabu@savedpream \@firstofone - \let\tabu@savedparams \@firstofone - \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% - \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% - \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% - \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% - \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% - \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% - \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% - \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% - \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% - \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% - \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% - \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% - \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% - \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% - \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% - \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% - \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% - \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% - \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% - \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% - \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo - \tabu@message{% - (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% - \tabu@usetabu \@nil^^J}% - \endgroup} -}\do{ } -%% Measuring the natural width (varwidth) - store the results ------- -\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop - \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% - \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? - \iftabu@spread \else % if spread -> measure - \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure - \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) - \tabu@measuringtrue % for the quick option... - \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi - \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target - \tabu@target=\tabu@temp\tabucolX \fi\fi - \setbox\tabu@box \hbox \bgroup - \begin{varwidth}\tabu@target - \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... - \narrowragged \arraybackslash \parfillskip \@flushglue - \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi - \bgroup \aftergroup\tabu@endpboxmeasure - \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi - \else \expandafter\@gobble - \tabu@startpboxquick{#1}% \@gobble \bgroup - \fi -}% \tabu@startpboxmeasure -\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty - \bgroup\color@begingroup} -\def\tabu@endpboxmeasure {% - \@finalstrut \@arstrutbox - \end{varwidth}\egroup % - \ifdim \tabu@temp\p@ <\z@ % neg coef - \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box - \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% - \tabu@debug{\tabu@message@endpboxmeasure}% - \fi - \else % spread coef>0 - \global\advance \tabu@naturalX \wd\tabu@box - \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax - \ifdim \tabu@naturalXmax <\tabu@naturalX - \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi - \ifdim \tabu@naturalXmin <\@tempdima - \xdef\tabu@naturalXmin {\the\@tempdima}\fi - \fi - \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target -}% \tabu@endpboxmeasure -\def\tabu@wddef #1{\expandafter\xdef - \csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd - \the\tabu@Xcol. X[\tabu@temp]: - target = \the\tabucolX \space - \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol - =\tabu@wd\tabu@Xcol -}% \tabu@message@endpboxmeasure -\def\tabu@startpboxquick {\bgroup - \let\@startpbox \tabu@startpboxORI % restore immediately - \let\tabu \tabu@quick % \begin is expanded before... - \expandafter\@gobble \@startpbox % gobbles \bgroup -}% \tabu@startpboxquick -\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick -}% \tabu@quick -\def\tabu@endquick {% - \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else - \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax - \endgroup - \else \let\endtabu \relax - \tabu@end@envir - \fi -}% \tabu@quick -\def\tabu@endtabu {\end{tabu}} -\def\tabu@endtabus {\end{tabu*}} -%% Measuring the heights and depths - store the results ------------- -\def\tabu@verticalmeasure{\everypar{}% - \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group - \setbox\tabu@box =\hbox\bgroup - \let\tabu@verticalspacing \tabu@verticalsp@lcr - \d@llarbegin % after \hbox ... - \else - \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop - \else\ifnum\currentgrouptype=12\vcenter - \else\vbox\fi\fi}% - \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup - \let\tabu@verticalspacing \tabu@verticalsp@pmb - \fi -}% \tabu@verticalmeasure -\def\tabu@verticalsp@lcr{% - \d@llarend \egroup % - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \noindent\vrule height\@tempdima depth\@tempdimb -}% \tabu@verticalsp@lcr -\def\tabu@verticalsp@pmb{% inserts struts as needed - \par \expandafter\egroup - \expandafter$\expandafter - \egroup \expandafter - \@tempdimc \the\prevdepth - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \let\@finalstrut \@gobble - \hrule height\@tempdima depth\@tempdimb width\hsize -%% \box\tabu@box -}% \tabu@verticalsp@pmb - -\def\tabu@verticalinit{% - \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! - \advance\c@taburow \@ne - \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% - \advance\c@taburow \m@ne -}% \tabu@verticalinit -\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@verticaldynamicadjustment {% - \advance\c@taburow \@ne - \extrarowheight \dimexpr\tabu@ht - \ht\strutbox - \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox - \let\arraystretch \@empty - \advance\c@taburow \m@ne -}% \tabu@verticaldynamicadjustment -\def\tabuphantomline{\crcr \noalign{% - {\globaldefs \@ne - \setbox\@arstrutbox \box\voidb@x - \let\tabu@@celllalign \tabu@celllalign - \let\tabu@@cellralign \tabu@cellralign - \let\tabu@@cellleft \tabu@cellleft - \let\tabu@@cellright \tabu@cellright - \let\tabu@@thevline \tabu@thevline - \let\tabu@celllalign \@empty - \let\tabu@cellralign \@empty - \let\tabu@cellright \@empty - \let\tabu@cellleft \@empty - \let\tabu@thevline \relax}% - \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% - \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr - \noalign{\tabu@rearstrut - {\globaldefs\@ne - \let\tabu@celllalign \tabu@@celllalign - \let\tabu@cellralign \tabu@@cellralign - \let\tabu@cellleft \tabu@@cellleft - \let\tabu@cellright \tabu@@cellright - \let\tabu@thevline \tabu@@thevline}}}% - \expandafter}\the\toks@ -}% \tabuphantomline -%% \firsthline and \lasthline corrections --------------------------- -\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} -\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} -\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} -\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} -\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) - \noalign{\ifnum0=`}\fi - {\CT@arc@\hrule height\arrayrulewidth}% - \futurelet \tabu@temp \tabu@xhline -}% \tabu@hline -\def\tabu@xhline{% - \ifx \tabu@temp \hline - {\ifx \CT@drsc@\relax \vskip - \else\ifx \CT@drsc@\@empty \vskip - \else \CT@drsc@\hrule height - \fi\fi - \doublerulesep}% - \fi - \ifnum0=`{\fi}% -}% \tabu@xhline -\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ - \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% - \tabu@hlineAZsurround -}% \tabu@hlineAZ -\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% - \extratabsurround #1\let\tabucline \tabucline@scan - \let\hline \tabu@hlinescan \let\firsthline \hline - \let\cline \tabu@clinescan \let\lasthline \hline - \expandafter \futurelet \expandafter \tabu@temp - \expandafter \tabu@nexthlineAZ \tabu@temp -}% \tabu@hlineAZsurround -\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} -\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} -\def\tabucline@scan{\@testopt \tabucline@sc@n {}} -\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} -\def\tabu@nexthlineAZ{% - \ifx \tabu@temp\hline \else - \ifx \tabu@temp\cline \else - \ifx \tabu@temp\tabucline \else - \tabu@hlinecorrection - \fi\fi\fi -}% \tabu@nexthlineAZ -\def\tabu@xhlineAZ #1{% - \toks@\expandafter{\the\toks@ #1}% - \@tempdimc \tabu@thick % The last line width - \ifcase\count@ \@tempdimb \tabu@thick % The first line width - \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax - \fi - \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ -}% \tabu@xhlineAZ -\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 - \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ - \edef\firsthline{% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - height \the\dimexpr\@tempdima+\extratabsurround - depth \dp\@arstrutbox - width \tabustrutrule}\hss}\cr - \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb - +\dp\@arstrutbox \relax}% - \the\toks@ - }\ifnum0=`{\fi - \expandafter}\firsthline % we are then ! -}% \tabu@firsthlinecorrection -\def\tabu@lasthlinecorrection{% - \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc - \edef\lasthline{% - \the\toks@ - \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ - +\extratabsurround-\@tempdimc - height \z@ - width \tabustrutrule}\hss}\cr - }\ifnum0=`{\fi - \expandafter}\lasthline % we are then ! -}% \tabu@lasthlinecorrection -\def\tabu@LT@@hline{% - \ifx\LT@next\hline - \global\let\LT@next \@gobble - \ifx \CT@drsc@\relax - \gdef\CT@LT@sep{% - \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% - \else - \gdef\CT@LT@sep{% - \multispan\LT@cols{% - \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% - \fi - \else - \global\let\LT@next\empty - \gdef\CT@LT@sep{% - \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \CT@LT@sep - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \noalign{\penalty\@M}% - \LT@next -}% \tabu@LT@@hline -%% Horizontal lines : \tabucline ------------------------------------ -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} -\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% - \ifnum \tabu@stop<\z@ \toks@{}% - \else \tabu@clinearg{#1}\tabu@thestyle - \edef\tabucline{\toks@{% - \ifnum \tabu@start>\z@ \omit - \tabu@multispan\tabu@start {\span\omit}&\fi - \omit \tabu@multispan\tabu@stop {\span\omit}% - \tabu@thehline\cr - }}\tabucline - \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% - \fi - \futurelet \tabu@temp \tabu@xcline -}% \tabu@cline -\def\tabu@clinearg #1{% - \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ - \else \@defaultunits \expandafter\let\expandafter\@tempa - \romannumeral-`\0#1\relax \@nnil - \ifx \hbox\@tempa \tabu@clinebox{#1}% - \else\ifx \box\@tempa \tabu@clinebox{#1}% - \else\ifx \vbox\@tempa \tabu@clinebox{#1}% - \else\ifx \vtop\@tempa \tabu@clinebox{#1}% - \else\ifx \copy\@tempa \tabu@clinebox{#1}% - \else\ifx \leaders\@tempa \tabu@clineleads{#1}% - \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% - \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% - \else\tabu@getline {#1}% - \fi\fi\fi\fi\fi\fi\fi\fi - \fi -}% \tabu@clinearg -\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} -\def\tabu@clineleads #1{% - \let\tabu@thestyle \relax \let\tabu@leaders \@undefined - \gdef\tabu@thehrule{#1}} -\def\tabu@thehline{\begingroup - \ifdefined\tabu@leaders - \noexpand\tabu@thehleaders - \else \noexpand\tabu@thehrule - \fi \endgroup -}% \tabu@thehline -\def\tabu@xcline{% - \ifx \tabu@temp\tabucline - \toks@\expandafter{\the\toks@ \noalign - {\ifx\CT@drsc@\relax \vskip - \else \CT@drsc@\hrule height - \fi - \doublerulesep}}% - \fi - \tabu@docline -}% \tabu@xcline -\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} -\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% - \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} -\def\tabu@multispan #1#2{% - \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan - \else \expandafter\@gobbletwo - \fi {#1-1}{#2}% -}% \tabu@multispan -\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} -\def\tabu@start@stop #1-#2\@nnil{% - \@defaultunits \tabu@start\number 0#1\relax \@nnil - \@defaultunits \tabu@stop \number 0#2\relax \@nnil - \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne - \else\ifnum \tabu@stop=\z@ \tabu@nbcols - \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols - \else \tabu@stop - \fi\fi\fi - \advance\tabu@start \m@ne - \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi -}% \tabu@start@stop -%% Numbers: siunitx S columns (and \tabudecimal) ------------------- -\def\tabu@tabudecimal #1{% - \def\tabu@decimal{#1}\@temptokena{}% - \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces - \tabu@scandecimal -}% \tabu@tabudecimal -\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} -\def\tabu@skipdecimal#1{#1\tabu@scandecimal} -\def\tabu@getdecimal@ignorespaces{% - \ifcase 0\ifx\tabu@temp\ignorespaces\else - \ifx\tabu@temp\@sptoken1\else - 2\fi\fi\relax - \let\tabu@getdecimal@ \tabu@getdecimal - \expandafter\tabu@skipdecimal - \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal - \else \expandafter\tabu@skipdecimal - \fi -}% \tabu@getdecimal@ignorespaces -\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% - \tabu@scandecimal} -\def\do#1{% - \def\tabu@get@decimalspace#1{% - \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% -}\do{ } -\let\tabu@@tabudecimal \tabu@tabudecimal -\def\tabu@getdecimal{% - \ifcase 0\ifx 0\tabu@temp\else - \ifx 1\tabu@temp\else - \ifx 2\tabu@temp\else - \ifx 3\tabu@temp\else - \ifx 4\tabu@temp\else - \ifx 5\tabu@temp\else - \ifx 6\tabu@temp\else - \ifx 7\tabu@temp\else - \ifx 8\tabu@temp\else - \ifx 9\tabu@temp\else - \ifx .\tabu@temp\else - \ifx ,\tabu@temp\else - \ifx -\tabu@temp\else - \ifx +\tabu@temp\else - \ifx e\tabu@temp\else - \ifx E\tabu@temp\else - \ifx\tabu@cellleft\tabu@temp1\else - \ifx\ignorespaces\tabu@temp1\else - \ifx\@sptoken\tabu@temp2\else - 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \expandafter\tabu@get@decimal - \or \expandafter\tabu@skipdecimal - \or \expandafter\tabu@get@decimalspace - \else\expandafter\tabu@printdecimal - \fi -}% \tabu@getdecimal -\def\tabu@printdecimal{% - \edef\tabu@temp{\the\@temptokena}% - \ifx\tabu@temp\@empty\else - \ifx\tabu@temp\space\else - \expandafter\tabu@decimal\expandafter{\the\@temptokena}% - \fi\fi -}% \tabu@printdecimal -%% Verbatim inside X columns ---------------------------------------- -\def\tabu@verbatim{% - \let\verb \tabu@verb - \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd -}% \tabu@verbatim -\let\tabu@ltx@verb \verb -\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} -\def\tabu@fancyvrb {% - \def\tabu@FV@DefineCheckEnd ##1{% - \def\tabu@FV@DefineCheckEnd{% - ##1% - \let\FV@CheckEnd \tabu@FV@CheckEnd - \let\FV@@CheckEnd \tabu@FV@@CheckEnd - \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd - \edef\FV@EndScanning{% - \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% - \global\let\noexpand\FV@EnvironName\relax - \noexpand\next}% - \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% - }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} -}% \tabu@fancyvrb -\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} -\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} -\begingroup -\catcode`\[1 \catcode`\]2 -\@makeother\{ \@makeother\} - \edef\x[\endgroup - \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% - ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} -\def\tabu@FV@ListProcessLine #1{% - \hbox {%to \hsize{% - \kern\leftmargin - \hbox {%to \linewidth{% - \FV@LeftListNumber - \FV@LeftListFrame - \FancyVerbFormatLine{#1}\hss -%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) -%% \FV@RightListFrame}% - \FV@RightListFrame - \FV@RightListNumber}% -%% DG/SR modification end - \hss}} -%% \savetabu -------------------------------------------------------- -\newcommand*\savetabu[1]{\noalign{% - \tabu@sanitizearg{#1}\tabu@temp - \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else - \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% - \ifdefined\tabu@restored \expandafter\let - \csname tabu@saved@\tabu@temp \endcsname \tabu@restored - \else {\tabu@save}% - \fi - \fi}% -}% \savetabu -\def\tabu@save {% - \toks0\expandafter{\tabu@saved@}% - \iftabu@negcoef - \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% - \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi - \toks1\expandafter{\tabu@savedpream}% - \toks2\expandafter{\tabu@savedpreamble}% - \let\@preamble \relax - \let\tabu@savedpream \relax \let\tabu@savedparams \relax - \edef\tabu@preamble{% - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \edef\tabu@usetabu{% - \def\@preamble {\noexpand\the\toks2}% - \tabu@target \the\tabu@target \relax - \tabucolX \the\tabucolX \relax - \tabu@nbcols \the\tabu@nbcols \relax - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \let\tabu@aligndefault \relax \let\@sharp \relax - \edef\@tempa{\noexpand\tabu@s@ved - {\tabu@usetabu} - {\tabu@preamble} - {\the\toks1}}\@tempa - \tabu@message@save -}% \tabu@save -\long\def\tabu@s@ved #1#2#3{% - \def\tabu@usetabu{#1}% - \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% - \ifodd ##1% \usetabu - \tabu@measuringfalse \tabu@spreadfalse % Just in case... - \gdef\tabu@usetabu {% - \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi - \global\let\tabu@usetabu \@undefined - \def\@halignto {to\tabu@target}% - #1% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \else % \preamble - \gdef\tabu@preamble {% - \global\let\tabu@preamble \@undefined - #2% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \fi - #3}% -}% \tabu@s@ved -\def\tabu@aligndefault@text {\tabu@aligndefault}% -\def\tabu@warn@usetabu {\PackageWarning{tabu} - {Specifying a target with \string\usetabu\space is useless - \MessageBreak The target cannot be changed!}} -\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} -\def\tabu@savewarn#1#2{\PackageInfo{tabu} - {User-name `#1' already used for \string\savetabu - \MessageBreak #2}}% -\def\tabu@saveerr#1{\PackageError{tabu} - {User-name `#1' is unknown for \string\usetabu - \MessageBreak I cannot restore an unknown preamble!}\@ehd} -%% \rowfont --------------------------------------------------------- -\newskip \tabu@cellskip -\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi - {\ifnum0=`}\fi \tabu@row@font} -\newcommand*\tabu@row@font[2][]{% - \ifnum7=\currentgrouptype - \global\let\tabu@@cellleft \tabu@cellleft - \global\let\tabu@@cellright \tabu@cellright - \global\let\tabu@@celllalign \tabu@celllalign - \global\let\tabu@@cellralign \tabu@cellralign - \global\let\tabu@@rowfontreset\tabu@rowfontreset - \fi - \global\let\tabu@rowfontreset \tabu@rowfont@reset - \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% - \ifcsname tabu@cell@#1\endcsname % row alignment - \csname tabu@cell@#1\endcsname \fi - \ifnum0=`{\fi}% end of group / noalign group -}% \rowfont -\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% -\def\tabu@rowfont@reset{% - \global\let\tabu@rowfontreset \tabu@@rowfontreset - \global\let\tabu@cellleft \tabu@@cellleft - \global\let\tabu@cellright \tabu@@cellright - \global\let\tabu@cellfont \@empty - \global\let\tabu@celllalign \tabu@@celllalign - \global\let\tabu@cellralign \tabu@@cellralign -}% \tabu@@rowfontreset -\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl -%% \tabu@prepnext@tok ----------------------------------------------- -\newif \iftabu@cellright -\def\tabu@prepnext@tok{% - \ifnum \count@<\z@ % - \@tempcnta \@M % - \tabu@nbcols\z@ - \let\tabu@fornoopORI \@fornoop - \tabu@cellrightfalse - \else - \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left - \advance \tabu@nbcols \@ne - \iftabu@cellright % before-previous token is right and is finished - \tabu@cellrightfalse % - \tabu@righttok - \fi - \tabu@lefttok - \or % (case 1) previous token is right - \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop - \else % special column: do not change the token - \iftabu@cellright % before-previous token is right - \tabu@cellrightfalse - \tabu@righttok - \fi - \fi % \ifcase - \fi - \tabu@prepnext@tokORI -}% \tabu@prepnext@tok -\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} -\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% - \ifx \in@#2\else - \let\@fornoop \tabu@fornoopORI - \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% - \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% - \expandafter\prepnext@tok - \fi -}% \tabu@lastnoop -\def\tabu@righttok{% - \advance \count@ \m@ne - \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% - \advance \count@ \@ne -}% \tabu@righttok -\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign - \the\toks\count@ \tabu@cellleft}% after because of $ -}% \tabu@lefttok -%% Neutralisation of glues ------------------------------------------ -\let\tabu@cellleft \@empty -\let\tabu@cellright \@empty -\tabu@celllalign@def{\tabu@cellleft}% -\let\tabu@cellralign \@empty -\def\tabu@cell@align #1#2#3{% - \let\tabu@maybesiunitx \toks@ \tabu@celllalign - \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% - \toks@\expandafter{\tabu@cellralign #2}% - \xdef\tabu@cellralign{\the\toks@}% - \toks@\expandafter{\tabu@cellleft #3}% - \xdef\tabu@cellleft{\the\toks@}% -}% \tabu@cell@align -\def\tabu@cell@l{% force alignment to left - \tabu@cell@align - {\tabu@removehfil \raggedright \tabu@cellleft}% left - {\tabu@flush1\tabu@ignorehfil}% right - \raggedright -}% \tabu@cell@l -\def\tabu@cell@c{% force alignment to center - \tabu@cell@align - {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \centering -}% \tabu@cell@c -\def\tabu@cell@r{% force alignment to right - \tabu@cell@align - {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} - \tabu@ignorehfil - \raggedleft -}% \tabu@cell@r -\def\tabu@cell@j{% force justification (for p, m, b columns) - \tabu@cell@align - {\tabu@justify\tabu@cellleft} - {} - \tabu@justify -}% \tabu@cell@j -\def\tabu@justify{% - \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip - \parfillskip\@flushglue -}% \tabu@justify -%% ragged2e settings -\def\tabu@cell@L{% force alignment to left (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedRight \tabu@cellleft} - {\tabu@flush 1\tabu@ignorehfil} - \RaggedRight -}% \tabu@cell@L -\def\tabu@cell@C{% force alignment to center (ragged2e) - \tabu@cell@align - {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \Centering -}% \tabu@cell@C -\def\tabu@cell@R{% force alignment to right (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} - \tabu@ignorehfil - \RaggedLeft -}% \tabu@cell@R -\def\tabu@cell@J{% force justification (ragged2e) - \tabu@cell@align - {\justifying \tabu@cellleft} - {} - \justifying -}% \tabu@cell@J -\def\tabu@flush#1{% - \iftabu@colortbl % colortbl uses \hfill rather than \hfil - \hskip \ifnum13<\currentgrouptype \stretch{#1}% - \else \ifdim#1pt<\p@ \tabu@cellskip - \else \stretch{#1} - \fi\fi \relax - \else % array.sty - \ifnum 13<\currentgrouptype - \hfil \hskip1sp \relax \fi - \fi -}% \tabu@flush -\let\tabu@hfil \hfil -\let\tabu@hfill \hfill -\let\tabu@hskip \hskip -\def\tabu@removehfil{% - \iftabu@colortbl - \unkern \tabu@cellskip =\lastskip - \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip - \else \tabu@cellskip \z@skip - \fi - \else - \ifdim\lastskip=1sp\unskip\fi - \ifnum\gluestretchorder\lastskip =\@ne - \hfilneg % \hfilneg for array.sty but not for colortbl... - \fi - \fi -}% \tabu@removehfil -\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} -\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil - \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group -}% \tabu@nohfil -\def\tabu@colortblalignments {% if colortbl - \def\tabu@nohfil{% - \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group - \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... - \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local -}% \tabu@colortblalignments -%% Taking care of footnotes and hyperfootnotes ---------------------- -\long\def\tabu@footnotetext #1{% - \edef\@tempa{\the\tabu@footnotes - \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% - \global\tabu@footnotes\expandafter{\@tempa {#1}}}% -\long\def\tabu@xfootnotetext [#1]#2{% - \global\tabu@footnotes\expandafter{\the\tabu@footnotes - \footnotetext [{#1}]{#2}}} -\let\tabu@xfootnote \@xfootnote -\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} -\long\def\tabu@Hy@xfootnote [#1]{% - \begingroup - \value\@mpfn #1\relax - \protected@xdef \@thefnmark {\thempfn}% - \endgroup - \@footnotemark \tabu@Hy@ftntxt {#1}% -}% \tabu@Hy@xfootnote -\long\def\tabu@Hy@ftntxt #1#2{% - \edef\@tempa{% - \the\tabu@footnotes - \begingroup - \value\@mpfn #1\relax - \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% - \expandafter \noexpand \expandafter - \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% - }% - \global\tabu@footnotes\expandafter{\@tempa {#2}% - \endgroup}% -}% \tabu@Hy@ftntxt -\long\def\tabu@Hy@footnotetext #1#2{% - \H@@footnotetext{% - \ifHy@nesting - \hyper@@anchor {#1}{#2}% - \else - \Hy@raisedlink{% - \hyper@@anchor {#1}{\relax}% - }% - \def\@currentHref {#1}% - \let\@currentlabelname \@empty - #2% - \fi - }% -}% \tabu@Hy@footnotetext -%% No need for \arraybackslash ! ------------------------------------ -\def\tabu@latextwoe {% -\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@centering \centering \arraybackslash -\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash -\tabu@temp \tabu@raggedright \raggedright \arraybackslash -}% \tabu@latextwoe -\def\tabu@raggedtwoe {% -\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@Centering \Centering \arraybackslash -\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash -\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash -\tabu@temp \tabu@justifying \justifying \arraybackslash -}% \tabu@raggedtwoe -\def\tabu@normalcrbackslash{\let\\\@normalcr} -\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% - \expandafter\tabu@normalcrbackslash \@trivlist}} -%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- -\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} -\def\tabu@beginfbox {\bgroup \kern\fboxsep - \bgroup\aftergroup\tabu@endfbox} -\def\tabu@endfbox {\kern\fboxsep\egroup\egroup - \@frameb@x\relax} -\def\tabu@color@b@x #1#2{\leavevmode \bgroup - \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% - \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox -}% \tabu@color@b@x -\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup - \aftergroup\tabu@endcolor@b@x \set@color} -\def\tabu@endcolor@b@x {\kern\fboxsep \egroup - \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ - \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ - \tabu@docolor@b@x \egroup -}% \tabu@endcolor@b@x -%% Corrections (arydshln, delarray, colortbl) ----------------------- -\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray - \iftabu@colortbl - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \def\tabu@endarray{% - \crcr \egroup \egroup % - \@arrayright % - \gdef\@preamble{}\CT@end}% - \fi - \else - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \PackageWarning{tabu} - {\string\@arrayright\space is missing from the - \MessageBreak definition of \string\endarray. - \MessageBreak Compatibility with delarray.sty is broken.}% - \fi\fi -}% \tabu@fix@arrayright -\def\tabu@adl@xarraydashrule #1#2#3{% - \ifnum\@lastchclass=\adl@class@start\else - \ifnum\@lastchclass=\@ne\else - \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) - \adl@leftrulefalse \fi\fi % must be treated the same - \fi - \ifadl@zwvrule\else \ifadl@inactive\else - \@addtopreamble{\vrule\@width\arrayrulewidth - \@height\z@ \@depth\z@}\fi \fi - \ifadl@leftrule - \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% - {\number#1}#3}% - \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% - {\number#2}#3} - \fi -}% \tabu@adl@xarraydashrule -\def\tabu@adl@act@endpbox {% - \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox - \egroup \egroup - \adl@colhtdp \box\adl@box \hfil -}% \tabu@adl@act@endpbox -\def\tabu@adl@fix {% - \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln - \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln - \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln - \let\@preamerror \@preamerr % arydshln -}% \tabu@adl@fix -%% Correction for longtable' \@startbox definition ------------------ -%% => \everypar is ``missing'' : TeX should be in vertical mode -\def\tabu@LT@startpbox #1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \everypar{% - \vrule \@height \ht\@arstrutbox \@width \z@ - \everypar{}}% -}% \tabu@LT@startpbox -%% \tracingtabu and the package options ------------------ -\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} -\DeclareOption{linegoal}{% - \AtEndOfPackage{% - \RequirePackage{linegoal}[2010/12/07]% - \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX -}} -\DeclareOption{scantokens}{\tabuscantokenstrue} -\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} -\def\tracingtabu {\begingroup\@ifnextchar=% - {\afterassignment\tabu@tracing\count@} - {\afterassignment\tabu@tracing\count@1\relax}} -\def\tabu@tracing{\expandafter\endgroup - \expandafter\tabu@tr@cing \the\count@ \relax -}% \tabu@tracing -\def\tabu@tr@cing #1\relax {% - \ifnum#1>\thr@@ \let\tabu@tracinglines\message - \else \let\tabu@tracinglines\@gobble - \fi - \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG - \def\tabu@mkarstrut {\tabu@DBG@arstrut}% - \tabustrutrule 1.5\p@ - \else \let\tabu@DBG \@gobble - \def\tabu@mkarstrut {\tabu@arstrut}% - \tabustrutrule \z@ - \fi - \ifnum#1>\@ne \let\tabu@debug \message - \else \let\tabu@debug \@gobble - \fi - \ifnum#1>\z@ - \let\tabu@message \message - \let\tabu@tracing@save \tabu@message@save - \let\tabu@starttimer \tabu@pdftimer - \else - \let\tabu@message \@gobble - \let\tabu@tracing@save \@gobble - \let\tabu@starttimer \relax - \fi -}% \tabu@tr@cing -%% Setup \AtBeginDocument -\AtBeginDocument{\tabu@AtBeginDocument} -\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined - \ifdefined\arrayrulecolor \tabu@colortbltrue % - \tabu@colortblalignments % different glues are used - \else \tabu@colortblfalse \fi - \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi - \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi - \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ - \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % - \expandafter\ifx - \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax - \tabu@siunitxtrue - \else \let\tabu@maybesiunitx \@firstofone % - \let\tabu@siunitx \tabu@nosiunitx - \tabu@siunitxfalse - \fi - \ifdefined\adl@array % - \else \let\tabu@adl@fix \relax - \let\tabu@adl@endtrial \@empty \fi - \ifdefined\longtable % - \else \let\longtabu \tabu@nolongtabu \fi - \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi - \csname\ifcsname ifHy@hyperfootnotes\endcsname % - ifHy@hyperfootnotes\else iffalse\fi\endcsname - \let\tabu@footnotetext \tabu@Hy@ftntext - \let\tabu@xfootnote \tabu@Hy@xfootnote \fi - \ifdefined\FV@DefineCheckEnd% - \tabu@fancyvrb \fi - \ifdefined\color % - \let\tabu@color \color - \def\tabu@leavevmodecolor ##1{% - \def\tabu@leavevmodecolor {\leavevmode ##1}% - }\expandafter\tabu@leavevmodecolor\expandafter{\color}% - \else - \let\tabu@color \tabu@nocolor - \let\tabu@leavevmodecolor \@firstofone \fi - \tabu@latextwoe - \ifdefined\@raggedtwoe@everyselectfont % - \tabu@raggedtwoe - \else - \let\tabu@cell@L \tabu@cell@l - \let\tabu@cell@R \tabu@cell@r - \let\tabu@cell@C \tabu@cell@c - \let\tabu@cell@J \tabu@cell@j \fi - \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% - \ifin@ \let\tabu@endarray \endarray - \else \tabu@fix@arrayright \fi% - \everyrow{}% -}% \tabu@AtBeginDocument -\def\tabu@warn@cellspace{% - \PackageWarning{tabu}{% - Package cellspace has some limitations - \MessageBreak And redefines some macros of array.sty. - \MessageBreak Please use \string\tabulinesep\space to control - \MessageBreak vertical spacing of lines inside tabu environment}% -}% \tabu@warn@cellspace -%% tabu Package initialisation -\tabuscantokensfalse -\let\tabu@arc@G \relax -\let\tabu@drsc@G \relax -\let\tabu@evr@G \@empty -\let\tabu@rc@G \@empty -\def\tabu@ls@G {\tabu@linestyle@}% -\let\tabu@@rowfontreset \@empty % -\let\tabu@@celllalign \@empty -\let\tabu@@cellralign \@empty -\let\tabu@@cellleft \@empty -\let\tabu@@cellright \@empty -\def\tabu@naturalXmin {\z@} -\def\tabu@naturalXmax {\z@} -\let\tabu@rowfontreset \@empty -\def\tabulineon {4pt}\let\tabulineoff \tabulineon -\tabu@everyrowtrue -\ifdefined\pdfelapsedtime % - \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% -\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax -\fi -\tracingtabu=\z@ -\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ -\tabulinestyle{} -\taburowcolors{} -\let\tabudefaulttarget \linewidth -\ProcessOptions* % \ProcessOptions* is quicker ! -\endinput -%% -%% End of file `tabu.sty'.