From 2bca178a0640d5cba8b27f9e59dee6e487d0a9d9 Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Sun, 11 Jun 2023 14:15:02 -0700 Subject: [PATCH] Deleted html stuff and trying to ignore it. --- SubscriptionManager.cpp | 4 + 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 | 144 -- 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 | 101 - html/Socket_8h_source.html | 205 -- html/SubscriptionHandler_8h_source.html | 99 - html/SubscriptionManager_8h_source.html | 117 -- html/Subscription_8h_source.html | 122 -- html/TCPServer_8h_source.html | 172 -- html/TCPSession2_8h_source.html | 161 -- html/TCPSession_8h_source.html | 176 -- 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 | 106 - 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 | 127 -- html/classcore_1_1ConsoleServer.html | 287 --- ...lasscore_1_1ConsoleServer__coll__graph.map | 15 - ...lasscore_1_1ConsoleServer__coll__graph.md5 | 1 - ...lasscore_1_1ConsoleServer__coll__graph.png | Bin 46643 -> 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 | 142 -- html/classcore_1_1ConsoleSession.html | 331 --- ...asscore_1_1ConsoleSession__coll__graph.map | 16 - ...asscore_1_1ConsoleSession__coll__graph.md5 | 1 - ...asscore_1_1ConsoleSession__coll__graph.png | Bin 56267 -> 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 | 92 - html/classcore_1_1EPoll.html | 374 ---- 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 | 105 - html/classcore_1_1Socket.html | 490 ----- 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 | 16 - html/classcore_1_1Socket__inherit__graph.md5 | 1 - html/classcore_1_1Socket__inherit__graph.png | Bin 28528 -> 0 bytes html/classcore_1_1Subscription-members.html | 97 - html/classcore_1_1Subscription.html | 159 -- ...sscore_1_1SubscriptionHandler-members.html | 83 - html/classcore_1_1SubscriptionHandler.html | 94 - ...sscore_1_1SubscriptionManager-members.html | 88 - html/classcore_1_1SubscriptionManager.html | 174 -- ...re_1_1SubscriptionManager__coll__graph.map | 5 - ...re_1_1SubscriptionManager__coll__graph.md5 | 1 - ...re_1_1SubscriptionManager__coll__graph.png | Bin 9081 -> 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 | 16 - ...classcore_1_1Subscription__coll__graph.md5 | 1 - ...classcore_1_1Subscription__coll__graph.png | Bin 67493 -> 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 | 125 -- html/classcore_1_1TCPServer.html | 614 ------ html/classcore_1_1TCPServer__coll__graph.map | 13 - html/classcore_1_1TCPServer__coll__graph.md5 | 1 - html/classcore_1_1TCPServer__coll__graph.png | Bin 41741 -> 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 | 126 -- html/classcore_1_1TCPSession.html | 540 ----- html/classcore_1_1TCPSession2-members.html | 121 -- html/classcore_1_1TCPSession2.html | 486 ----- .../classcore_1_1TCPSession2__coll__graph.map | 9 - .../classcore_1_1TCPSession2__coll__graph.md5 | 1 - .../classcore_1_1TCPSession2__coll__graph.png | Bin 18134 -> 0 bytes ...asscore_1_1TCPSession2__inherit__graph.map | 5 - ...asscore_1_1TCPSession2__inherit__graph.md5 | 1 - ...asscore_1_1TCPSession2__inherit__graph.png | Bin 6244 -> 0 bytes html/classcore_1_1TCPSession__coll__graph.map | 14 - html/classcore_1_1TCPSession__coll__graph.md5 | 1 - html/classcore_1_1TCPSession__coll__graph.png | Bin 59233 -> 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 | 110 - html/classcore_1_1TCPSocket.html | 249 --- 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 | 12 - ...classcore_1_1TCPSocket__inherit__graph.md5 | 1 - ...classcore_1_1TCPSocket__inherit__graph.png | Bin 17771 -> 0 bytes html/classcore_1_1TLSServer-members.html | 129 -- html/classcore_1_1TLSServer.html | 326 --- html/classcore_1_1TLSServer__coll__graph.map | 14 - html/classcore_1_1TLSServer__coll__graph.md5 | 1 - html/classcore_1_1TLSServer__coll__graph.png | Bin 43063 -> 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 | 128 -- html/classcore_1_1TLSSession.html | 381 ---- html/classcore_1_1TLSSession__coll__graph.map | 15 - html/classcore_1_1TLSSession__coll__graph.md5 | 1 - html/classcore_1_1TLSSession__coll__graph.png | Bin 61526 -> 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 | 139 -- html/classcore_1_1TerminalSession.html | 349 ---- ...sscore_1_1TerminalSession__coll__graph.map | 15 - ...sscore_1_1TerminalSession__coll__graph.md5 | 1 - ...sscore_1_1TerminalSession__coll__graph.png | Bin 54123 -> 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 | 113 -- html/classcore_1_1UDPServerSocket.html | 257 --- ...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 | 107 - html/classcore_1_1UDPSocket.html | 189 -- 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 | 105 - html/folderclosed.png | Bin 616 -> 0 bytes html/folderopen.png | Bin 597 -> 0 bytes html/functions.html | 331 --- html/functions_func.html | 290 --- html/functions_vars.html | 101 - html/graph_legend.html | 134 -- html/graph_legend.md5 | 1 - html/graph_legend.png | Bin 21469 -> 0 bytes html/hierarchy.html | 111 - html/index.html | 74 - html/inherit_graph_0.map | 21 - html/inherit_graph_0.md5 | 1 - html/inherit_graph_0.png | Bin 43394 -> 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 2177 -> 0 bytes html/inherit_graph_5.map | 3 - html/inherit_graph_5.md5 | 1 - html/inherit_graph_5.png | Bin 2611 -> 0 bytes html/inherits.html | 134 -- html/jquery.js | 35 - html/menu.js | 51 - html/menudata.js | 63 - 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 | 5 - 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 | 11 - 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 | 5 - html/search/all_a.html | 37 - html/search/all_a.js | 20 - html/search/all_b.html | 37 - html/search/all_b.js | 14 - 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 | 9 - html/search/classes_5.html | 37 - html/search/classes_5.js | 13 - 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 | 11 - 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 | 5 - 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 | 7 - 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 | 4 - html/search/variables_5.html | 37 - html/search/variables_5.js | 5 - 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 - 359 files changed, 4 insertions(+), 19876 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/SubscriptionHandler_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/TCPSession2_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_1SubscriptionHandler-members.html delete mode 100644 html/classcore_1_1SubscriptionHandler.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_1TCPSession2-members.html delete mode 100644 html/classcore_1_1TCPSession2.html delete mode 100644 html/classcore_1_1TCPSession2__coll__graph.map delete mode 100644 html/classcore_1_1TCPSession2__coll__graph.md5 delete mode 100644 html/classcore_1_1TCPSession2__coll__graph.png delete mode 100644 html/classcore_1_1TCPSession2__inherit__graph.map delete mode 100644 html/classcore_1_1TCPSession2__inherit__graph.md5 delete mode 100644 html/classcore_1_1TCPSession2__inherit__graph.png 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/inherit_graph_5.map delete mode 100644 html/inherit_graph_5.md5 delete mode 100644 html/inherit_graph_5.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 diff --git a/SubscriptionManager.cpp b/SubscriptionManager.cpp index 00ff4f4..7ad40df 100644 --- a/SubscriptionManager.cpp +++ b/SubscriptionManager.cpp @@ -11,6 +11,10 @@ namespace core { factory = new SubscriptionHandlerFactory(); } + SubscriptionManager::~SubscriptionManager() { + delete factory; + } + int SubscriptionManager::add(Subscription &subscription) { lock.lock(); subscriptions.insert(std::make_pair(subscription.id, &subscription)); diff --git a/html/CommandList_8h_source.html b/html/CommandList_8h_source.html deleted file mode 100644 index 02392e0..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  int 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:43
-
bool grabInput(TCPSession &session, Command &command)
Definition: CommandList.cpp:34
-
void add(Command &command, std::string name="")
Definition: CommandList.cpp:8
-
void remove(Command &command)
Definition: CommandList.cpp:12
-
int processRequest(coreutils::ZString &request, TCPSession &session)
Definition: CommandList.cpp:14
-
std::map< std::string, Command * > commands
Definition: CommandList.h:71
-
Definition: Command.h:22
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/Command_8h_source.html b/html/Command_8h_source.html deleted file mode 100644 index 6855450..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:26
-
- - - - diff --git a/html/ConsoleServer_8h_source.html b/html/ConsoleServer_8h_source.html deleted file mode 100644 index a271999..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:28
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/ConsoleSession_8h_source.html b/html/ConsoleSession_8h_source.html deleted file mode 100644 index deef79f..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:28
-
Definition: TerminalSession.h:30
-
- - - - diff --git a/html/EPoll_8h_source.html b/html/EPoll_8h_source.html deleted file mode 100644 index e75c626..0000000 --- a/html/EPoll_8h_source.html +++ /dev/null @@ -1,144 +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 
-
35  volatile long long eventId = 0;
-
36 
-
40 
-
41  EPoll();
-
42 
-
46 
-
47  ~EPoll();
-
48 
-
55 
-
56  bool start(int numberOfThreads, int maxSockets);
-
57 
-
63 
-
64  bool stop();
-
65 
-
70 
-
71  bool isStopping();
-
72 
-
76 
-
77  int getDescriptor();
-
78 
-
82 
-
83  int maxSockets;
-
84 
-
88 
-
89  void eventReceived(struct epoll_event event);
-
90 
-
97 
-
98  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
99 
-
100  private:
-
101 
-
102  int epfd;
-
103  int numberOfThreads;
-
104  std::vector<Thread> threads;
-
105  volatile bool terminateThreads;
-
106 
-
107  };
-
108 
-
109 }
-
110 
-
111 #endif
-
112 
-
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:70
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Output the threads array to the console.
Definition: EPoll.cpp:74
-
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.
-
~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:83
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/INotify_8h_source.html b/html/INotify_8h_source.html deleted file mode 100644 index d9b1771..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(coreutils::ZString &watch);
-
16  void removeWatch(int wd);
-
17 
-
18  void onDataReceived(coreutils::ZString &data) override;
-
19 
-
20  virtual void inAccess(coreutils::ZString 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(coreutils::ZString &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 33793d8..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 df7c23d..0000000 --- a/html/SessionFilter_8h_source.html +++ /dev/null @@ -1,101 +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 #include "Object.h"
-
6 
-
7 namespace core
-
8 {
-
9 
-
10  class TCPSession;
-
11 
-
12  class SessionFilter : public Object
-
13  {
-
14 
-
15  public:
-
16  virtual bool test(TCPSession &session)
-
17  {
-
18  return true;
-
19  }
-
20  };
-
21 
-
22 }
-
23 
-
24 #endif
-
Definition: Object.h:8
-
Definition: SessionFilter.h:13
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/Socket_8h_source.html b/html/Socket_8h_source.html deleted file mode 100644 index 1d5babe..0000000 --- a/html/Socket_8h_source.html +++ /dev/null @@ -1,205 +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, long long eventId);
-
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 
-
111 
-
112  virtual void onUnregistered();
-
113 
-
114  bool needsToWrite();
-
115 
-
116  bool reset = false;
-
117 
-
118  volatile bool shutDown = false;
-
119 
-
120  void enableSocket();
-
121  void disableSocket();
-
122 
-
123  protected:
-
124 
-
125  EPoll &ePoll; // The EPoll control object.
-
126 
-
127  void setBufferSize(int length);
-
128 
-
129  int getBufferSize();
-
130 
-
136 
-
137 // virtual void onConnected(); ///< Called when socket is open and ready to communicate.
-
138 
-
142 
-
143 // virtual void onDisconnected(); ///< Called when socket is closing and no longer ready to communicate.
-
144 
-
152 
-
153  virtual void onDataReceived(std::string data);
-
154 
-
158 
-
159  virtual void onDataReceived(coreutils::ZString &data);
-
160 
-
165 
-
166  virtual void receiveData(coreutils::ZString &buffer);
-
167 
-
168  private:
-
169 
-
170  std::string text;
-
171  int descriptor = -1;
-
172  std::mutex outlock;
-
173  bool readHangup = false;
-
174  volatile bool inHandler = false;
-
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  std::queue<std::string> fifo;
-
194 
-
195  void resetSocket();
-
196 
-
197  std::mutex lock;
-
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:46
-
int write(std::string data)
Definition: Socket.cpp:158
-
bool eventReceived(struct epoll_event event, long long eventId)
Parse epoll event and call specified callbacks.
Definition: Socket.cpp:70
-
virtual void onRegistered()
Called after the socket has been registered with epoll processing.
Definition: Socket.cpp:64
-
virtual void receiveData(coreutils::ZString &buffer)
Definition: Socket.cpp:112
-
Socket(EPoll &ePoll, std::string text="")
Definition: Socket.cpp:12
-
virtual void onRegister()
Called before the socket has registered with the epoll processing.
Definition: Socket.cpp:62
-
virtual ~Socket()
Definition: Socket.cpp:18
-
void setDescriptor(int descriptor)
Set the descriptor for the socket.
Definition: Socket.cpp:30
-
virtual void onDataReceived(std::string data)
Called when data is received from the socket.
Definition: Socket.cpp:102
-
virtual void onUnregistered()
Called when the socket has finished unregistering for the epoll processing.
Definition: Socket.cpp:68
-
void shutdown(std::string text="unknown")
Definition: Socket.cpp:179
-
- - - - diff --git a/html/SubscriptionHandler_8h_source.html b/html/SubscriptionHandler_8h_source.html deleted file mode 100644 index c31302d..0000000 --- a/html/SubscriptionHandler_8h_source.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -My Project: SubscriptionHandler.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
SubscriptionHandler.h
-
-
-
1 #ifndef __SubscriptionHandler_h__
-
2 #define __SubscriptionHandler_h__
-
3 
-
4 #include "ZString.h"
-
5 #include <sstream>
-
6 #include <string>
-
7 #include <vector>
-
8 
-
9 namespace core {
-
10  class Subscription;
-
11  class TCPSession;
-
12 
- -
14 
-
15  public:
-
16  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) { return 0; }
-
17  virtual int onSubscribe(TCPSession &session, Subscription *subscription) { return 0; }
-
18 
-
19  };
-
20 }
-
21 
-
22 #endif
-
Definition: SubscriptionHandler.h:13
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/SubscriptionManager_8h_source.html b/html/SubscriptionManager_8h_source.html deleted file mode 100644 index c7e34af..0000000 --- a/html/SubscriptionManager_8h_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -My Project: SubscriptionManager.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
SubscriptionManager.h
-
-
-
1 #ifndef __SubscriptionManager_h__
-
2 #define __SubscriptionManager_h__
-
3 
-
4 #include "Command.h"
-
5 #include "Subscription.h"
-
6 #include "SubscriptionHandler.h"
-
7 #include "TCPSession.h"
-
8 #include "ZString.h"
-
9 #include <string>
-
10 #include <vector>
-
11 
-
12 namespace core {
-
13 
-
14  class SubscriptionHandlerFactory;
-
15 
-
16  class SubscriptionManager : public Command {
-
17 
-
18  public:
- -
20  virtual ~SubscriptionManager();
-
21 
-
22  int add(Subscription &subscription);
-
23  int removeSessionSubscriptions(TCPSession &session);
-
24  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
25 
- -
27 
-
28  private:
-
29  Subscription *subscription;
-
30  std::map<std::string, Subscription *> subscriptions;
-
31  Subscription *newSubscription;
-
32  std::mutex lock;
-
33  };
-
34 
-
35 }
-
36 
-
37 #endif
-
Definition: Command.h:22
-
Definition: SubscriptionHandlerFactory.h:9
-
Definition: SubscriptionManager.h:16
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: SubscriptionManager.cpp:53
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/Subscription_8h_source.html b/html/Subscription_8h_source.html deleted file mode 100644 index 0495a52..0000000 --- a/html/Subscription_8h_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -My Project: Subscription.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Subscription.h
-
-
-
1 #ifndef __Subscription_h__
-
2 #define __Subscription_h__
-
3 
-
4 #include "SubscriptionHandler.h"
-
5 #include "ZString.h"
-
6 #include <string>
-
7 #include <vector>
-
8 
-
9 namespace core
-
10 {
-
11 
-
12  class TCPSession;
-
13 
-
14  class Subscription {
-
15 
-
16  public:
-
17  Subscription(std::string id, std::string mode = "*AUTHOR");
-
18  Subscription(std::string id, TCPSession &session, std::string mode);
-
19  Subscription(std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler);
-
20  virtual ~Subscription();
-
21 
-
22  int subscribe(TCPSession &session);
-
23  int unsubscribe(TCPSession &session);
-
24 
-
25  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session);
-
26 
-
27  virtual int onSubscribe(TCPSession &session, Subscription *subscription);
-
28 
-
29  int event(std::stringstream &out);
-
30 
-
31  bool ifSubscriber(TCPSession &session);
-
32 
-
33  bool subInvite(TCPSession &session);
-
34 
-
35  std::string id;
-
36  std::string mode;
-
37  TCPSession *owner;
-
38 
-
39  SubscriptionHandler *handler;
-
40 
-
41  std::vector<TCPSession *> subscribers;
-
42  };
-
43 }
-
44 
-
45 #endif
-
Definition: SubscriptionHandler.h:13
-
Definition: Subscription.h:14
-
Definition: TCPSession.h:26
-
- - - - diff --git a/html/TCPServer_8h_source.html b/html/TCPServer_8h_source.html deleted file mode 100644 index 1fed99f..0000000 --- a/html/TCPServer_8h_source.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - -My Project: TCPServer.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPServer.h
-
-
-
1 #ifndef __TCPServer_h__
-
2 #define __TCPServer_h__
-
3 
-
4 #include "Command.h"
-
5 #include "CommandList.h"
-
6 #include "IPAddressList.h"
-
7 #include "Socket.h"
-
8 #include "SubscriptionManager.h"
-
9 #include "TCPSession.h"
-
10 #include "TCPSocket.h"
-
11 
-
12 namespace core
-
13 {
-
14 
-
26 
-
27  class TCPServer : public TCPSocket, public Command
-
28  {
-
29 
-
30  public:
-
39 
-
40  TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter = " ", int depth = 10, std::string text = "");
-
41 
-
45 
-
46  virtual ~TCPServer();
-
47 
-
48  virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
-
49 
-
57 
-
58  virtual TCPSession *getSocketAccept(EPoll &epoll);
-
59 
-
63 
-
64  std::vector<TCPSession *> sessions;
-
65 
-
70 
- -
72 
-
78 
- -
80 
-
86 
- -
88 
-
89  void removeFromSessionList(TCPSession *session);
-
90 
-
91  void output(std::stringstream &out);
-
92 
-
96 
-
97  void sendToAll(std::stringstream &out);
-
98 
-
103 
-
104  void sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter);
-
105 
-
111 
-
112  void sendToAll(std::stringstream &out, TCPSession &sender);
-
113 
-
117 
- -
119 
-
124 
-
125  TCPSession *getSessionByAlias(void *alias);
-
126 
-
127  protected:
-
137 
-
138  void onDataReceived(std::string data) override;
-
139 
-
146 
-
147  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
148 
-
149  private:
-
150  TCPSession *accept();
-
151  std::mutex lock;
-
152  };
-
153 
-
154 }
-
155 
-
156 #endif
-
Definition: CommandList.h:18
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: IPAddressList.h:9
-
Definition: IPAddress.h:9
-
Definition: SessionFilter.h:13
-
Definition: SubscriptionManager.h:16
-
Definition: TCPServer.h:28
-
void onDataReceived(std::string data) override
Definition: TCPServer.cpp:38
-
SubscriptionManager subscriptions
Definition: TCPServer.h:118
-
void output(std::stringstream &out)
Output the consoles array to the console.
Definition: TCPServer.cpp:94
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: TCPServer.cpp:98
-
virtual ~TCPServer()
Definition: TCPServer.cpp:32
-
IPAddressList * blackList
Definition: TCPServer.h:79
-
virtual TCPSession * getSocketAccept(EPoll &epoll)
Definition: TCPServer.cpp:90
-
TCPSession * getSessionByAlias(void *alias)
Definition: TCPServer.cpp:133
-
IPAddressList * whiteList
Definition: TCPServer.h:87
-
TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="")
Definition: TCPServer.cpp:10
-
std::vector< TCPSession * > sessions
Definition: TCPServer.h:64
-
CommandList commands
Definition: TCPServer.h:71
-
Definition: TCPSession.h:26
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSession2_8h_source.html b/html/TCPSession2_8h_source.html deleted file mode 100644 index 6eafeb1..0000000 --- a/html/TCPSession2_8h_source.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - -My Project: TCPSession2.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPSession2.h
-
-
-
1 #ifndef __TCPSession2_h__
-
2 # define __TCPSession2_h__
-
3 
-
4 #include "TCPSocket.h"
-
5 #include "Timer.h"
-
6 #include "SessionFilter.h"
-
7 
-
8 namespace core {
-
9 
-
10  class Command;
-
11  class TCPServer;
-
12 
-
25 
-
26  class TCPSession2 : public TCPSocket {
-
27 
-
28  public:
-
29 
-
33 
-
34  TCPSession2(EPoll &ePoll, std::string text = "");
-
35 
-
39 
-
40  virtual ~TCPSession2();
-
41 
-
42  Command *grab = NULL;
-
43 
-
44  virtual void output(std::stringstream &data);
-
45 
-
50 
-
51  void send();
-
52 
-
56 
-
57  void terminate();
-
58 
-
62 
-
63  std::stringstream out;
-
64 
-
65  protected:
-
66 
-
70 
-
71  virtual void onRegistered() override;
-
72 
-
78  virtual void onDataReceived(coreutils::ZString &data) override;
-
79 
-
86 
-
87  virtual void onLineReceived(coreutils::ZString &line);
-
88 
-
95 
-
96  virtual void onBlockReceived(coreutils::ZString &block);
-
97 
-
103 
-
104  virtual void onConnected();
-
105 
-
115 
-
116  virtual void protocol(coreutils::ZString &data);
-
117 
-
123 
-
124  void setBlockSize(int size = 0);
-
125 
-
126  private:
-
127  char *lineBuffer = NULL;
-
128  int lineBufferSize = 0;
-
129  int lineLength = 0;
-
130  int blockLength = 0;
-
131  std::mutex mtx;
-
132  bool term = false;
-
133  int blockSize = 0;
-
134 
-
135  };
-
136 
-
137 }
-
138 
-
139 #endif
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: TCPSession2.h:26
-
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession2.cpp:15
-
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession2.cpp:26
-
std::stringstream out
Definition: TCPSession2.h:63
-
void terminate()
Definition: TCPSession2.cpp:81
-
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession2.cpp:69
-
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession2.cpp:62
-
void setBlockSize(int size=0)
Definition: TCPSession2.cpp:58
-
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession2.cpp:17
-
void send()
Definition: TCPSession2.cpp:75
-
virtual void output(std::stringstream &data)
Definition: TCPSession2.cpp:11
-
virtual void onConnected()
Definition: TCPSession2.cpp:24
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSession_8h_source.html b/html/TCPSession_8h_source.html deleted file mode 100644 index a4ab218..0000000 --- a/html/TCPSession_8h_source.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -My Project: TCPSession.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TCPSession.h
-
-
-
1 #ifndef __Session_h__
-
2 #define __Session_h__
-
3 
-
4 #include "SessionFilter.h"
-
5 #include "TCPSocket.h"
-
6 
-
7 namespace core
-
8 {
-
9 
-
10  class Command;
-
11  class TCPServer;
-
12 
-
24 
-
25  class TCPSession : public TCPSocket
-
26  {
-
27 
-
28  public:
-
32 
-
33  TCPSession(EPoll &ePoll, TCPServer &server, std::string text = "");
-
34 
-
38 
-
39  virtual ~TCPSession();
-
40 
-
41  Command *grab = NULL;
-
42 
-
43  virtual void output(std::stringstream &data);
-
44 
-
49 
-
50  void send();
-
51 
-
55 
-
56  void terminate();
-
57 
-
61 
-
62  TCPServer &server;
-
63 
-
67 
-
68  std::stringstream out;
-
69 
-
75 
-
76  char uuid[37];
-
77 
-
83 
-
84  void *alias;
-
85 
-
89 
-
90  virtual bool compareAlias(void *alias);
-
91 
-
92  virtual void outputAlias(std::stringstream &out);
-
93 
-
94  protected:
-
98 
-
99  virtual void onRegistered() override;
-
100 
-
106  virtual void onDataReceived(coreutils::ZString &data) override;
-
107 
-
114 
-
115  virtual void onLineReceived(coreutils::ZString &line);
-
116 
-
123 
-
124  virtual void onBlockReceived(coreutils::ZString &block);
-
125 
-
131 
-
132  virtual void onConnected();
-
133 
-
143 
-
144  virtual void protocol(coreutils::ZString &data);
-
145 
-
151 
-
152  void setBlockSize(int size = 0);
-
153 
-
154  private:
-
155  char *lineBuffer = NULL;
-
156  int lineBufferSize = 0;
-
157  int lineLength = 0;
-
158  int blockLength = 0;
-
159  std::mutex mtx;
-
160  bool term = false;
-
161  int blockSize = 0;
-
162  };
-
163 
-
164 }
-
165 
-
166 #endif
-
Definition: Command.h:22
-
Definition: EPoll.h:31
-
Definition: TCPServer.h:28
-
Definition: TCPSession.h:26
-
void * alias
Definition: TCPSession.h:84
-
void send()
Definition: TCPSession.cpp:112
-
char uuid[37]
Definition: TCPSession.h:76
-
void terminate()
Definition: TCPSession.cpp:118
-
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:97
-
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:25
-
void setBlockSize(int size=0)
Definition: TCPSession.cpp:92
-
virtual void onConnected()
Definition: TCPSession.cpp:56
-
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:30
-
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:105
-
std::stringstream out
Definition: TCPSession.h:68
-
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:49
-
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:58
-
Definition: TCPSocket.h:20
-
- - - - diff --git a/html/TCPSocket_8h_source.html b/html/TCPSocket_8h_source.html deleted file mode 100644 index d09b5f5..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:22
-
- - - - diff --git a/html/TLSServer_8h_source.html b/html/TLSServer_8h_source.html deleted file mode 100644 index 6013091..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:28
-
Definition: TCPSession.h:26
-
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 835f802..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:28
-
Definition: TCPSession.h:26
-
std::stringstream out
Definition: TCPSession.h:68
-
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 603ffe3..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:28
-
Definition: TCPSession.h:26
-
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 f5aa035..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 7e19213..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:45
-
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 45395f3..0000000 --- a/html/annotated.html +++ /dev/null @@ -1,106 +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 ae803e0..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 1599308..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)
 
int 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()

- -
-
- - - - - - - - - - - - - - - - - - -
int 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 7af721a..0000000 --- a/html/classcore_1_1ConsoleServer-members.html +++ /dev/null @@ -1,127 +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
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSessionByAlias(void *alias)core::TCPServer
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::Socket
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 6a09bf8..0000000 --- a/html/classcore_1_1ConsoleServer.html +++ /dev/null @@ -1,287 +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)
 
TCPSessiongetSessionByAlias (void *alias)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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
 
-volatile bool shutDown = 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
 
-

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 8d210e1..0000000 --- a/html/classcore_1_1ConsoleServer__coll__graph.map +++ /dev/null @@ -1,15 +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 510b5f4..0000000 --- a/html/classcore_1_1ConsoleServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e45ecf4531bbc100b5e38d7afbd87afe \ 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 081a7e0f304d657e21d6d14a56300395dbec0e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46643 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 O{Z&|6s6;@==l=lbc>u)# 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 a78300d..0000000 --- a/html/classcore_1_1ConsoleSession-members.html +++ /dev/null @@ -1,142 +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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aliascore::TCPSession
clear()core::TerminalSession
clearEOL()core::TerminalSession
compareAlias(void *alias) (defined in core::TCPSession)core::TCPSessionvirtual
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleSession(EPoll &ePoll, TCPServer &server) (defined in core::ConsoleSession)core::ConsoleSession
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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
outputAlias(std::stringstream &out) (defined in core::TCPSession)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::Socket
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
uuidcore::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 ee6729e..0000000 --- a/html/classcore_1_1ConsoleSession.html +++ /dev/null @@ -1,331 +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 ()
 
-virtual bool compareAlias (void *alias)
 
-virtual void outputAlias (std::stringstream &out)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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
 
char uuid [37]
 
void * alias
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = false
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-

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 3db3273..0000000 --- a/html/classcore_1_1ConsoleSession__coll__graph.map +++ /dev/null @@ -1,16 +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 fb0e3d0..0000000 --- a/html/classcore_1_1ConsoleSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6bccdd3ce0f42041f9911b31e7a469f9 \ 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 8dc2a32989cc617f091096a93cdb378da9204f57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56267 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

T^BZD$6V9qOlUy+=SXg=jv>3 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 NlSgfj6qpmP{}+3RlYjsK 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 b7069e4..0000000 --- a/html/classcore_1_1EPoll-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::EPoll Member List
-
-
- -

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

- - - - - - - - - - - - -
EPoll()core::EPoll
eventId (defined in core::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
start(int numberOfThreads, int maxSockets)core::EPoll
stop()core::EPoll
~EPoll()core::EPoll
- - - - diff --git a/html/classcore_1_1EPoll.html b/html/classcore_1_1EPoll.html deleted file mode 100644 index eacbe7e..0000000 --- a/html/classcore_1_1EPoll.html +++ /dev/null @@ -1,374 +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...
 
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...
 
- Public Member Functions inherited from core::Command
virtual void output (std::stringstream &out)
 
- - - - - - -

-Public Attributes

-volatile long long eventId = 0
 
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.

- -
-
- -

◆ 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.

- -
-
-

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 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 diff --git a/html/classcore_1_1INotify-members.html b/html/classcore_1_1INotify-members.html deleted file mode 100644 index 03fa998..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(coreutils::ZString &watch) (defined in core::INotify)core::INotify
inAccess(coreutils::ZString 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(coreutils::ZString &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 bb13abc..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 (coreutils::ZString &watch)
 
-void removeWatch (int wd)
 
-void onDataReceived (coreutils::ZString &data) override
 
-virtual void inAccess (coreutils::ZString name)
 
-virtual void inAttrib (std::string name)
 
-virtual void inCloseWrite (std::string name)
 
-virtual void inCloseNoWrite (std::string name)
 
-virtual void inCreate (coreutils::ZString &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 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 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 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 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 33a2674..0000000 --- a/html/classcore_1_1Socket-members.html +++ /dev/null @@ -1,105 +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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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::Socket
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 907608c..0000000 --- a/html/classcore_1_1Socket.html +++ /dev/null @@ -1,490 +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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - -

-Public Attributes

-bool reset = false
 
-volatile bool shutDown = 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
 
-

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,
long long eventId 
)
-
- -

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.

-

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 aec602f..0000000 --- a/html/classcore_1_1Socket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c60753a1ec5ac2cbf84f9bf372e3ae70 \ 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 b3a63dad301111e55e3431bc02475ce288ca2bef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28528 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 F{{vTZB>MmW diff --git a/html/classcore_1_1Subscription-members.html b/html/classcore_1_1Subscription-members.html deleted file mode 100644 index b29f187..0000000 --- a/html/classcore_1_1Subscription-members.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -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
handler (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, Subscription *subscription) (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
subInvite(TCPSession &session) (defined in core::Subscription)core::Subscription
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) (defined in core::Subscription)core::Subscription
Subscription(std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler) (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 8512099..0000000 --- a/html/classcore_1_1Subscription.html +++ /dev/null @@ -1,159 +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)
 
Subscription (std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler)
 
-int subscribe (TCPSession &session)
 
-int unsubscribe (TCPSession &session)
 
-virtual int process (coreutils::ZString &request, std::stringstream &out, TCPSession &session)
 
-virtual int onSubscribe (TCPSession &session, Subscription *subscription)
 
-int event (std::stringstream &out)
 
-bool ifSubscriber (TCPSession &session)
 
-bool subInvite (TCPSession &session)
 
- - - - - - - - - - - -

-Public Attributes

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

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

- - - -
onSubscribe(TCPSession &session, Subscription *subscription) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual
process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual
- - - - diff --git a/html/classcore_1_1SubscriptionHandler.html b/html/classcore_1_1SubscriptionHandler.html deleted file mode 100644 index 122111e..0000000 --- a/html/classcore_1_1SubscriptionHandler.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -My Project: core::SubscriptionHandler Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
core::SubscriptionHandler Class Reference
-
-
- - - - - - -

-Public Member Functions

-virtual int process (coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription)
 
-virtual int onSubscribe (TCPSession &session, Subscription *subscription)
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/html/classcore_1_1SubscriptionManager-members.html b/html/classcore_1_1SubscriptionManager-members.html deleted file mode 100644 index b80ff7d..0000000 --- a/html/classcore_1_1SubscriptionManager-members.html +++ /dev/null @@ -1,88 +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
factory (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
~SubscriptionManager() (defined in core::SubscriptionManager)core::SubscriptionManagervirtual
- - - - diff --git a/html/classcore_1_1SubscriptionManager.html b/html/classcore_1_1SubscriptionManager.html deleted file mode 100644 index 5f82aba..0000000 --- a/html/classcore_1_1SubscriptionManager.html +++ /dev/null @@ -1,174 +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)
 
- - - -

-Public Attributes

-SubscriptionHandlerFactoryfactory
 
-

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 906a1bb..0000000 --- a/html/classcore_1_1SubscriptionManager__coll__graph.map +++ /dev/null @@ -1,5 +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 31d886a..0000000 --- a/html/classcore_1_1SubscriptionManager__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -10381645b9e54c41704797e5bdbda984 \ 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 2ac72391d54c0ab28b2b6ea2dc531a363f61f0d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9081 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 - - - 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 a9817a4..0000000 --- a/html/classcore_1_1Subscription__coll__graph.map +++ /dev/null @@ -1,16 +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 409e638..0000000 --- a/html/classcore_1_1Subscription__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f8a16462219e60c4a850bd47db3544d2 \ 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 1ab504077c840e9fc24d943f5f398c959aca3638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67493 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

T#ckjzgY}ql$8AONK7K4-J$~@%k*|!`INP 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�-osV1BDN*5>h?Uz^_TEW+h8j;qM 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 +j;8b1W$2S5V%p9vrm^vl^b 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 U_qPLYCd3l457NM8)%o&&0KTc$0RR91 diff --git a/html/classcore_1_1Subscription__inherit__graph.map b/html/classcore_1_1Subscription__inherit__graph.map deleted file mode 100644 index 932135f..0000000 --- a/html/classcore_1_1Subscription__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - 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 896d8ec..0000000 --- a/html/classcore_1_1TCPServer-members.html +++ /dev/null @@ -1,125 +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
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSessionByAlias(void *alias)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::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 2a0fcd2..0000000 --- a/html/classcore_1_1TCPServer.html +++ /dev/null @@ -1,614 +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)
 
TCPSessiongetSessionByAlias (void *alias)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - -

-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
 
-volatile bool shutDown = 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
 
-

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

- -

◆ getSessionByAlias()

- -
-
- - - - - - - - -
TCPSession * core::TCPServer::getSessionByAlias (void * alias)
-
-

Use the getSessionByAlias to retrieve a session pointer by the value of the alias pointer.

- -
-
- -

◆ 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 6f06af0..0000000 --- a/html/classcore_1_1TCPServer__coll__graph.map +++ /dev/null @@ -1,13 +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 ea11268..0000000 --- a/html/classcore_1_1TCPServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -badf028bda2effa907d0c79f664a2cf2 \ 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 1af34b804877d252da3cac86fbbe590c441a642d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41741 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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 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 diff --git a/html/classcore_1_1TCPSession-members.html b/html/classcore_1_1TCPSession-members.html deleted file mode 100644 index b22cd21..0000000 --- a/html/classcore_1_1TCPSession-members.html +++ /dev/null @@ -1,126 +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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aliascore::TCPSession
compareAlias(void *alias) (defined in core::TCPSession)core::TCPSessionvirtual
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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
outputAlias(std::stringstream &out) (defined in core::TCPSession)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::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
uuidcore::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 19207cd..0000000 --- a/html/classcore_1_1TCPSession.html +++ /dev/null @@ -1,540 +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 ()
 
-virtual bool compareAlias (void *alias)
 
-virtual void outputAlias (std::stringstream &out)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - -

-Public Attributes

-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
char uuid [37]
 
void * alias
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = 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
 
-

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

- -

◆ alias

- -
-
- - - - -
void* core::TCPSession::alias
-
-

alias is a void pointer that can be set to point to any object that identifies this session uniquely. Using this approach, inheriting objects can determine how it knows the contacts that this server manages.

- -
-
- -

◆ out

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

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

- -
-
- -

◆ uuid

- -
-
- - - - -
char core::TCPSession::uuid[37]
-
-

uuid is generated automatically when the session object is instantiated. This value can be used to uniquely identify a session and is the default value pointed to by the alias pointer.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/html/classcore_1_1TCPSession2-members.html b/html/classcore_1_1TCPSession2-members.html deleted file mode 100644 index 7349d40..0000000 --- a/html/classcore_1_1TCPSession2-members.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
core::TCPSession2 Member List
-
-
- -

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
grab (defined in core::TCPSession2)core::TCPSession2
ipAddress (defined in core::TCPSocket)core::TCPSocket
needsToWrite() (defined in core::Socket)core::Socket
onBlockReceived(coreutils::ZString &block)core::TCPSession2protectedvirtual
onConnected()core::TCPSession2protectedvirtual
onDataReceived(coreutils::ZString &data) overridecore::TCPSession2protectedvirtual
core::TCPSocket::onDataReceived(std::string data)core::Socketprotectedvirtual
onLineReceived(coreutils::ZString &line)core::TCPSession2protectedvirtual
onRegister()core::Socketvirtual
onRegistered() overridecore::TCPSession2protectedvirtual
onUnregister() (defined in core::Socket)core::Socketvirtual
onUnregistered()core::Socketvirtual
outcore::TCPSession2
output(std::stringstream &data)core::TCPSession2virtual
protocol(coreutils::ZString &data)core::TCPSession2protectedvirtual
receiveData(coreutils::ZString &buffer)core::Socketprotectedvirtual
reset (defined in core::Socket)core::Socket
send()core::TCPSession2
setBlockSize(int size=0)core::TCPSession2protected
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::Socket
Socket(EPoll &ePoll, std::string text="")core::Socket
TCPSession2(EPoll &ePoll, std::string text="") (defined in core::TCPSession2)core::TCPSession2
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket)core::TCPSocket
terminate()core::TCPSession2
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket()core::Socketvirtual
~TCPSession2() (defined in core::TCPSession2)core::TCPSession2virtual
~TCPSocket() (defined in core::TCPSocket)core::TCPSocketvirtual
- - - - diff --git a/html/classcore_1_1TCPSession2.html b/html/classcore_1_1TCPSession2.html deleted file mode 100644 index 7d1398a..0000000 --- a/html/classcore_1_1TCPSession2.html +++ /dev/null @@ -1,486 +0,0 @@ - - - - - - - -My Project: core::TCPSession2 Class Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
- -
- -

#include <TCPSession2.h>

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

-Public Member Functions

TCPSession2 (EPoll &ePoll, 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - -

-Public Attributes

-Commandgrab = NULL
 
std::stringstream out
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = 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
 
-

Detailed Description

-

TCPSession2

-

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.

-

TCPSession2 is designed to be 'connected' instead of being served by a server.

-

Member Function Documentation

- -

◆ onBlockReceived()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession2::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::TCPSession2::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::TCPSession2::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::TCPSession2::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::TCPSession2::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.

- -
-
- -

◆ protocol()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession2::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.

- -
-
- -

◆ send()

- -
-
- - - - - - - -
void core::TCPSession2::send ()
-
-

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

- -
-
- -

◆ setBlockSize()

- -
-
- - - - - -
- - - - - - - - -
void core::TCPSession2::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::TCPSession2::terminate ()
-
-

Use this method to terminate this TCPSession.

- -
-
-

Member Data Documentation

- -

◆ out

- -
-
- - - - -
std::stringstream core::TCPSession2::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_1TCPSession2__coll__graph.map b/html/classcore_1_1TCPSession2__coll__graph.map deleted file mode 100644 index b1f9008..0000000 --- a/html/classcore_1_1TCPSession2__coll__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/html/classcore_1_1TCPSession2__coll__graph.md5 b/html/classcore_1_1TCPSession2__coll__graph.md5 deleted file mode 100644 index dba19e7..0000000 --- a/html/classcore_1_1TCPSession2__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -19364e83a43ab4ba592b0312977d0505 \ No newline at end of file diff --git a/html/classcore_1_1TCPSession2__coll__graph.png b/html/classcore_1_1TCPSession2__coll__graph.png deleted file mode 100644 index 83e485c4fabcf9cf5c116456026050049b9054b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18134 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 I>zopr095=AB>(^b diff --git a/html/classcore_1_1TCPSession2__inherit__graph.map b/html/classcore_1_1TCPSession2__inherit__graph.map deleted file mode 100644 index 57bef83..0000000 --- a/html/classcore_1_1TCPSession2__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/html/classcore_1_1TCPSession2__inherit__graph.md5 b/html/classcore_1_1TCPSession2__inherit__graph.md5 deleted file mode 100644 index a615e73..0000000 --- a/html/classcore_1_1TCPSession2__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -fa41fc1bb3bcdfffb80d976d2d6400db \ No newline at end of file diff --git a/html/classcore_1_1TCPSession2__inherit__graph.png b/html/classcore_1_1TCPSession2__inherit__graph.png deleted file mode 100644 index 53d19a1c370e89285bf926c176afd45ba600b9b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6244 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 BPv-yt diff --git a/html/classcore_1_1TCPSession__coll__graph.map b/html/classcore_1_1TCPSession__coll__graph.map deleted file mode 100644 index 0db6433..0000000 --- a/html/classcore_1_1TCPSession__coll__graph.map +++ /dev/null @@ -1,14 +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 676e7e1..0000000 --- a/html/classcore_1_1TCPSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -91f57454593efc08e12cda9660f2df52 \ 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 0719de080cb20a19c94dd983dab476bc1fb58c32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59233 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

FHPN`z6#z+wLw53}6T_2^cU0W3ig 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 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 e7c11c2..0000000 --- a/html/classcore_1_1TCPSocket-members.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -

-
-
-
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
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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 (defined in core::Socket)core::Socket
shutdown(std::string text="unknown")core::Socket
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 64eb360..0000000 --- a/html/classcore_1_1TCPSocket.html +++ /dev/null @@ -1,249 +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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - -

-Public Attributes

-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = 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
 
-

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, core::TCPSession2, 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 0d0890b..0000000 --- a/html/classcore_1_1TCPSocket__inherit__graph.map +++ /dev/null @@ -1,12 +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 8898e9a..0000000 --- a/html/classcore_1_1TCPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a3f0cc10e1369a50e7562354f8e829d7 \ 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 818c99f13ed7f6c7963161f0dca69c794ce4deb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17771 zcmd741yo$!vZ&h$AwURDa0w*ACAbru;56=p;O;ao!5xCTySqd1;FiYS-CghE-+P~P z-#&Zacg`4ZjCVU3qtod%*IG4K&8nJTRdt}Ov?$UWyf+{a2ubX#kQ@l~G7JQIAq)Q! z_@CBtBYWWO^>+zTA<)zFpY)czC=lp9NKA-d!7=$@0iuC%^#pe;gQesB{{5Sv)$IO} z7w}a1%S81!Sk{vY78du%d#1jJ zNBEoo1g7<{V`tvmZ9zJ=#W)$8viVzr;7p3=`;hF;Z35mv`AC^~Adu%6Dirt-;+Ov# z1p3BIw*U(Q4b_^@Vd3LTK;F?x8W~Y6eBz`2(PH8`Nyo~1Ia#7^r#$vOJ1@`Q*LO@4 zwwi9b=r!oOxq0Y9m-8D01Z#WyoTfKMn&rw!AkZ(P02AQkB7zDqAkb$#;Ch&mpPjON zd)7OB?WSJ5hxyO1*D%QmRT(nMB4aDX@uS?=uF93^e&iaKZgG58}SdcF~FAg>#r1 z*1ZfRi4W>Zlr~&pVo3$xRZWIkmocUZdt>9fL`Y4s70P5bcL7cL64g5W5*Igc3Z zhlk!j7P(A}m*eMBFody-xg0+2ngs}PaLM)&^-rF~+J8K^93}(Hd zA@hHJBR#Ci2*sf5RE7sjyg%Vi`1y2rGPdK}Ix&Brs+eo&^e6CDQc4|D@E0GBwgoob z``o&)7YM4pGYG9PYjKk5kS599%xS{n;!wFTi+MD(EABdl^CiS_Eb@w4@#y8D8%t5? zbIYr}m{Bng`sDWoZy*1pcWJ*alwpq`&&;ok-x#_eddZ9j3o1#9dVa|tticmK&db=3 zP8xRX!caeI-FXz&@)pFvz=ltv$kyC$1bU)>G{;FdX}KZxa&#OQL1ekpEPG6;UGKO@ zUQn8+Dbu&kDcGuW4z1hHEXvHD8ME1a3gf1UZe(_ zS*Rn%Y5w`MIA-yxl%!{3+uZ@r8)g~?+9$xr%W4mQ~Vs=d0I?|57bA5<$zgd z6@VvcZpR-!*l`;-o(~5%D3s`ztI!C5>p=uKZ@@?(`?d4idE4W)5=1sFNlFU0G>6V5 zmxTuO(uAs{n+0?2JMzuw7=!Lx*Q&h)Xh?x32TLAH(h3WO`vd9HUIFYzj#Ghk?^KhU zOJ&5@mSP&(QQO(4OW{S2o6_P;iihF$gLavkJEYIx*h*l+73q?eh93CViPLB3EkH=j0bzwe`6uw9&n$Fb{9VupRUFR8<&8zAx6bhykj7GSs+92sQ zK)ff5H!^at=gn-SI1hl-C5lPGHw`pr8MZN954c1`=30b8v!IL>@ah93JP$RVSdO14F!Nv8LHS5k( zxxKYLI~$3OYs+myM<@rbDFE0mjD_Z#!9L@uWDajO3%krFEKuT#1`Fsj*wHcb`swA1 z)QlG;gwM7qFH-;q%{mTMPF5E0-G$Gg4an%(u=X@Kvow^KhoE+BRCab^Y}3Jc8UUv6 zTk={jM!g0riO_r0R34YM?Cj*jAkelCFv5V6j;_saCz9_y=98)tS-mSq;Nnlvw(s*- z93GGSP7Ue1GFZX(_m1457obsOU@iu2fDcIz+HK?l85E3+9ADbvd;UJ;b>9emSkP@= z50VRF7S*~lL`DK!L&@W5` z1p2o~EJcqrbaY#14Fu8~M8f?1VoH-PFfdY-@-P%M+^UEmoIDB&!9-<4z6ow#yMri~D1T-`?cS^-p-_kHk``Q_40Uy zi2+4R&m;ZMoIUZkFXo$eP15~GBW_2{Hx95QG*~i-cF^!AKVUwyQ^@$+^_QRK}gU*N`Y*lkS^^)MUfLtC*$8l46E_My2v zg!g`IdAECx!+KWatJ|1g?!#g254lZ~b_Day+Ev(Sl&_z;bDEKgb2X1rx6fM+mhGQq zwoJ^ho_g%cNTZElOX;$^!*2#lpW6IWI2(tm?xMEuHiV+FY8?)=_3m#w4W)@SbhXhR zJ8$K2Nl#w=Xv=zJP+x_tcHE@-wQ$uvHg(>3x6WX=AFeObyYS51bhfVty^eeDj7$7f z>s{g|hGdg$)dq~(J|k;baYqeQ%m;m8#A$TrRN<3#l# zmFiEWAj7794|n=^Nk^om8ZAM|uQ>p#Qf-o1Jzz+L(?pkKJj0(-Hd#92lT!tE>Pug$ z={yP5kJLpm|I}(>ndcidN3I#-Ogn5MJwka#c4?N?MVc8GiRJ-$ydN;$yrt66cSF2V z6?{{seJ9EXKX+~0b_UngH1_-${H~7P1k{Ep5hi^oWTvL0pz&I8@l0R@?=o2qj9{=F z5ov5~FuMQP>ma@qX{8_$QrkdRuCggDFr1`ch-F;wHP@cOvocks1kEmk*!hac`iF+) zcfVy{jm5|*Xj!z%aS1N;dzpD(zW(@yO-5)ILtxr`b~iv!F*+(n-eIb@doj;MJa+f@ zkJn#b1eDB(M9mLSqoTP5I??sNy|dB73GP-LJD6YE@&B}jq~e3B#U&A^A4}&GAYMtN zdAihmGk3KM7i$BkLSaOCq7SNo&&V(_tvQpyUbfb1QMX==9EcHc14hv4MrY2Ax``^v z@y9kC-JNZtn5Ch?tbiB6sHFYQDZf!oJ4l&yx z!<3$wCM6mP%@1<4m$X(Of^IsKqQ^C7U9CDgaP2bnvMH%E9pQndS@AT&5p|yO$y{j%v3<06CFggMz^5wwt zp0=FjOPdQKYR-#^S?@6!+aTDEpboaaDdeY0w#KismU>mlxygM7AIqub^bnbS2sa#xx{bda*F;F^WE6UxO_1?7wba_{~@pe8EveX zoS5N&i)$!E=lH{Z(vmXJNg_A!bMzKwW*a}&|z+Jb>v0fyXrr7Vd7XYO0cAG@H?i(P0D;2ZEtG@F!w07jq6{(EpgyX+}w z2n)(%Qqn&Vb9VZ6+Kj~i!?M*YjZ)9ff@Le8)h9OV&GC<)J|PiuRwo!BmjHW5J{??q zd@c@-K0T$EFN&Iz)wPBx>9?X|DyXUIb8_~B-dL#OioX8_R?vsc&|qayWEQH8RT;8| zPt^uWxLy`ZH8}{$l-2KCP*cmxq;3O;`6{Z=1P#2iZixQ*Golyc)RB}(rfcKP#kqL> zJlTT~4yRpyXsDF@-s|^1>2-{t{P17D@>xtf5J=2eg9kQbF%`iiIv&vj8+Jz)s92jN zB@6M7!bOM(f$ELt0WEH2>FGC8$uTMlf1+lpV5q2sNF&$Z8dRug(20IT-`&pd?k(Fm z$^KG{!PoliUUxS)4N3|M1mMvE^G|KOs*_onn7FOKTTj>~qS~wqag(gyUXULxx*6Th z!;?5T@JJ`CWEK{7ZHO-(f}ii?TZM}47P7E3OxAlKvbLb25YqOKslO!(*R`;~M6diRD5y#{5EM`^0S}l1bg+(&HDf}a%F!aBblPK~6ux5M-6S_r z@6b@A6g~?s9a{Phu+^8P=im_Lalt!vWMRY8pqrbYzn-q}-Q9InrKM(O)^f!~5(b}~ z7+Wr`510)5M3ib?Jl&cmWMo|Ci8fGE2>~G;ou;!-u%jpV`DFesS6a@_hs3P=agd`R zQ;nb98#cFBM|S)1ac^xoKddb*d9)QaUI%yTq;T5HC^2C(F`C%kp37lG)j}r{J6Fz+ zmMWz1YdCCQ`Xk+49Is4QGJ2WCA&#;G0!Qo)r)*Uj!iC`1@zByj?k-2Nvf3aHwZ%bf zbaCdoy3YI40xT>E8_Xmhxw#`dbpla5F$8=Bz()Br;alda^;+#bU$+mbfn=k;3JHsl9ZXwOGB6B{SDvkQ zBYzNeCv)GqIWtqAlfo3XX5Y^cblIQV%Ec8I&b?=B|hq^>(*_izhYXvF>P!0!{$ z(IE%9YJnWJV!nBvW)Ts0`3pH|>9I7Ap8X|ac@-5-W4Sir;C+`%=4huEpbM`S6VSDc zu{Hiz<_${IoLpBBMM@!O%_Kh<)BO~dWZZ+xw+b1YNZe{NsT7^qP>T^oy*H4a;e$C ziD^E>eMJ}$iI3~Gti$=X`IojL4i4WavJ3S}J)i29Y0+>-hr{OkyQ9M)>$4O3w)>4O z$i>86Etj1U2KJTrAU3%YnB@LuD}cq6Ag2UP7|g&R1M@PIPFs3+zTqI5LvVhZjr^Y-#D%*4^CPW%EWWXZI5F5M4$hauxx^sWC zvANkZR55xhA@1z9%mkcJRIEVv()pKy6wX<_{x!>Th{+ssQyG3m6 zw+UQR(qx38ENTJ*vt5C_=-R6%?6zC8kH?)KIpRKo9UNBLz1c1gf^Uv92FEInfTz09 zRF~C6A*=U%gWKJ~$zLAp(Ft68fAQHq-s>jA>%ttoR>$dK!KDgdmy$`!b`n zv}d8oG|AYq6|KMj6&f1E&5b@UTMq?yd}w0Aq6?l0E0}V_isThekqKh5f^&Mk2`&|&S|JaphwPl;x)!|H7 znA;9rwiXfZ;B?c~Y=Jzarbf|l2ycBwCm30rUkO;OZ={>&>fG+Sfh9XxFP6BXrlb(8 zuit|5rV$qhM^jFY*ZTVseH+0{O%d;cFn_Rr{%ctk;Gsp4V?Yj@lM@pUmcP}S&E&Vb zagA#NLU!e2-5qDpaC2K<9Tw4Rt+TVoJ2}tJ%sS*XQ5dyb3BdBbc=s-bkjvpN{7dQj zCYDsSY2(uh~fu*Cxttf>K2xIB-O2f5GM8V$T&0uBtnj zkcO6PLKE{dupYpM*b> zVp{ag9Ig`B#Tz+M1U0&H^i8ob^71OWKE()JM&P=!8O{zSb9|MT z_dU$?v<99ZZJ?v&e%%rsw_^nFcb^}`yyi$?+Su4wd{k8X^KDwzq>WuptM(r{A|mG7 zbZ>B80m3jw$016mH14h0Qqt1)wzr#g2aQ#KF(_=PNzKQirlCPXZmn{;f({P81VjR! zJ;OIogazRjAC_B9K)D!}?T~{Y*Q?U$u?kDs(dOY4>y7f40&xh*1qvGcn4Ziwdbad>=;P0eeq|p4QCm%C00R=rmc(f3}Ha?yHPnbDEFkazaY}`Sb1X zNOizpb$6SrbgUfAnNIQGQeXj_-l~tES{7UGOaK()sNKJ?AflQe3IU(M$BgulcGxTsrHcBO(lpXKnxue&ZCy%uE>GYwb{L=TM9JRCspEIb9G{ z>hE9DaV`Tl4)}Yc4~t^6HGBP4hN{TO26-~{gr7m8EEyI`N}9#RjoG;dM|0R!)@unR z>LVOn>NVSyL&@4Y z@m+n{j1nT;uNUj<2Xh^Q{uY2jrwnX3I=($QE;pYL2|di@u`xr_n)&e5%r+eAnIDUAV!XfP5$<}q ze-J^kz|C`Dh1b;Gj^YYZMPK@Oux5L5xDXc`oAPu&VY~i&1XvMjEWilk2^x!eM?6$i z78eK41l2nZTR(O#^;H}hiDySVg9;4YbGZQ=KCmEiBt$RvrXmkB)mZlx+2BsZ5&*+( zVp=qu$O0e7RtxB?XYTEB#{Tx$oV&ZSt<4*9sokrMxDQPZP{0NXd*)m4uHK=&gvkmH z9v~#Vqf=$fRA+-}41QSvtme?TBy~H$%YFN1C+ur=d+rsCg~Z0(B{k0Ioo``5%p2|N zPksnE3>Frb<7JD~R0nqLPDys~i&32a^nZ$qISsbvTf;RIlS(;F6rO%y`L(8|x%viG zQ4z908QtKrAIaPeU&4DcnmDgffCq=Sd9udlac{k`-q+=DP`x=q>_`5InRs7uV8$D6 z=kak$CROs!7&wW;7S-L85e~3yt%XE#Gg+cdzKH(1BUue3g~pLFil~^FfYG5vh0l}R zY5UgxSzcblg`Y`?g>RwI;wLK`+vR0#+UJ!gEA>Kx_l3p^3JMPU(+4dsWi9S0N6X(f zcZ>~9=Td-a1u`L?3ad%kb>>aSS4(AG;e5Y@*-m}(b5pLVm-p~-iPL8D!XxwY7NRL( z>NV^(KUfBsM7;m_(dQ6-8**haoWN9edNy!-2_A-{0JsPAvj9bt)IhV-QD| znwqDP${6i65}ux(-p2tBIZ#@}26=I}9GGEZ9B+8VsNXgN;B``#yyWEMPLpph#?B3p zkdbp;KEeBEZuHsU;N8*VYaWvB0)9IaxqZP@jd( zC@3NVRaseCbttrh-nhp!3{lmpAK=>ml#u&RbP12fv&1T-Yxa$`bXJZcXuLSUvW@=KAzt;9{PL3->(x2iSdOC|Fw#>LxDs9EG zyU!zddnDGC<-C4oj6sl>B%qA8vc5y~tf% zEK?b-&0N{2DrVl^DM)H+%=-gNuX^&ho2G5^D9!jx^Y;Rq6MdQ4HO&cEukiT-h;nYO znx7%UdA@_bzp2JF)eXf>F@{xhA8Wr!nswj;R=YLHJ!v&psBtfEz+(47>X+uG)WVqiy}VzcKzfn z)R-A}NYCx|6aCRI_DY6Ty=cztMpU+~Pce@$O4isOP_4?{mpQy=84a+2tl|!|6#ap- z``>knbBbqc=e}K)fGvH;U%!!e$1mn3TP_L6+;t?5wS4?8OHRwHU37N5k*9^gOS_@F zS}L(?7RCv+ zh)|4AS?2oe-dAm3H-M+{)pRg5Edi4wzjTmL194in0q9OQ;o28BH0@8{h~=_JRQVF-Pjhh*|*uH+P**hzg)=^R$nBP-~I|}n|e$uERiwU;A_vi zfKe!McOp%HC5HbxU(NDS^j=UgqIyhV$bG8FBagP>bDLn@JGOy6s>03itJ9)Ik^W9s z?Khu7)DL=_%D203o{;{G;;dW=d<82Q@7|PXti%+XvOO|?yEv$OC@nSZOH~U)057n-dZM{v)(n% zC8QuAclO!;KN6~G#Nf%KI@c&VzZe*f6iKegI?Kwgw#b>+2S{Bb4p;`+`q3IEteXm2 z0hx@>M|;J^W@yImYfD?{`i7%9Gmd@3OVERdCK%FO#;kTK+)`7feNbEbw%@rMuFBcG zu{|Qbl;vGvFqmoRP?NYVv*|Ela){Mcoz5sC{wj8!F?zLTz*Vactq_5d8KTdsmzQpS zU^M2JE-OR6L6N$3*yp33v$j zlC47@4>|t#9B%=q`0ddynB`7Y`aZyWOG}FzM_MYCN4$#Hw5!WB$k?*IF){piKCEJ+ z%+1O#-z4k0;oFd}>Rdh4AH#n#mOmcB*p2}rNNY(v zG&!HM9zS%9huP*Hd35pT$LVg;GyRVIp&k+$%*RRQ+VD?S z_FCBPY+2<3vX^uh4%B`>uOI zp=WO2-roZ2aV?lK&mhO9tPFRnUK!GvgKBA8Ra6(}m|8u~wJ0P2} z*Bpr#O7SCy&0YCC2das|D$T+sD-YdaxSgxwo^r~n$x&Ju+fYY&P*2KL$1~2~y-28K za_I_#PYYB-q70mxaub=VKVu68ur6hvbLe`&BbJ%fS)^ZG`p*N6aMrjs;wgF2tj^KU znWzUh1Dx`Y$oEDJ7p}xO0gncsY_7le=cyJz^4Kg}ZZ4eyL`VA7f6vTT;hi}AeihvD z0lJJqgN2CF9{mMKW+y!!i>nU7=?UDU4(3`K>$4CWSqxP?bp5yU+keY#=2Fm>B{Q^z`(wva(7giIy@jn(1BSPSQ^MdK3_mW$1lQQy-Wknos)|Ni~e zk4Z>D&{nm9aew5C<>cdwHLGbny!%nvqY>Vyp-so3#N%JTC`|WC$)z0!^!)hZ4(8}B zW^77LmA&)xkM!8*0Gi_dc$2!iIvx}>OMLYE^uj)gbx6Q3__Yypa*^L=<+t|Z*>I?J z1A)1D3l`XAWr*TI+FFvgXoYD2x9{I=qDPQRMbgew? zf!eWB9!@M10X5@)B;x7+Dm6sr10XSS8M1zd%@od^RF0}@Q)M?InbX%10~>>>Jni8-8#i=xVsuNX zf=S*Yg+@8a@BYPF_01PzIwQ-GFaw3i$jpUFUEMt?QK6$Wr)R+cDx+7kD>qlSXT8f> zTh^eNKK84zn1emgKNm3*zF4RDa>_!;B4bal#>c2 z#$@)mzkVvRmSTw;IQ%09=?+>3AkOo)7IMV<+jR_t1V9yBmm5aNP@)xLaGI+dy-fTl za2Nv=5?HSxJ(B82E=@BAjcLDFgnlAx9qhk7DkUNc$3V9ctqlg<)Z3D?FjWCH6-43G zXS&Nz!wG9!Y_g2n%H83WMzPQ6}`>J z2jv$pz`z{i;hBsivKVa+@+T%z31s}9b$-~JI-&@&YDj(o!%4`=tgV?sf0pxfZ!5&d zr*N@$U}7SULR74*wAtsXI$GTN#JdlG4rr2`y86cB!-a;0?Sa~>S3(chYhnWM!e9{* zPT;{{`9o9_-jl8#rt(bv{Hc|cgb!@{*f~^}Fb!Gv-;nrp>bN)|=~m4UAkPh#-c{%#CVj|5Ac2Ov2fxEse%@(w#KI1V zzDG^rPEg6BJUf%n)lFkr65!!EaCPN1tWxzU$D+YetBD%gvIS59z4qfKKyMeC@Qc;# zn=O}!r-~6gE~v_Gf?ixd$C)QV!2>eMU#F|K)J#ljy}c9i@={97uVh34eh4s`G(V)h z6972ZERjqYT^+U%uvxf-dJ!PIY>yK0^PeT@298RSeuy#{e*1ns>i|8xH-Xds*X2PP z+g@gwhL~34xsl|cxRjKB;0HZJY(JlQ4y)y!B(@uGILH~maTq$@F8F%^`_K%A$|^(@ zqUH)q?LmJOeSnw7(cq4iB=OU(^>*Fs>VCK}QBRmIUm09%nWCn8#o}knUhLzOc7DN< zXx#ALHW(XDSZE#t-ei$Iy|D0nd(3aM)e9gl-eF;CK(U-}CbjZU0E7d~#9=p^OV{rr z1ebMows1%dr`iTsS@G-ZQ+HRrf5RdpsXW)g^k#eW)qP$$8=Qe|saEX!08rl=A*Ooz znf}a|4GfCJ#Xp`m4}GtA`LY#y*Kn@yhZft%Aip|lt;;bH8bVlr%0?-AA#iXb!PK9Q?rl|d5uW~;DJy8aT z#_7wvS;E|dfxHGl$gb~3B3;1t6jW4PPK?$|t=qlfOMiowTuwGm2ApFsC0LnwyRu*s zZs2tMobISCg5K88v2HUF?t}DLTB3It4cJGTJ zJJs(K3k_%70LzU!pN?@u7U?+g(-n;}O$-TpheGRt+@YlpBd3FQIG+0Ex zi=(B$!_1EXp;DAoR3)?B+O_-J0cZvm7L#VI>Vkp^sF_(=WRGy4HEd4zcBkCKajVQX z`Vkx)o-~V$ObW|#dq(rI2Kt?ev9Pdla8gn7?Bo@vjG-Ct99_= zDxA~#94l$a#-4C{gC(Tz4vv*I7y9&PRCaP=;xijtZV{1DwN{Hs>fXULxK5uX$IC0X zuCDX`rV}Wr0*J`o?yjLp;TN~YnEIp_jYZzEK$RbH!D47%rGA#$>ZNa|j>Ntr0iT5< z_i$IB8@crU-LXy&V8d!H+v;_DbNZt0TpXwSk8hYqo!=LFp$Z6*QZX{_TrGWATa~*z zXShA6+mX+GYt%ZNk@zmW7Y*LT1Czls`5eIJX9jW5BEk=(hqpk^;Z0CY_5MDPA8;sk zLVR$4L5m74(G0ba{Nar)zTcA#yJEuu6zqzO{ZVj$)LGkBwOX$k%gXL&3j5F2Dne{3 z&yR6P=lmxtbNgzS3C%=rq6( z%?IOo0RT_?aK*sPCS-4_(1MSF5>E1Vr$YjC8b)a*X4_d^6-$Q zq50r^b@BD_C630-T}!5`=iCM!(C5RKtusRL}Y^afocm$y?|a|J+gz4Y5f`+PBw>nij-yE zA_SgYwYjhVE@}5}YG|4Z!8crVUDy;H_>r$<^(I9RS!ekT8%n)HQMHZnw#0Pa1uXm`8{o8AVQxb+?{epK$V%}jSUI?>Rp(I4^g)tWUX9aGxjK=Q81aD+v)7uaC; z0MjQejTHoOL->OLE@8(k_-mAPDIVslv=RHiqvl7gn%(Q$i#)*S0=B}$tXL3Y|NcvW ziEz5(LOe4pQ0dhTq=uVqw?Y7GA}DZ3z;31c^tcVk49phg@kNF#VP>Pg{2vR+#2>x7 zYZ@#RA9;9?EG^;a%T|<2KLY6|fc63``!ED|lF4A&$h2r&laTp?kiA6C^z#Mcf_Z=O zM*`*|^1~N=j?=2>=(^spg_DcW`NoTTK&xAt{gM)(uFSX;uZ8RfCh!^=jNi~& z;uCkv)L2%E%0yDR6Y4Fs&jZlZ2ZurdcA4@ILK*Q%$Ub^Lqdhp@=*hdP3g!Du=)~!PGVCR(W$B)b#|-* zNxzwvyTTSA7LaKo5o}yxbCdATH>g&c3l)>MYA~BGhAoNxcgtAObWfYV{e2;BVGKlf z9J5{((X)3gAPx5PUo6|pedDhX`_XR!CIN{Pb-sym4+5RGm&yMG_cr; z{rNs*Q*v`F|4NBngyPG1|M-qg%lW6aq%kTg$G;a+%TjUB(YKB~9)REl@VvH= zI$XBl-4@%#@RhL<=Z;!QX4OLZ@Z%ab#ORzH=ae)zP zRt*FK0etT}Fc3j_LtWVifca>Bbe0tATHtXh<={MIW@CG{b~cs2d|6KY^J97JbOq>7 z)B%Ex1_eoV{T0OkYpR=zs7Q%WyX~>Ms%qo@Mldwge!H~v9lyc=dLx6*OKX9(ent>3 zBOBXdgKbYDOBe|W1eu_|!o%Zyx&5yUgif*R`$Bz~h4|0CZE(M=^>IBzc6N*%UAP>b zklJiMalC(TGMxNNI>in!CaDaaBI@cfhr5`#nT-Xbp$HQJD4uJPP|y$%o`n0f_ z%gJu$ao7(7#GWkK0$j%42Fv_lG0y^&k_<~2tmx6z(_=AL8`@){mV9m(TFp$WsK|eJ zd313hp+Zx5XuST3nYlX9)+i&*|0nw4K%81`?os`GY}_QUml}wpx4d;#Gn#`QuLoM( zUHanTZ22a| zCW@5HfQ{n1mK3H^cChWh&7R(`)E)3gfwxdMO+;eW0Vmmqa+ zH4o^S{$-Y{K@Rk~Tx18}TRj)eItSHTTh7EUk)D=B+<o%1woT&rL=<8!KBr>*n2H0R``r_;?0eYc-(_n8%amb_|*dE(EAy^wuc zOmXDQ6;~LH`H6~~(U;!X)fmagFX~Hm$`4~B@A0o-UZ&7Mlih`bFPmKF%m52vAl$8a z;ztvPN7K_#VJm5i%&n|c5|x;eQfBl8Agtt~QHDjE*#r$fhPggV-tu>F3w zQr$r6TF1AnV@gVshu_;sNj1O1XV_%b)vG!DQ36lw@#<|_j?JthGkzS&?zt5&RE?DIMp;?k6P(u20$r{mj+leHLGrOersa?GQn!-Y$PbBVdj2L zOYjq|`JeRdC@B!xleQad9Sp9b=nPw44dJxyl<4vaDCs!-IQn({X<~9A*8LYSo2xl- znt76SKSz;VOC&-9ujekW>IZ*>3?OoN(B1FIA)x&${te}gD!gzbsWA8_z7FMh?6nl` zI~es9ln3Gxa^8LNe`f3PsV5uPPDZHD%5oQ;S(nmf*|ILhZ;v!z`x(9kY1Xrh&uLJ* z5836Yb;zaC^6U6+g?F2bEwXcbl#7RYS<%2FHtETJSr+>NZ5w|w=e<|)r)FG`I=_SonFq*$b#3Qxg5 z?)Rc_GU*8|z@OZ_TDEHGVt2_{f^P6=)VzDh#(03LZPz@Td+;jfcp}b3Gjnz{C1xU^ z5~e4A&diAl^P_p?c+Jy=R%tVV8aFaPRuDrDW; zn2NRg6K}(=eXq8&quRL88b+JPYZ7_ea@KLKc{v;PV-Xr(3+rw`A!fd?++wnlbS~Ly z%$5~ShN<7;G{Cm=U45fd|9>dRkbkXxeD(eT@to5KehP+eKS21HQ+J^f2 z5(h;IB}HWtl}w*PW%tlkXE|qAu~oQR(b3>vVdhOK```PMxp6t9#~jpi6rqr|HOZ^Q)Nm4BOBka@k$LPzLg1-n!45 z_0|@1E@qlUG5K+SK|%Ud;gyYKX^teS#{ai!=l0Dw?+g=0ULaB~1xyjOB-w zlW2wN8bvDqvuH;FuddEL^rf3sQU6vvQ;Y19LH#NYkwxX8v&yqCl&TE8Oh{oSVHuG+ zs{Iq^;fpB$wH1rytY2cC{T~p&F6`P+1c3MjQzTZ-A$ZV}nZAf?85Ep9HC-|Vc4?=b zUWjaK7AY6Fk+lvX%3p~T(-QvV8H73Kk)&$N93|S`P1+WQojf(E$pXy?7++SG8{)80 z{N$qy!^ew9R&gL+g@B}?^p$Eb2-$D{l2v$4?0QlHSLF%f*|2Rcd*cBMq|@lmTNm9r zH#}@4UXiXyEa`AZ=Eo9a)7~;o9OobY4{?6v^1s9R*;)5MN+??ds`VK z*(|8|NLTc}mRx~L&VevRrrWi?9DkELzj75FO-5ByQ&a4i)%~eIg^ijQH!lOgw9U2m%$1Ye+c%V0zTlrv82R~KTR#C;I$53IYbyN7bk9;!W$j2Znf}DvA1eZDgM2}X<^x@TWo7F!zzWvqr_8*OJUW2J+vjWfUc%If& zR6amaBmxO6Yz`PKvrXs!+~EeaxD_c!AtD0B2^w@jVVl>X&0h_1pdJo)Zm$7-41rfK zS7xfNB*go7N&}?-8WFp?dJ2>|BD@kfNz>Q=F%TEEO&h57x3A8&h=G!}!biOdmEQ2) z2^EwBpp*vmiw5{mHS=`gLW&s#pu)4WU}KuU4~e+HU(L_=Fquym2Cv`Wz}dwJaXr^m zeEz*NarF@y1I0%WuAF>JV(OZ%xt^#Wuk9U zQBl_l@XS49fj!RVL<^nl+wn}iEkM)$-eN?z|vB+HoWC{`Xnv+HIC_tQ$MF>v8K|)&49uIXKelV z;NEXQRIh(PcS%h;4n+G@Y|g<&`l9CVSXvGR4IZ&lXi0^3B~6OUvJ-`Itsz=ToE{sj zzhpzp##*m_!*Yc`?WcdVckP4y3Ix_Kj{Qmube~r~X2Aa>Bo-01KP|z!Ut%6*EdI;ZFQv4#h|vkEq%gg>>(EGA98W94i@auj#O1RU@A~s z!bUeWfRtCVigPqtiwe!3&C7vP)+A{7Y!szbhI+C9@Gpua3P&V&<(WiVCQwJp@*qPE zZhIV`>|GIHzv50uL(M+^?ehO$cF;>2FSE_HqCT$dHq+f(hyX2T`fHM yprPM=eSOo@*Apw-C2yaL9{){CGjO4YFQ#Dk5!FQv;HOkTATeQSp;CcwKmHfNMZ#VH diff --git a/html/classcore_1_1TLSServer-members.html b/html/classcore_1_1TLSServer-members.html deleted file mode 100644 index b30f49c..0000000 --- a/html/classcore_1_1TLSServer-members.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -My Project: Member List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
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
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)core::Socket
getBufferSize() (defined in core::Socket)core::Socketprotected
getDescriptor()core::Socket
getSessionByAlias(void *alias)core::TCPServer
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 (defined in core::Socket)core::Socket
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
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 3091a1a..0000000 --- a/html/classcore_1_1TLSServer.html +++ /dev/null @@ -1,326 +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)
 
TCPSessiongetSessionByAlias (void *alias)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - - - - -

-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
 
-volatile bool shutDown = 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
 
-

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 b06a99b..0000000 --- a/html/classcore_1_1TLSServer__coll__graph.map +++ /dev/null @@ -1,14 +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 98ee059..0000000 --- a/html/classcore_1_1TLSServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d31126033c6011706f1ba21826a508b2 \ 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 6a82932ef0c7f666e7ebd1eeefce66cf19047408..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43063 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 XJiVNwoNnNF52UQ1AzvqF7W%&cf>e8# diff --git a/html/classcore_1_1TLSServer__inherit__graph.map b/html/classcore_1_1TLSServer__inherit__graph.map deleted file mode 100644 index f7d71d4..0000000 --- a/html/classcore_1_1TLSServer__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aliascore::TCPSession
compareAlias(void *alias) (defined in core::TCPSession)core::TCPSessionvirtual
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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
outputAlias(std::stringstream &out) (defined in core::TCPSession)core::TCPSessionvirtual
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::Socket
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
uuidcore::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
~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 b6c153b..0000000 --- a/html/classcore_1_1TLSSession.html +++ /dev/null @@ -1,381 +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 ()
 
-virtual bool compareAlias (void *alias)
 
-virtual void outputAlias (std::stringstream &out)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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
 
char uuid [37]
 
void * alias
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = false
 
- Protected Attributes inherited from core::Socket
-EPollePoll
 
-

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 4899fdc..0000000 --- a/html/classcore_1_1TLSSession__coll__graph.map +++ /dev/null @@ -1,15 +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 5fff15e..0000000 --- a/html/classcore_1_1TLSSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e8ed3c7bcb4cb11d447e6c236b863068 \ 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 6e62194a3eceeb5a9efb7841d0141a9e6aa4433e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61526 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 diff --git a/html/classcore_1_1TLSSession__inherit__graph.map b/html/classcore_1_1TLSSession__inherit__graph.map deleted file mode 100644 index e71c9c1..0000000 --- a/html/classcore_1_1TLSSession__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aliascore::TCPSession
clear()core::TerminalSession
clearEOL()core::TerminalSession
compareAlias(void *alias) (defined in core::TCPSession)core::TCPSessionvirtual
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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
outputAlias(std::stringstream &out) (defined in core::TCPSession)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::Socket
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
uuidcore::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 e296804..0000000 --- a/html/classcore_1_1TerminalSession.html +++ /dev/null @@ -1,349 +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 ()
 
-virtual bool compareAlias (void *alias)
 
-virtual void outputAlias (std::stringstream &out)
 
- 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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::TCPSession
-Commandgrab = NULL
 
-TCPServerserver
 
std::stringstream out
 
char uuid [37]
 
void * alias
 
- Public Attributes inherited from core::TCPSocket
-IPAddress ipAddress
 
- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = 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
 
-

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 c17f2a3..0000000 --- a/html/classcore_1_1TerminalSession__coll__graph.map +++ /dev/null @@ -1,15 +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 f755af2..0000000 --- a/html/classcore_1_1TerminalSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -cd1348275ab29cdfd481224ca50046fe \ 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 65e702d89464e0f423e5de9ef9f940cd8f1dfb46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54123 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 II;Vst0GQ|D4*&oF 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 zcmc(lbyOYOmhN#4?ry=|Ef5?M2<|Sy-QC?GIKkZ|Sa9D!HtsILed7+j&$-=w&+XT@ z-|IhK_t;~OTBB-@s#R;%SnD^xZ$>K0OQRqWB0)evpnQ^%PzE1sAs`?X5#YeB5egO* z@Bz+PR$2n$?T=qxXK4}y1UbYf2~ky#tkX45UDe%Jc+kWs1T-{V0Xf}!dMm3VZj4zD zl^HqUXUH#|EgZ~aZLLMAYu0-~W@cpzqq=^nX7zN2ED`N{xY3qTdF0XLPjP)cqYtmI zhAOE92?XJsz8kd*9WHwrS6Sy*qv4$9X5$%&=oo?Q7l;XjZBPJGoba?r+<%SK$b96o zF(42)NnPjlj*tuCYHy6wg#gXcaSP?$yMdlS=&hZduLsJS#nE`Igl!>SO+P_UJ*%zG zTc@YC2OOHksgE|pPaSfNeE%NC`CX7?yw)AB&WZVqmh6AKAmH}V3vI9a5{<8kCtQ*U z@0#d}f+x2#nnN77xGRzyy87ZM-jl7Qu#T^zP1OrGH~xEI|LqkzW>WC;&ebA!3$NY1 z9Y8C%WPvYIxFgveaifzLN};JGq^}t{Z2bA-vzl(buTn8-?+?U@p7Ip_QJs&0kXRa9 z5^Zh9qBkh_KedeRSJmzp$nh4_b^2z`h3P&*>8z8*o!zD;FrI*B%UVJ0TH38V+{WFP z0R{WU5@kpFc*^}3Lu)LcM-PriL2WU+HAsbcA2Om_mLUXAi`q{>4^l$+3mhNbF2=SP zo%ms~X~h=IrxM{{1y-Exo|Wc=&+ijHw#eJZ4{g6c10l84n@(#oDfmDhPZU$qZt#}7D<>$5^*?D)Zn2ZfQ`-BK0rNk-7b1~EJ_QLA*Prl%wS zf*ovWo7E<-^N>x}c%xA1YWKr-o5pU}@?Pi=ykCq^fp0CA?$CpT)E0 znb-Y|>RNxOhU?8otI&$!3qo-d=g>Eu{pPPm^HDkYY&p26tx}S)WuIm|7>=5X@ILCv z>gx$kmCfPNX;^$+tI&M>)gPt5lp!ltD0RW6prCMheeDxMeed}p7%spsDJld_kv%z#8TP`P?g8C5&=Py>K{oCbveYt`Qn|@C%=sZAZ z+xKmiIx!NRE9A~DL4_QoEy_p2BGb31bt*Iz6rCksva#deFZNHp_8Q4rJvtvCz*n*_ zCejB)Sh0vfy2U2(b_!R@d)PhFrtf6N%Hr9JPbw#sT&S`QHZY=@0B3qZ#83l9g&9<0K-!zvXDW%yhb*}{pNANkA7;l!^6-KUlx-!S{;m(Y6(jK z>^;k32;Ut&{y9TscXy5oo3jIqx=$TODHf8VdS-M8s8f^OlOiY@qMCK_TeHbyh~%Q< zGsCy5WI9&)Ub2tA$lW?T2MZgpd)ijhTsc;kHR)|vd|k&lFz0D|R9t$K`Ynwp%S)dV z98Lw0VlBmOdVEv8@)4gpBqYRcJ(t-|J)LZ=MRA+;EDlCVT$<{PCu*1;$eBGmS^2dy zzm=;=djXvJL)WTT`_&|8e!Z$+FQ4^=KLMlj$jssk^ikE{Ycx_V1Y%iQg1#`+Xhs;T zwPKOC!tO8HW%tFScN8uWR~yz&0HGoSkz z4IG*qw+p{iwwaE)*zWLbyb11M#x zXt~x@DNx>bQut*I+k;zk`N8nDBIrjs?@QFNO4bZNBkj01yNJ#idrXmTb9VAJok|H1o9iCtf3>H5=TA8(i{9KHL6uKmS z7aJqzGdf35i|Z~^RKM8$rZAfIKy|kMGCx_2&-l6yN25=yPow?682UxhIXO8noA#cG zBUK}-9hJSuY&(M!6AHN(mkUq!%I}Ez(4F_k=kBaDkvScIOLW$XpKrN3IR&+}v~+3o zYo`xk=&$da77T9vTX35l5rG^V0LLHk2-+|^H$fazzd<}jhP?U>2_lr`Z<%$|LM}F6& zqyD>O4pz3P(L5{%ynEs{!rpkMaKys1y!B>z-1;xWe)jVsH~)!6`VdO)0&|p1eT>O{X>#xo z?i?O26`6*tMmJgl9FFX2$)kC)4wBO-pOh#dkiUdjravUaMoM#fgc<4VgJ za8>_UTT;1f;?Q244QZ{IH6}w0&Jz>x&u{bHHRb-zdbeU<4t zRy#||Ee$#;3IBH4`#lBELX?;PM%N+kjGHfyY5Da>5coxke^jg>-A;PQ%4UMBG0L~Q z@_TVREk|;9QEu`)S2OqIaK11;=}cL-BQu_9T+`Zm^`{7QAIW0C28FfK7k4HxeY)%^ zH8q>?E4-=qMknp3wPCgfGOhwrKbh2jxPYztm=={4vaR_b2XmWE4?D}dd3+jsnjW`# z@3S-b9P~+&h~4PYY(P!ut>B&ct)%f}n5;~ zf>G0^!;SO7(IM&Ti|iyT>{k00)|zPYd`4GwTi3@Z=uCkw`ta0YHkP7)aHUXKuA@KK zv^%T7o<0vKKWZ(8sHFAUc^+3Qyqs0U_gVn%K?lG;ohN8tU4bY>U|=p>y&Vu z&L5m->}^x3!LM<_o=Mf^?X_eqSP0aE_k-@R^*u zAP7plp2XU-cEO`l zh;hF>RzH^udj6+OA@dieQ0)R$bRfVka?7tjd$q^+mC^o2KOqam9J{OX>n%~oC8uUU z00Q_HybU8qE3k6DzarAKnr%-HuAn!@=*(oP{RieyJ*lzCB|?0UnP*J3%+XW@y7j=C z$&Kw@))GdDW)-nC!W_5Fjx`OJHJqM7PI}S>v?(-GGU!B3#~_3B>JS~zRM^(l)cyU1 zN)7im5vuMDspM&~^QyS;5VySRjW5Mu@E`*S>kT|brkvR+Rd4hb`bMFV=R2Wq+_AQr zm=Mxbq7`eDDOtBLp?uZ>rJ@ho?dbnCqX4Qc$16tKjgQ8+?`t&BI}9@8CtXCJR%KT5 zva4Yb7itRYitQq9T2(G(&UwD(mZHq$&@MFNel=PN4I5t-)j(#vZTs~NZTj27)3?H6 z`V4K?BJ&SvDvN9I8@6Shrh01z`Y0`y60(TsE0_JkCTm?un&ZSPh$MQNq?P~8y<(+K572~xxQnad0Q*PKMsMg4^c64-r zGe=0sM{QW^{J)XQwI`pANc6I;VHN$~^Q*t+T3*R%?h}*L_}rajD-IXG2aoQ&-{fbl z5HT^Ad*-+oz#AoVXPEnBp6KIAmn3kkNklyrR#*2u8@pxe5d1-OX(?@1cJ@shYNub{ ztviqDFWjsT1i?4QwEaNqfP5gk)HC9D;ho*J{tQlDNQl5d47eJAhoi^MX3Iv6>f77% zgU;|Tj&YR49OqesAp;3DE~wmc?dmWhK&OQR9V^K!pyE%sd4B0v(yys$8JkrNOF&92G4KihVB9Xoh^eQi5aPG&I}hwQmh8eCc; z2!=zMw#*fHGjoZQC;*b&)M~3V*r&ZjPGa-6pev zVG?dneOPUIQGmtQ-@`8rj?DfIS=+NS*;9Ye|UGo3Gg z7ny5gYEnlEXRGJaRqHv(6JEaW#8e`U6>NDAZ&(K zW8oRq{$y=Eb&9o$(x{dDkAn+>(6j~j&R@QlSE>nX*NV!*9u1dJ%m*~3ImqKvopA8U zk}C#a>dR_SRd?0tB_*`C{DkGlOzFDH%e7d*%ly#Lkx$AMFFIVpY27h0*2nVF;y zLPFnvCab@OtzG`Ns%I_?br06X5m zXWqpB-gYM$32j47W|j|bZZ7uT!ju7U7AYlfN8Hy%8aNv~lqj0Ha)esqc=h!3%7}m2 z?NEeQ^m~zsz%T2DIxdyVb?;hY!5`J4FIB_Umj6cOT}hMUk$~;4Myj&GAo}H(GD{Ub z1JM_pvqk}RwN_Kb$sTUr$`+Uk3o@q$V)^f9A0`b(FuZC_G&23WVhC$rneCTGmUh0r zLfOjI=-4-D>*%{WQiifzl3O3+SvngJIu#@4H@fX5~!?^k+)sqogrUwk+NZm$+-QO;Jg<47uS1IYNKo>8If3L$m`%z8l!z zDdFEp5C^?b^{di5(0e5z@}y2Q zNENSjV-VDQ7n<0vdV*ZfMPAk^$cFnVd6rH9E8)3K+ zcSr4fp#BxD0vb}-=sQnEdAxBC)CJ=Iit`QR#XASI{v=MWfJsn=qKj72t!b@pmd@Bn z1=RT)PqU;y03n&&grk;7NdhH@=9DlAeU9+qRp`c0=do@Ig~myDHVexS8;7olL#;a8JW;KQ)FI z_u;M?Xh(>bV6ksg6P=3t^${VLE^Ys=_=Lat6(v;9UT!fV6mQ`?{JgTdDX!OMxIKM- z4_}z*3frby(6~$iSAXLun*NlUaOKD&`N7uc+UWx;8RiJ7s;f*%~ovK+X5X;cKN!x6I5VhC;vWK z`X1j(xeWj-DnB@I!06|n!Rt){6|`Q~ zWZsL&40n^YosMRF2VL+7Oip^Dt*uWY3(UKKk*cmSxlkcD9PL3?uIe6kbh(9dZEFqg ze^p}9#;mw$FTi8b?P+s8ey0{cMaRI=zt%o~ur4$NrrXeffB*sBxd*drLH9FqHa2we za8%z9Y6R>$I^>MNNwo+ab#?GGAHQK_!gbI4A5IrPR)p6}3A!F(cRgPMy;eMO|L%q0 zhPM4j;!9}C)1~+az*@yO5S_251ars!bA2E8pr7s>l$g=D=Tgs_%sX(T~{%ixP z@!T@RTTK_}9oIjROs5@f-d^#tIx=I#%9(QxxDjgQa-!;emygaNecx?cF>E8%?#fhs z;P`PFg;|=~6?UTz!~l&zY!g^4soCf}bN4-s_y5Yx8A`&vOThFcg@+P%XxiucV8R7G zCr>M0TtKw=)~|l@B1D*BrQ_nim3!|oZ{gCMAd*cIm&mH1067MHvrXXJ`IHPRd$`GYqR0L=0sh`sIFX)g z12Ypq;;Ux2uRt5n%3wj!+|j20WnKeVfO4?+#!mV4jODf<4)WH8lmjaZ)6W?Pt|st2 zu(~~`V*I*co$+tu{)po=WgcEHckK}#o@nav^?^kd8(sFj6ax6>c6(5#Ie>JukNu;) zZV3hWM!5<-6<4MSGGEym9HqM1&yCImgAENPH0cC!d7T7|4?-{w=GEbPh!xs8qvBTy z`Q;e~)Vl32^c49pk>m_F=16MC?;-SkZOEq<)va|!wn&V#2xD?b!2R31Nq zrrw}1E`b7a=eW@g8bAmN#6a1!-{b(}!3lWKio)9<=o>kc7DmwQ5t)p})~}532M<$b zCxVz!tOmpVTR6GD_n&(;>!=aJgZ+EDy$6i@zvVgz4ty5#E-BCd~*D{ z79XJq6@VjE{UIocR^j)+ML$SK5XW|+x|cVc^Y~O@`i%a%QFbtL&D&9!1|`(A>8#i^ z>uBYv&d8ky?sZ@K(|F&J1S-6IbKp3u-AESm)3?`0dFxz`M(4g?{Jx;{$Y(Fi!VMDY||Y`_Z0Cg{Hs^ z81!%PCT}UU7kk~bdGVdFa-*kPJU0d&H3wYsYpRe5eGg+}2y0qRDb>E6fdWmpIxVS4 zG#*~h?f6TrIC8tU4rJ^Q%^rlcUx=X0WwFxTJxKeXJ||%N;~l{**ahitn;W`l5T$1{ zi?yVMZFO-njtxd@{h_fZ%tZr347S{Eq~6duWkkiHOCU)QCZ#E1t%nh>NdnV z{HPQZ`!y!ol>tpmhTqxf3*RU$?BoQS2Mr-JRg!IcW007T9cZ&_dhdl6ejc3t2^(Jv zbP#N(+l{uM>j!iw)gV`ppy)zr3i0EMa9RBb3emamQ#!0|rp zC1A|Y+~Gx@<*X709g@Zu4xH;$dUw-h_b!7Pnx>bhBF>b9+cK z6O_OQ-GqU8+-e{Tl~7v1Esm`iK<{f0oY3-Y_f*<)b8vMi{Q8S0j()S{D+JM6t>RtD zP~fy*f6H-g&&`!RXo-_#a#=U5D$mp77>4_ZnZ8`o`4B=Yk9gynEI z=rF+_(uItE$fw?6OCbGBJIHAMGHk`_1xM(YNu~9eestpuLd~qoekrB8lLUSbPFyy5ALe31-oZk}es-vNa*5KH(&(+2 zfU4pvOb)Tw5Q-BSSu?#X5ziZcMUdw>qB{C0$u&iHuAUWkf~& zAk37#=4H~|`njgP?iKRG0LM2y*qghLJ?`@p!zIlgR*S07-aiS*odXx}WEI;S8HK+$ zLc(GaeK>q2Ol9#PkyoDWZc5@aKJo8{YPJtO4_`^}ns|4sm(x2uGP7A?A)l@N$UT{= z@iRdZ9n>I|OQelsaq5h&HBy_&GK)r{n9mHq30o7h1 z63xU8Mnl&-@AJdJjRQ7&Yrx!ve?e>Wn5T@0fD{E4aO9tH_J>?_eTWYx9Vm#PVAjG8 z-I@BX6D9CzaymLB8X6oG?>9es`Rpim2T4F=f29f7{s~8WgH5S0wq{KFRPSzI6j=GE z0Ve3QLzw(4lT%WS0Wv?|e`{TcB-?ek0*qcZ8(lIo#b~*HDqzUcOb@$bT%rQgk)n|i zqI}j*$dse48H6Hb!}E0nXth7xEEmuw4uaU)mBFl4-{DOCFtGCOtJ`hFzxrH}VOTk6 zq#cjis(qFZYJ>T2_*_2rl;rPsCWcfKFP?~eDN0_ye#NHz*bRe< zT3uPJxAewMEMgtevm}wcdaWwD9;H8!U@}&E52Iy`K({U0q#-=Y`xI z>+9a zJj@?=l`V#^Lzm?S8j#Y<_pD+e$f}sFco)iSgpoGxry%X;2K;+ z2?^C4%+CgK=h7tAyYKCH2P>_ z?KGMllNU9^JuQ10=D)VK`Lw&NiruiB&E(}HwY7VrtD&CViwEW%HKlcEGc;Oc%rK9O_MYmd#FRAu<^lKvarSU zn{L>d4rboyiDwHZuePpN1v@t1{W?6%b@4c zxqSE&UtG$BgyBYpvWPEq*ZTTm+#y2TgtY!BYr1M91{RIIR90I>Fh|xBUZf}y3&qQ; z5R8|p@lbNTW(q&*3MHpvGEQVHDaO4;ABV286|3}L{3n$4a!1#ft~aExXIA1v*m6D| z*)TG5-^fDhfTJTRpGFQGlRF72T3%EmgLsjn-tFN$!0pTCGqn|QZDXMzoWS5VUhd5z znI928KQ6&U$;+b@^8SZ6f(SI$XP&o@4kK?xeA+I-ym>~l!TMm+$>Js-Ju6UIFB4#y$ zIO>)vN|~st%cS3j=FXXrNIk11Z9Cn3YZ1*m9s2Q8RM&v zFrcPd9HSFt>hTk;H@)R8IG55{H1_N%@WFb(W0!^1=yeYoA$~$iX z8G;8^MuXO~KX!r}cW%0NEG$2lsFNHLOzdL2-Suje{a@;0WUks#BqWMTs-izm4sEXv z56%b4eZl#4RJ_;<|fY;HVC5F^7VqWQiGC?HL{BVk?bnmO9(DV3GM` z&7{^zR#1QLwP8ESrl0>$d@6AD)xc$@)!eMQLiSi@gOt^%aBWD$(Hh3Z-QCbYB-WG& zr-|2G#4{}ZML728B6!ud_|L*p=w=NFJa(MzT@(jb$~3N*_A=KtG;o4tWLIr;li1yz tog!|36u&-zCh|~j9s9*!1))d(TT! - - - - - - -My Project: Member List - - - - - - - - - -

-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
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 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 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 e813a91..0000000 --- a/html/classcore_1_1UDPServerSocket-members.html +++ /dev/null @@ -1,113 +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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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(std::string text="unknown")core::Socket
shutDown (defined in core::Socket)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 ab87f00..0000000 --- a/html/classcore_1_1UDPServerSocket.html +++ /dev/null @@ -1,257 +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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- 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
 
- - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
disableSocket() (defined in core::Socket)core::Socket
enableSocket() (defined in core::Socket)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event, long long eventId)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::Socket
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 649ce4f..0000000 --- a/html/classcore_1_1UDPSocket.html +++ /dev/null @@ -1,189 +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, long long eventId)
 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 ()
 
-void enableSocket ()
 
-void disableSocket ()
 
- - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from core::Socket
-bool reset = false
 
-volatile bool shutDown = 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
 
-
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)
SubscriptionHandler (core)
SubscriptionHandlerFactory (core)
SubscriptionManager (core)
-
-
T
-
TCPServer (core)
TCPSession (core)
TCPSession2 (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
 SubscriptionHandler.h
 SubscriptionHandlerFactory.h
 SubscriptionManager.h
 TCPServer.h
 TCPSession.h
 TCPSession2.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 5e895f1..0000000 --- a/html/functions.html +++ /dev/null @@ -1,331 +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 544f5af..0000000 --- a/html/functions_func.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - -My Project: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- c -

- - -

- e -

- - -

- g -

- - -

- i -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- w -

- - -

- ~ -

-
- - - - diff --git a/html/functions_vars.html b/html/functions_vars.html deleted file mode 100644 index 17a8743..0000000 --- a/html/functions_vars.html +++ /dev/null @@ -1,101 +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 6ef43a4..0000000 --- a/html/hierarchy.html +++ /dev/null @@ -1,111 +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 f44afad..0000000 --- a/html/inherit_graph_0.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/html/inherit_graph_0.md5 b/html/inherit_graph_0.md5 deleted file mode 100644 index 700f258..0000000 --- a/html/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -ea28c177b7a0c6b95617996150801c4a \ 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 74e6ffc95b01dbbc908d9cd50202236185fa1a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43394 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 y%NCTg1^sIGKj;Ur+oUP^|LxbV& - - 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 b9b4fef..0000000 --- a/html/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -6bfd00f81b50345da1bbf756e128f069 \ 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 0a81b26aaba5376f92cae790dd83344c08de6ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2177 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 D%MCLj diff --git a/html/inherit_graph_5.map b/html/inherit_graph_5.map deleted file mode 100644 index 3f45b4d..0000000 --- a/html/inherit_graph_5.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/html/inherit_graph_5.md5 b/html/inherit_graph_5.md5 deleted file mode 100644 index 8837605..0000000 --- a/html/inherit_graph_5.md5 +++ /dev/null @@ -1 +0,0 @@ -933520f5283a076825bcef748846ac58 \ No newline at end of file diff --git a/html/inherit_graph_5.png b/html/inherit_graph_5.png deleted file mode 100644 index 48012743c5af3c47518917e3c24f099fff7cb60f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2611 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 Vl!L3p`dt73002ovPDHLkV1iEg;YR=f diff --git a/html/inherits.html b/html/inherits.html deleted file mode 100644 index a5ac714..0000000 --- a/html/inherits.html +++ /dev/null @@ -1,134 +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 0820aeb..0000000 --- a/html/menudata.js +++ /dev/null @@ -1,63 +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:"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 525415e..0000000 --- a/html/search/all_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['add_0',['add',['../classcore_1_1CommandList.html#a7a45e75e3d21a25fd3f7e887acf395e9',1,'core::CommandList']]], - ['alias_1',['alias',['../classcore_1_1TCPSession.html#a014ae6b1465bf36606763703aa8a930d',1,'core::TCPSession']]] -]; 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 a600f74..0000000 --- a/html/search/all_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blacklist_2',['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 cf47cff..0000000 --- a/html/search/all_2.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['clear_3',['clear',['../classcore_1_1TerminalSession.html#a42bb06857891220a831da04248233935',1,'core::TerminalSession']]], - ['cleareol_4',['clearEOL',['../classcore_1_1TerminalSession.html#aa660768eed03b0b996a749e8a146446c',1,'core::TerminalSession']]], - ['cleartimer_5',['clearTimer',['../classcore_1_1Timer.html#a8e063f46e89dac04364871e909ab940a',1,'core::Timer']]], - ['command_6',['Command',['../classcore_1_1Command.html',1,'core']]], - ['commandlist_7',['CommandList',['../classcore_1_1CommandList.html',1,'core']]], - ['commands_8',['commands',['../classcore_1_1CommandList.html#ad0aedf95828fe743908d8423f171ff36',1,'core::CommandList::commands()'],['../classcore_1_1TCPServer.html#afcc44802b988e2f4292504e804dccf8b',1,'core::TCPServer::commands()']]], - ['consoleserver_9',['ConsoleServer',['../classcore_1_1ConsoleServer.html',1,'core']]], - ['consolesession_10',['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 abd9f7e..0000000 --- a/html/search/all_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['epoll_11',['EPoll',['../classcore_1_1EPoll.html',1,'core::EPoll'],['../classcore_1_1EPoll.html#a2fd5cc4336b5f72990ecc0e7ea3d7641',1,'core::EPoll::EPoll()']]], - ['eventreceived_12',['eventReceived',['../classcore_1_1EPoll.html#a3238b150b5d0a57eb2e1b17daa236d3b',1,'core::EPoll::eventReceived()'],['../classcore_1_1Socket.html#a1a045e15fb5851d666a21be05ac4c5d7',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 ea5ab9c..0000000 --- a/html/search/all_4.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['getclientaddress_13',['getClientAddress',['../classcore_1_1IPAddress.html#ae5e7e28589d026bbbc6c3423d418b008',1,'core::IPAddress']]], - ['getclientaddressandport_14',['getClientAddressAndPort',['../classcore_1_1IPAddress.html#abea870f1a048cb7bba1d2bad98558232',1,'core::IPAddress']]], - ['getclientport_15',['getClientPort',['../classcore_1_1IPAddress.html#a39f706f2d43d7d001296ecead4b587e8',1,'core::IPAddress']]], - ['getdescriptor_16',['getDescriptor',['../classcore_1_1EPoll.html#a1e52017e1deae15c1c87c6b6a099e1ed',1,'core::EPoll::getDescriptor()'],['../classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08',1,'core::Socket::getDescriptor()']]], - ['getelapsed_17',['getElapsed',['../classcore_1_1Timer.html#a0df7f1ffc05529b45d6e13713bbc0209',1,'core::Timer']]], - ['getsessionbyalias_18',['getSessionByAlias',['../classcore_1_1TCPServer.html#a9042281193e227a6cd8dab3ff8b46a40',1,'core::TCPServer']]], - ['getsocketaccept_19',['getSocketAccept',['../classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8',1,'core::ConsoleServer::getSocketAccept()'],['../classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9',1,'core::TCPServer::getSocketAccept()']]], - ['grabinput_20',['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 b0f1180..0000000 --- a/html/search/all_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['inotify_21',['INotify',['../classcore_1_1INotify.html',1,'core']]], - ['ipaddress_22',['IPAddress',['../classcore_1_1IPAddress.html',1,'core']]], - ['ipaddresslist_23',['IPAddressList',['../classcore_1_1IPAddressList.html',1,'core']]], - ['isstopping_24',['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 1bfc895..0000000 --- a/html/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maxsockets_25',['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 9f53706..0000000 --- a/html/search/all_7.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['object_26',['Object',['../classcore_1_1Object.html',1,'core']]], - ['onblockreceived_27',['onBlockReceived',['../classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a',1,'core::TCPSession::onBlockReceived()'],['../classcore_1_1TCPSession2.html#a6c88775e81dc0074ef0832146be9f4b9',1,'core::TCPSession2::onBlockReceived()']]], - ['onconnected_28',['onConnected',['../classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626',1,'core::TCPSession::onConnected()'],['../classcore_1_1TCPSession2.html#af1913cb444a9e07c0f31a2cd8d934a62',1,'core::TCPSession2::onConnected()']]], - ['ondatareceived_29',['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_1TCPSession2.html#a67c473e1a22b10fc100ae54206f7471b',1,'core::TCPSession2::onDataReceived()'],['../classcore_1_1UDPServerSocket.html#a41933ca153c854a800e3d047ab18313e',1,'core::UDPServerSocket::onDataReceived()']]], - ['onlinereceived_30',['onLineReceived',['../classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff',1,'core::TCPSession::onLineReceived()'],['../classcore_1_1TCPSession2.html#a6cd36b444d9548d1024190c6ba747e18',1,'core::TCPSession2::onLineReceived()']]], - ['onregister_31',['onRegister',['../classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0',1,'core::Socket::onRegister()'],['../classcore_1_1TLSSession.html#a76cec7cf4851eb27abe77a2339344c6d',1,'core::TLSSession::onRegister()']]], - ['onregistered_32',['onRegistered',['../classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1',1,'core::Socket::onRegistered()'],['../classcore_1_1TLSSession.html#a8e26fdc9e8a6c573b5a504a1f1b137a9',1,'core::TLSSession::onRegistered()'],['../classcore_1_1TCPSession2.html#a76096659b82c5dcbf6eac1d916511e60',1,'core::TCPSession2::onRegistered()'],['../classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98',1,'core::TCPSession::onRegistered()']]], - ['ontimeout_33',['onTimeout',['../classcore_1_1Timer.html#ae51704ff08d985bbc30e3ff4c9b3c6ca',1,'core::Timer']]], - ['onunregistered_34',['onUnregistered',['../classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2',1,'core::Socket']]], - ['out_35',['out',['../classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d',1,'core::TCPSession::out()'],['../classcore_1_1TCPSession2.html#a6b8005e611b6007a00ad3288973a522d',1,'core::TCPSession2::out()']]], - ['output_36',['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_1TCPSession2.html#ae7648a7759570a00d3d4a8c169183291',1,'core::TCPSession2::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 43d6afd..0000000 --- a/html/search/all_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['processcommand_37',['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_38',['processRequest',['../classcore_1_1CommandList.html#abcfb26e37e1ee6ff5655ebc3d33b1818',1,'core::CommandList']]], - ['protocol_39',['protocol',['../classcore_1_1ConsoleSession.html#aa1818efcd33a4152d2089aa545f08833',1,'core::ConsoleSession::protocol()'],['../classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7',1,'core::TCPSession::protocol()'],['../classcore_1_1TCPSession2.html#a45df5db21355bf7d3585d68789b371ce',1,'core::TCPSession2::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 ceb52cc..0000000 --- a/html/search/all_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['receivedata_40',['receiveData',['../classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875',1,'core::Socket::receiveData()'],['../classcore_1_1TLSSession.html#a8507cdcd23ac4b340ce6f6d5f0b26a52',1,'core::TLSSession::receiveData()']]], - ['remove_41',['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 d766ae7..0000000 --- a/html/search/all_a.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['send_42',['send',['../classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889',1,'core::TCPSession::send()'],['../classcore_1_1TCPSession2.html#aca2f7127b4081fa0e2d2d128083fb0f7',1,'core::TCPSession2::send()']]], - ['sendtoall_43',['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_44',['SessionFilter',['../classcore_1_1SessionFilter.html',1,'core']]], - ['sessions_45',['sessions',['../classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633',1,'core::TCPServer']]], - ['setblocksize_46',['setBlockSize',['../classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5',1,'core::TCPSession::setBlockSize()'],['../classcore_1_1TCPSession2.html#a6f4ed04cd2848e5b903b8331b2e951c8',1,'core::TCPSession2::setBlockSize()']]], - ['setcursorlocation_47',['setCursorLocation',['../classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa',1,'core::TerminalSession']]], - ['setdescriptor_48',['setDescriptor',['../classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762',1,'core::Socket']]], - ['settimer_49',['setTimer',['../classcore_1_1Timer.html#ac0a642cdcb76b7f995137162050d3d0b',1,'core::Timer']]], - ['shutdown_50',['shutdown',['../classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31',1,'core::Socket']]], - ['socket_51',['Socket',['../classcore_1_1Socket.html',1,'core::Socket'],['../classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d',1,'core::Socket::Socket()']]], - ['start_52',['start',['../classcore_1_1EPoll.html#aaefe2caef75eb538af90cb34682d277b',1,'core::EPoll::start()'],['../classcore_1_1Thread.html#ae6885df9a9b9503669e5776518b19054',1,'core::Thread::start()']]], - ['stop_53',['stop',['../classcore_1_1EPoll.html#a0c2865acd31d14fbf19dbc42cc084ddc',1,'core::EPoll']]], - ['subscription_54',['Subscription',['../classcore_1_1Subscription.html',1,'core']]], - ['subscriptionhandler_55',['SubscriptionHandler',['../classcore_1_1SubscriptionHandler.html',1,'core']]], - ['subscriptionhandlerfactory_56',['SubscriptionHandlerFactory',['../classcore_1_1SubscriptionHandlerFactory.html',1,'core']]], - ['subscriptionmanager_57',['SubscriptionManager',['../classcore_1_1SubscriptionManager.html',1,'core']]], - ['subscriptions_58',['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 0b22d72..0000000 --- a/html/search/all_b.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['tcpserver_59',['TCPServer',['../classcore_1_1TCPServer.html',1,'core::TCPServer'],['../classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b',1,'core::TCPServer::TCPServer()']]], - ['tcpsession_60',['TCPSession',['../classcore_1_1TCPSession.html',1,'core']]], - ['tcpsession2_61',['TCPSession2',['../classcore_1_1TCPSession2.html',1,'core']]], - ['tcpsocket_62',['TCPSocket',['../classcore_1_1TCPSocket.html',1,'core']]], - ['terminalsession_63',['TerminalSession',['../classcore_1_1TerminalSession.html',1,'core']]], - ['terminate_64',['terminate',['../classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3',1,'core::TCPSession::terminate()'],['../classcore_1_1TCPSession2.html#a6b999e7ea6551a1b513ee057afaa9e4a',1,'core::TCPSession2::terminate()']]], - ['thread_65',['Thread',['../classcore_1_1Thread.html',1,'core']]], - ['threadscope_66',['ThreadScope',['../classcore_1_1ThreadScope.html',1,'core']]], - ['timer_67',['Timer',['../classcore_1_1Timer.html',1,'core']]], - ['tlsserver_68',['TLSServer',['../classcore_1_1TLSServer.html',1,'core::TLSServer'],['../classcore_1_1TLSServer.html#a6460f9872936015efdfd0b8de04aa2fe',1,'core::TLSServer::TLSServer()']]], - ['tlssession_69',['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 f36c68b..0000000 --- a/html/search/all_c.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['udpserversocket_70',['UDPServerSocket',['../classcore_1_1UDPServerSocket.html',1,'core']]], - ['udpsocket_71',['UDPSocket',['../classcore_1_1UDPSocket.html',1,'core']]], - ['uuid_72',['uuid',['../classcore_1_1TCPSession.html#a2ccd4968f5c53d1c16a57e04081db692',1,'core::TCPSession']]] -]; 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 c837c01..0000000 --- a/html/search/all_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['whitelist_73',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]], - ['write_74',['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 9dc7d28..0000000 --- a/html/search/all_e.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_75',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_76',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_77',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_78',['~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 1480110..0000000 --- a/html/search/classes_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['command_79',['Command',['../classcore_1_1Command.html',1,'core']]], - ['commandlist_80',['CommandList',['../classcore_1_1CommandList.html',1,'core']]], - ['consoleserver_81',['ConsoleServer',['../classcore_1_1ConsoleServer.html',1,'core']]], - ['consolesession_82',['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 ba3dad4..0000000 --- a/html/search/classes_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['epoll_83',['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 52a2a88..0000000 --- a/html/search/classes_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['inotify_84',['INotify',['../classcore_1_1INotify.html',1,'core']]], - ['ipaddress_85',['IPAddress',['../classcore_1_1IPAddress.html',1,'core']]], - ['ipaddresslist_86',['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 fab7e92..0000000 --- a/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['object_87',['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 b960d89..0000000 --- a/html/search/classes_4.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['sessionfilter_88',['SessionFilter',['../classcore_1_1SessionFilter.html',1,'core']]], - ['socket_89',['Socket',['../classcore_1_1Socket.html',1,'core']]], - ['subscription_90',['Subscription',['../classcore_1_1Subscription.html',1,'core']]], - ['subscriptionhandler_91',['SubscriptionHandler',['../classcore_1_1SubscriptionHandler.html',1,'core']]], - ['subscriptionhandlerfactory_92',['SubscriptionHandlerFactory',['../classcore_1_1SubscriptionHandlerFactory.html',1,'core']]], - ['subscriptionmanager_93',['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 8de1f07..0000000 --- a/html/search/classes_5.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['tcpserver_94',['TCPServer',['../classcore_1_1TCPServer.html',1,'core']]], - ['tcpsession_95',['TCPSession',['../classcore_1_1TCPSession.html',1,'core']]], - ['tcpsession2_96',['TCPSession2',['../classcore_1_1TCPSession2.html',1,'core']]], - ['tcpsocket_97',['TCPSocket',['../classcore_1_1TCPSocket.html',1,'core']]], - ['terminalsession_98',['TerminalSession',['../classcore_1_1TerminalSession.html',1,'core']]], - ['thread_99',['Thread',['../classcore_1_1Thread.html',1,'core']]], - ['threadscope_100',['ThreadScope',['../classcore_1_1ThreadScope.html',1,'core']]], - ['timer_101',['Timer',['../classcore_1_1Timer.html',1,'core']]], - ['tlsserver_102',['TLSServer',['../classcore_1_1TLSServer.html',1,'core']]], - ['tlssession_103',['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 b0a168b..0000000 --- a/html/search/classes_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['udpserversocket_104',['UDPServerSocket',['../classcore_1_1UDPServerSocket.html',1,'core']]], - ['udpsocket_105',['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 aad17b8..0000000 --- a/html/search/functions_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['add_106',['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 833b34f..0000000 --- a/html/search/functions_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['clear_107',['clear',['../classcore_1_1TerminalSession.html#a42bb06857891220a831da04248233935',1,'core::TerminalSession']]], - ['cleareol_108',['clearEOL',['../classcore_1_1TerminalSession.html#aa660768eed03b0b996a749e8a146446c',1,'core::TerminalSession']]], - ['cleartimer_109',['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 e31e64d..0000000 --- a/html/search/functions_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['epoll_110',['EPoll',['../classcore_1_1EPoll.html#a2fd5cc4336b5f72990ecc0e7ea3d7641',1,'core::EPoll']]], - ['eventreceived_111',['eventReceived',['../classcore_1_1EPoll.html#a3238b150b5d0a57eb2e1b17daa236d3b',1,'core::EPoll::eventReceived()'],['../classcore_1_1Socket.html#a1a045e15fb5851d666a21be05ac4c5d7',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 c3f07ba..0000000 --- a/html/search/functions_3.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['getclientaddress_112',['getClientAddress',['../classcore_1_1IPAddress.html#ae5e7e28589d026bbbc6c3423d418b008',1,'core::IPAddress']]], - ['getclientaddressandport_113',['getClientAddressAndPort',['../classcore_1_1IPAddress.html#abea870f1a048cb7bba1d2bad98558232',1,'core::IPAddress']]], - ['getclientport_114',['getClientPort',['../classcore_1_1IPAddress.html#a39f706f2d43d7d001296ecead4b587e8',1,'core::IPAddress']]], - ['getdescriptor_115',['getDescriptor',['../classcore_1_1EPoll.html#a1e52017e1deae15c1c87c6b6a099e1ed',1,'core::EPoll::getDescriptor()'],['../classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08',1,'core::Socket::getDescriptor()']]], - ['getelapsed_116',['getElapsed',['../classcore_1_1Timer.html#a0df7f1ffc05529b45d6e13713bbc0209',1,'core::Timer']]], - ['getsessionbyalias_117',['getSessionByAlias',['../classcore_1_1TCPServer.html#a9042281193e227a6cd8dab3ff8b46a40',1,'core::TCPServer']]], - ['getsocketaccept_118',['getSocketAccept',['../classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8',1,'core::ConsoleServer::getSocketAccept()'],['../classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9',1,'core::TCPServer::getSocketAccept()']]], - ['grabinput_119',['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 687dcbd..0000000 --- a/html/search/functions_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['isstopping_120',['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 7ab8c6e..0000000 --- a/html/search/functions_5.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['onblockreceived_121',['onBlockReceived',['../classcore_1_1TCPSession2.html#a6c88775e81dc0074ef0832146be9f4b9',1,'core::TCPSession2::onBlockReceived()'],['../classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a',1,'core::TCPSession::onBlockReceived(coreutils::ZString &block)']]], - ['onconnected_122',['onConnected',['../classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626',1,'core::TCPSession::onConnected()'],['../classcore_1_1TCPSession2.html#af1913cb444a9e07c0f31a2cd8d934a62',1,'core::TCPSession2::onConnected()']]], - ['ondatareceived_123',['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_1TCPSession2.html#a67c473e1a22b10fc100ae54206f7471b',1,'core::TCPSession2::onDataReceived()'],['../classcore_1_1UDPServerSocket.html#a41933ca153c854a800e3d047ab18313e',1,'core::UDPServerSocket::onDataReceived()']]], - ['onlinereceived_124',['onLineReceived',['../classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff',1,'core::TCPSession::onLineReceived()'],['../classcore_1_1TCPSession2.html#a6cd36b444d9548d1024190c6ba747e18',1,'core::TCPSession2::onLineReceived()']]], - ['onregister_125',['onRegister',['../classcore_1_1TLSSession.html#a76cec7cf4851eb27abe77a2339344c6d',1,'core::TLSSession::onRegister()'],['../classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0',1,'core::Socket::onRegister()']]], - ['onregistered_126',['onRegistered',['../classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1',1,'core::Socket::onRegistered()'],['../classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98',1,'core::TCPSession::onRegistered()'],['../classcore_1_1TCPSession2.html#a76096659b82c5dcbf6eac1d916511e60',1,'core::TCPSession2::onRegistered()'],['../classcore_1_1TLSSession.html#a8e26fdc9e8a6c573b5a504a1f1b137a9',1,'core::TLSSession::onRegistered()']]], - ['ontimeout_127',['onTimeout',['../classcore_1_1Timer.html#ae51704ff08d985bbc30e3ff4c9b3c6ca',1,'core::Timer']]], - ['onunregistered_128',['onUnregistered',['../classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2',1,'core::Socket']]], - ['output_129',['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_1TCPSession2.html#ae7648a7759570a00d3d4a8c169183291',1,'core::TCPSession2::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 b39f679..0000000 --- a/html/search/functions_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['processcommand_130',['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_131',['processRequest',['../classcore_1_1CommandList.html#abcfb26e37e1ee6ff5655ebc3d33b1818',1,'core::CommandList']]], - ['protocol_132',['protocol',['../classcore_1_1ConsoleSession.html#aa1818efcd33a4152d2089aa545f08833',1,'core::ConsoleSession::protocol()'],['../classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7',1,'core::TCPSession::protocol()'],['../classcore_1_1TCPSession2.html#a45df5db21355bf7d3585d68789b371ce',1,'core::TCPSession2::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 26d844b..0000000 --- a/html/search/functions_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['receivedata_133',['receiveData',['../classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875',1,'core::Socket::receiveData()'],['../classcore_1_1TLSSession.html#a8507cdcd23ac4b340ce6f6d5f0b26a52',1,'core::TLSSession::receiveData()']]], - ['remove_134',['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 6d55661..0000000 --- a/html/search/functions_8.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['send_135',['send',['../classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889',1,'core::TCPSession::send()'],['../classcore_1_1TCPSession2.html#aca2f7127b4081fa0e2d2d128083fb0f7',1,'core::TCPSession2::send()']]], - ['sendtoall_136',['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_137',['setBlockSize',['../classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5',1,'core::TCPSession::setBlockSize()'],['../classcore_1_1TCPSession2.html#a6f4ed04cd2848e5b903b8331b2e951c8',1,'core::TCPSession2::setBlockSize()']]], - ['setcursorlocation_138',['setCursorLocation',['../classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa',1,'core::TerminalSession']]], - ['setdescriptor_139',['setDescriptor',['../classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762',1,'core::Socket']]], - ['settimer_140',['setTimer',['../classcore_1_1Timer.html#ac0a642cdcb76b7f995137162050d3d0b',1,'core::Timer']]], - ['shutdown_141',['shutdown',['../classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31',1,'core::Socket']]], - ['socket_142',['Socket',['../classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d',1,'core::Socket']]], - ['start_143',['start',['../classcore_1_1EPoll.html#aaefe2caef75eb538af90cb34682d277b',1,'core::EPoll::start()'],['../classcore_1_1Thread.html#ae6885df9a9b9503669e5776518b19054',1,'core::Thread::start()']]], - ['stop_144',['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 f21b186..0000000 --- a/html/search/functions_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['tcpserver_145',['TCPServer',['../classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b',1,'core::TCPServer']]], - ['terminate_146',['terminate',['../classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3',1,'core::TCPSession::terminate()'],['../classcore_1_1TCPSession2.html#a6b999e7ea6551a1b513ee057afaa9e4a',1,'core::TCPSession2::terminate()']]], - ['tlsserver_147',['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 6290c80..0000000 --- a/html/search/functions_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['write_148',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] -]; 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 b0b6564..0000000 --- a/html/search/functions_b.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_149',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_150',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_151',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_152',['~TLSServer',['../classcore_1_1TLSServer.html#ac71db77c796a1bf65357409cb96054c7',1,'core::TLSServer']]] -]; 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 3ac4d2a..0000000 --- a/html/search/functions_c.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7eepoll_151',['~EPoll',['../classcore_1_1EPoll.html#a8e7a2496d684b745a6410f9bd3e88534',1,'core::EPoll']]], - ['_7esocket_152',['~Socket',['../classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0',1,'core::Socket']]], - ['_7etcpserver_153',['~TCPServer',['../classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088',1,'core::TCPServer']]], - ['_7etlsserver_154',['~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 827e91d..0000000 --- a/html/search/searchdata.js +++ /dev/null @@ -1,24 +0,0 @@ -var indexSectionsWithContent = -{ - 0: "abcegimoprstuw~", - 1: "ceiostu", - 2: "acegioprstw~", - 3: "abcmosuw" -}; - -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 81d5eb5..0000000 --- a/html/search/variables_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['alias_153',['alias',['../classcore_1_1TCPSession.html#a014ae6b1465bf36606763703aa8a930d',1,'core::TCPSession']]] -]; 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 51afd6e..0000000 --- a/html/search/variables_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blacklist_154',['blackList',['../classcore_1_1TCPServer.html#a82f6bf16e4ab20d8b30da09e034fffff',1,'core::TCPServer']]] -]; 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 950f227..0000000 --- a/html/search/variables_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['commands_155',['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_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 e73db21..0000000 --- a/html/search/variables_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maxsockets_156',['maxSockets',['../classcore_1_1EPoll.html#acfcef2513d94f7b9a191fed3dc744d90',1,'core::EPoll']]] -]; 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 7bf62c1..0000000 --- a/html/search/variables_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['out_157',['out',['../classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d',1,'core::TCPSession::out()'],['../classcore_1_1TCPSession2.html#a6b8005e611b6007a00ad3288973a522d',1,'core::TCPSession2::out()']]] -]; 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 582617e..0000000 --- a/html/search/variables_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['sessions_158',['sessions',['../classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633',1,'core::TCPServer']]], - ['subscriptions_159',['subscriptions',['../classcore_1_1TCPServer.html#a28302dd844cfc971ee41de2000d24aa0',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}}
  • - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - - - - - -
    - - - -
    - - - -
    - - - -
    - - - -
    -