From a46db126e94d9b4e629e5a923e1ffa5dfa1bb127 Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Fri, 13 Sep 2019 09:16:55 -0700 Subject: [PATCH] Continued restructing. --- .buildconfig | 10 + Command.cpp | 14 +- CommandList.cpp | 4 +- CommandList.h | 1 + ConsoleServer.cpp | 21 +- ConsoleServer.h | 16 +- ConsoleService.cpp | 9 + ConsoleService.h | 18 ++ ConsoleSession.cpp | 11 +- ConsoleSession.h | 1 - EPoll.cpp | 35 ++-- Exception.cpp | 20 -- Exception.h | 24 --- File.cpp | 43 ----- File.h | 35 ---- IPAddressList.cpp | 2 +- Log.cpp | 80 -------- Log.h | 94 --------- ServerCore.mk | 42 ++-- ServerCore.project | 101 +++++----- ServerCore.txt | 2 +- Service.cpp | 18 +- Service.h | 29 +-- Session.cpp | 20 +- Session.h | 2 - SessionFilter.h | 3 +- Socket.cpp | 56 +++--- Socket.h | 3 +- TCPServerSocket.cpp | 38 ++-- TCPServerSocket.h | 14 +- TCPSocket.cpp | 2 +- TLSServerSocket.cpp | 24 +-- TLSServerSocket.h | 5 +- TLSSession.cpp | 102 +++++----- TLSSession.h | 2 - Thread.cpp | 10 +- docs/html/_command_8h_source.html | 14 +- docs/html/_command_list_8h_source.html | 10 +- docs/html/_console_server_8h_source.html | 12 +- docs/html/_console_service_8h_source.html | 79 ++++++++ docs/html/_console_session_8h_source.html | 9 +- docs/html/_e_poll_8h_source.html | 8 +- docs/html/_exception_8h_source.html | 4 +- docs/html/_file_8h_source.html | 4 +- docs/html/_i_p_address_8h_source.html | 4 +- docs/html/_i_p_address_list_8h_source.html | 76 ++++++++ docs/html/_log_8h_source.html | 4 +- docs/html/_object_8h_source.html | 4 +- docs/html/_service_8h_source.html | 19 +- docs/html/_session_8h_source.html | 9 +- docs/html/_session_filter_8h_source.html | 6 +- docs/html/_socket_8h_source.html | 14 +- docs/html/_t_c_p_server_socket_8h_source.html | 17 +- docs/html/_t_c_p_socket_8h_source.html | 4 +- docs/html/_t_l_s_server_socket_8h_source.html | 11 +- docs/html/_t_l_s_service_8h_source.html | 7 +- docs/html/_t_l_s_session_8h_source.html | 6 +- docs/html/_terminal_session_8h_source.html | 4 +- docs/html/_thread_8h_source.html | 7 +- docs/html/_timer_8h_source.html | 4 +- docs/html/_u_d_p_server_socket_8h_source.html | 7 +- docs/html/_u_d_p_socket_8h_source.html | 4 +- docs/html/annotated.html | 45 ++--- docs/html/classcore_1_1_command-members.html | 4 +- docs/html/classcore_1_1_command.html | 49 +++-- .../classcore_1_1_command__coll__graph.md5 | 2 +- .../classcore_1_1_command__inherit__graph.map | 17 +- .../classcore_1_1_command__inherit__graph.md5 | 2 +- .../classcore_1_1_command__inherit__graph.png | Bin 17308 -> 21701 bytes .../classcore_1_1_command_list-members.html | 19 +- docs/html/classcore_1_1_command_list.html | 37 ++-- .../classcore_1_1_console_server-members.html | 58 +++--- docs/html/classcore_1_1_console_server.html | 129 +++++-------- ...sscore_1_1_console_server__coll__graph.map | 19 +- ...sscore_1_1_console_server__coll__graph.md5 | 2 +- ...sscore_1_1_console_server__coll__graph.png | Bin 47140 -> 52761 bytes ...ore_1_1_console_server__inherit__graph.md5 | 2 +- ...ore_1_1_console_server__inherit__graph.png | Bin 14854 -> 20261 bytes ...classcore_1_1_console_service-members.html | 92 +++++++++ docs/html/classcore_1_1_console_service.html | 179 ++++++++++++++++++ ...score_1_1_console_service__coll__graph.map | 6 + ...score_1_1_console_service__coll__graph.md5 | 1 + ...score_1_1_console_service__coll__graph.png | Bin 0 -> 14610 bytes ...re_1_1_console_service__inherit__graph.map | 5 + ...re_1_1_console_service__inherit__graph.md5 | 1 + ...re_1_1_console_service__inherit__graph.png | Bin 0 -> 7277 bytes ...classcore_1_1_console_session-members.html | 26 ++- docs/html/classcore_1_1_console_session.html | 70 ++----- ...score_1_1_console_session__coll__graph.map | 19 +- ...score_1_1_console_session__coll__graph.md5 | 2 +- ...score_1_1_console_session__coll__graph.png | Bin 62634 -> 43381 bytes docs/html/classcore_1_1_e_poll-members.html | 4 +- docs/html/classcore_1_1_e_poll.html | 28 +-- docs/html/classcore_1_1_exception.html | 4 +- docs/html/classcore_1_1_file.html | 4 +- .../classcore_1_1_i_p_address-members.html | 2 +- docs/html/classcore_1_1_i_p_address.html | 6 +- ...lasscore_1_1_i_p_address_list-members.html | 85 +++++++++ docs/html/classcore_1_1_i_p_address_list.html | 100 ++++++++++ docs/html/classcore_1_1_log.html | 23 +-- docs/html/classcore_1_1_log__coll__graph.map | 19 +- docs/html/classcore_1_1_log__coll__graph.md5 | 2 +- docs/html/classcore_1_1_log__coll__graph.png | Bin 62914 -> 70171 bytes docs/html/classcore_1_1_object-members.html | 2 +- docs/html/classcore_1_1_object.html | 44 ++--- .../classcore_1_1_object__inherit__graph.map | 40 ++-- .../classcore_1_1_object__inherit__graph.md5 | 2 +- .../classcore_1_1_object__inherit__graph.png | Bin 63259 -> 50575 bytes docs/html/classcore_1_1_service-members.html | 17 +- docs/html/classcore_1_1_service.html | 91 +++++---- .../classcore_1_1_service__coll__graph.map | 11 +- .../classcore_1_1_service__coll__graph.md5 | 2 +- .../classcore_1_1_service__coll__graph.png | Bin 44375 -> 11927 bytes .../classcore_1_1_service__inherit__graph.map | 6 +- .../classcore_1_1_service__inherit__graph.md5 | 2 +- .../classcore_1_1_service__inherit__graph.png | Bin 5504 -> 9475 bytes docs/html/classcore_1_1_session-members.html | 24 ++- docs/html/classcore_1_1_session.html | 68 ++++--- .../classcore_1_1_session__coll__graph.map | 15 +- .../classcore_1_1_session__coll__graph.md5 | 2 +- .../classcore_1_1_session__coll__graph.png | Bin 57324 -> 38110 bytes .../classcore_1_1_session_filter-members.html | 2 +- docs/html/classcore_1_1_session_filter.html | 4 +- docs/html/classcore_1_1_socket-members.html | 4 +- docs/html/classcore_1_1_socket.html | 12 +- ...score_1_1_t_c_p_server_socket-members.html | 41 ++-- .../classcore_1_1_t_c_p_server_socket.html | 140 ++++++++------ ...e_1_1_t_c_p_server_socket__coll__graph.map | 17 +- ...e_1_1_t_c_p_server_socket__coll__graph.md5 | 2 +- ...e_1_1_t_c_p_server_socket__coll__graph.png | Bin 43797 -> 41454 bytes .../classcore_1_1_t_c_p_socket-members.html | 6 +- docs/html/classcore_1_1_t_c_p_socket.html | 14 +- ...score_1_1_t_l_s_server_socket-members.html | 43 +++-- .../classcore_1_1_t_l_s_server_socket.html | 113 ++++------- ...e_1_1_t_l_s_server_socket__coll__graph.map | 19 +- ...e_1_1_t_l_s_server_socket__coll__graph.md5 | 2 +- ...e_1_1_t_l_s_server_socket__coll__graph.png | Bin 47180 -> 43713 bytes .../classcore_1_1_t_l_s_service-members.html | 21 +- docs/html/classcore_1_1_t_l_s_service.html | 47 +++-- ...asscore_1_1_t_l_s_service__coll__graph.map | 13 +- ...asscore_1_1_t_l_s_service__coll__graph.md5 | 2 +- ...asscore_1_1_t_l_s_service__coll__graph.png | Bin 51794 -> 13987 bytes ...core_1_1_t_l_s_service__inherit__graph.map | 5 +- ...core_1_1_t_l_s_service__inherit__graph.md5 | 2 +- ...core_1_1_t_l_s_service__inherit__graph.png | Bin 5507 -> 6007 bytes .../classcore_1_1_t_l_s_session-members.html | 24 ++- docs/html/classcore_1_1_t_l_s_session.html | 37 ++-- ...asscore_1_1_t_l_s_session__coll__graph.map | 17 +- ...asscore_1_1_t_l_s_session__coll__graph.md5 | 2 +- ...asscore_1_1_t_l_s_session__coll__graph.png | Bin 59728 -> 40509 bytes ...lasscore_1_1_terminal_session-members.html | 28 ++- docs/html/classcore_1_1_terminal_session.html | 39 ++-- ...core_1_1_terminal_session__coll__graph.map | 17 +- ...core_1_1_terminal_session__coll__graph.md5 | 2 +- ...core_1_1_terminal_session__coll__graph.png | Bin 60102 -> 40834 bytes docs/html/classcore_1_1_thread-members.html | 4 +- docs/html/classcore_1_1_thread.html | 12 +- docs/html/classcore_1_1_timer-members.html | 6 +- docs/html/classcore_1_1_timer.html | 6 +- ...score_1_1_u_d_p_server_socket-members.html | 10 +- .../classcore_1_1_u_d_p_server_socket.html | 22 +-- .../classcore_1_1_u_d_p_socket-members.html | 4 +- docs/html/classcore_1_1_u_d_p_socket.html | 12 +- docs/html/classes.html | 38 ++-- docs/html/files.html | 43 ++--- docs/html/functions.html | 75 +++----- docs/html/functions_func.html | 50 +---- docs/html/functions_vars.html | 19 +- docs/html/hierarchy.html | 61 +++--- docs/html/inherit_graph_0.map | 2 +- docs/html/inherit_graph_0.md5 | 2 +- docs/html/inherit_graph_0.png | Bin 1446 -> 1693 bytes docs/html/inherit_graph_1.map | 23 ++- docs/html/inherit_graph_1.md5 | 2 +- docs/html/inherit_graph_1.png | Bin 1077 -> 61528 bytes docs/html/inherit_graph_2.map | 25 +-- docs/html/inherit_graph_2.md5 | 2 +- docs/html/inherit_graph_2.png | Bin 65714 -> 1693 bytes docs/html/inherit_graph_3.map | 44 ++--- docs/html/inherit_graph_3.md5 | 2 +- docs/html/inherit_graph_3.png | Bin 67551 -> 56115 bytes docs/html/inherits.html | 59 +++--- docs/html/menudata.js | 5 +- docs/html/namespacecore.html | 6 +- docs/html/search/all_1.js | 9 +- docs/html/search/all_10.js | 1 - docs/html/search/all_2.js | 12 +- docs/html/search/all_3.js | 4 +- docs/html/search/all_4.js | 3 +- docs/html/search/all_5.js | 4 +- docs/html/search/all_6.js | 3 +- docs/html/search/all_7.js | 9 +- docs/html/search/all_8.js | 3 +- docs/html/search/all_9.js | 9 +- docs/html/search/all_a.js | 14 +- docs/html/search/all_b.js | 11 +- docs/html/search/all_c.js | 21 +- docs/html/search/all_d.js | 10 +- docs/html/search/all_e.js | 7 +- docs/html/search/all_f.js | 1 + docs/html/search/classes_0.js | 1 + docs/html/search/classes_1.js | 3 +- docs/html/search/classes_2.js | 3 +- docs/html/search/classes_3.js | 2 +- docs/html/search/classes_4.js | 5 +- docs/html/search/classes_5.js | 9 +- docs/html/search/classes_6.js | 3 +- docs/html/search/classes_7.js | 9 +- docs/html/search/classes_8.js | 6 +- docs/html/search/functions_3.js | 3 +- docs/html/search/functions_5.js | 7 +- docs/html/search/functions_6.js | 8 +- docs/html/search/functions_7.js | 4 +- docs/html/search/functions_8.js | 11 +- docs/html/search/functions_9.js | 14 +- docs/html/search/functions_a.js | 3 +- docs/html/search/functions_b.js | 2 +- docs/html/search/functions_c.js | 5 +- docs/html/search/functions_d.js | 1 - docs/html/search/searchdata.js | 19 +- docs/html/search/variables_0.js | 3 +- docs/html/search/variables_1.js | 2 +- docs/html/search/variables_3.js | 3 +- docs/html/search/variables_4.html | 2 +- docs/html/search/variables_4.js | 2 +- docs/html/search/variables_5.html | 2 +- docs/html/search/variables_5.js | 3 +- docs/latex/annotated.tex | 7 +- docs/latex/classcore_1_1_command.tex | 20 +- .../classcore_1_1_command__coll__graph.md5 | 2 +- .../classcore_1_1_command__coll__graph.pdf | Bin 12306 -> 12306 bytes .../classcore_1_1_command__inherit__graph.md5 | 2 +- .../classcore_1_1_command__inherit__graph.pdf | Bin 14656 -> 14940 bytes docs/latex/classcore_1_1_command_list.tex | 22 ++- docs/latex/classcore_1_1_console_server.tex | 41 ++-- ...sscore_1_1_console_server__coll__graph.md5 | 2 +- ...sscore_1_1_console_server__coll__graph.pdf | Bin 16364 -> 17030 bytes ...ore_1_1_console_server__inherit__graph.md5 | 2 +- ...ore_1_1_console_server__inherit__graph.pdf | Bin 14211 -> 14958 bytes docs/latex/classcore_1_1_console_service.tex | 47 +++++ ...score_1_1_console_service__coll__graph.md5 | 1 + ...score_1_1_console_service__coll__graph.pdf | Bin 0 -> 13660 bytes ...re_1_1_console_service__inherit__graph.md5 | 1 + ...re_1_1_console_service__inherit__graph.pdf | Bin 0 -> 13204 bytes docs/latex/classcore_1_1_console_session.tex | 19 +- ...score_1_1_console_session__coll__graph.md5 | 2 +- ...score_1_1_console_session__coll__graph.pdf | Bin 16587 -> 16088 bytes docs/latex/classcore_1_1_e_poll.tex | 14 +- docs/latex/classcore_1_1_exception.tex | 4 +- docs/latex/classcore_1_1_file.tex | 4 +- docs/latex/classcore_1_1_i_p_address.tex | 4 +- docs/latex/classcore_1_1_i_p_address_list.tex | 23 +++ docs/latex/classcore_1_1_log.tex | 7 +- docs/latex/classcore_1_1_log__coll__graph.md5 | 2 +- docs/latex/classcore_1_1_log__coll__graph.pdf | Bin 17211 -> 17662 bytes docs/latex/classcore_1_1_object.tex | 5 +- .../classcore_1_1_object__inherit__graph.md5 | 2 +- .../classcore_1_1_object__inherit__graph.pdf | Bin 17778 -> 16648 bytes docs/latex/classcore_1_1_service.tex | 49 +++-- .../classcore_1_1_service__coll__graph.md5 | 2 +- .../classcore_1_1_service__coll__graph.pdf | Bin 16232 -> 13511 bytes .../classcore_1_1_service__inherit__graph.md5 | 2 +- .../classcore_1_1_service__inherit__graph.pdf | Bin 11905 -> 13578 bytes docs/latex/classcore_1_1_session.tex | 27 ++- .../classcore_1_1_session__coll__graph.md5 | 2 +- .../classcore_1_1_session__coll__graph.pdf | Bin 16459 -> 15956 bytes docs/latex/classcore_1_1_session_filter.tex | 2 +- docs/latex/classcore_1_1_socket.tex | 10 +- .../classcore_1_1_t_c_p_server_socket.tex | 61 +++--- ...e_1_1_t_c_p_server_socket__coll__graph.md5 | 2 +- ...e_1_1_t_c_p_server_socket__coll__graph.pdf | Bin 16273 -> 16495 bytes docs/latex/classcore_1_1_t_c_p_socket.tex | 6 +- .../classcore_1_1_t_l_s_server_socket.tex | 27 +-- ...e_1_1_t_l_s_server_socket__coll__graph.md5 | 2 +- ...e_1_1_t_l_s_server_socket__coll__graph.pdf | Bin 16375 -> 16566 bytes docs/latex/classcore_1_1_t_l_s_service.tex | 14 +- ...asscore_1_1_t_l_s_service__coll__graph.md5 | 2 +- ...asscore_1_1_t_l_s_service__coll__graph.pdf | Bin 16359 -> 13675 bytes ...core_1_1_t_l_s_service__inherit__graph.md5 | 2 +- ...core_1_1_t_l_s_service__inherit__graph.pdf | Bin 11903 -> 13195 bytes docs/latex/classcore_1_1_t_l_s_session.tex | 12 +- ...asscore_1_1_t_l_s_session__coll__graph.md5 | 2 +- ...asscore_1_1_t_l_s_session__coll__graph.pdf | Bin 16530 -> 16031 bytes docs/latex/classcore_1_1_terminal_session.tex | 7 +- ...core_1_1_terminal_session__coll__graph.md5 | 2 +- ...core_1_1_terminal_session__coll__graph.pdf | Bin 16538 -> 16037 bytes docs/latex/classcore_1_1_thread.tex | 8 +- docs/latex/classcore_1_1_timer.tex | 4 +- .../classcore_1_1_u_d_p_server_socket.tex | 8 +- docs/latex/classcore_1_1_u_d_p_socket.tex | 4 +- docs/latex/hierarchy.tex | 21 +- docs/latex/namespacecore.tex | 6 +- docs/latex/refman.tex | 11 +- doxygen/Doxyfile | 4 +- 294 files changed, 2455 insertions(+), 2189 deletions(-) create mode 100644 .buildconfig create mode 100644 ConsoleService.cpp create mode 100644 ConsoleService.h delete mode 100644 Exception.cpp delete mode 100644 Exception.h delete mode 100644 File.cpp delete mode 100644 File.h delete mode 100644 Log.cpp delete mode 100644 Log.h create mode 100644 docs/html/_console_service_8h_source.html create mode 100644 docs/html/_i_p_address_list_8h_source.html create mode 100644 docs/html/classcore_1_1_console_service-members.html create mode 100644 docs/html/classcore_1_1_console_service.html create mode 100644 docs/html/classcore_1_1_console_service__coll__graph.map create mode 100644 docs/html/classcore_1_1_console_service__coll__graph.md5 create mode 100644 docs/html/classcore_1_1_console_service__coll__graph.png create mode 100644 docs/html/classcore_1_1_console_service__inherit__graph.map create mode 100644 docs/html/classcore_1_1_console_service__inherit__graph.md5 create mode 100644 docs/html/classcore_1_1_console_service__inherit__graph.png create mode 100644 docs/html/classcore_1_1_i_p_address_list-members.html create mode 100644 docs/html/classcore_1_1_i_p_address_list.html create mode 100644 docs/latex/classcore_1_1_console_service.tex create mode 100644 docs/latex/classcore_1_1_console_service__coll__graph.md5 create mode 100644 docs/latex/classcore_1_1_console_service__coll__graph.pdf create mode 100644 docs/latex/classcore_1_1_console_service__inherit__graph.md5 create mode 100644 docs/latex/classcore_1_1_console_service__inherit__graph.pdf create mode 100644 docs/latex/classcore_1_1_i_p_address_list.tex diff --git a/.buildconfig b/.buildconfig new file mode 100644 index 0000000..e2abde9 --- /dev/null +++ b/.buildconfig @@ -0,0 +1,10 @@ +[default] +name=Default +runtime=host +config-opts= +run-opts= +prefix=/home/bradarant/.cache/gnome-builder/install/html/host +app-id= +postbuild= +prebuild= +default=true diff --git a/Command.cpp b/Command.cpp index 09d376f..d40ffbd 100644 --- a/Command.cpp +++ b/Command.cpp @@ -7,14 +7,14 @@ namespace core { void Command::output(Session *session) {} - bool Command::check(std::string request) { + bool Command::check(std::string request) { if(request != "") { - if(name.length() > 0) { - size_t start = request.find_first_not_of(" "); - if(name == request.substr(start, name.length())) - return true; - } - return false; + if(name.length() > 0) { + size_t start = request.find_first_not_of(" "); + if(name == request.substr(start, name.length())) + return true; + } + return false; } } diff --git a/CommandList.cpp b/CommandList.cpp index 491a3f1..047e621 100644 --- a/CommandList.cpp +++ b/CommandList.cpp @@ -1,4 +1,4 @@ -#include "CommandList.h" +#include "CommandList.h"\ namespace core { @@ -9,7 +9,6 @@ namespace core { void CommandList::add(Command &command, std::string name) { command.setName(name); commands.push_back(&command); - } void CommandList::remove(Command &command) { @@ -17,7 +16,6 @@ namespace core { } bool CommandList::processRequest(std::string request, Session *session, std::stringstream &data) { - for(auto *command : commands) { if(command->check(request)) { command->processCommand(request, session, data); diff --git a/CommandList.h b/CommandList.h index 27f1131..88c16ed 100644 --- a/CommandList.h +++ b/CommandList.h @@ -3,6 +3,7 @@ #include "Session.h" #include "Command.h" +#include "Log.h" namespace core { diff --git a/ConsoleServer.cpp b/ConsoleServer.cpp index e6c5052..d7278dc 100644 --- a/ConsoleServer.cpp +++ b/ConsoleServer.cpp @@ -5,24 +5,15 @@ namespace core { - ConsoleServer::ConsoleServer(EPoll &ePoll, Service service, IPAddress address) + ConsoleServer::ConsoleServer(EPoll &ePoll, Service &service, IPAddress address) : TCPServerSocket(ePoll, service, address) { - Log(this); + coreutils::Log(this); } - - ConsoleServer::~ConsoleServer() {} - - void ConsoleServer::sendToConnectedConsoles(std::string out) { + + void ConsoleServer::logSend(std::string out) { for(auto *session : service.sessions) - ((ConsoleSession *)session)->writeLog(out); - } - - Session * ConsoleServer::getSocketAccept() { - return new ConsoleSession(ePoll, this->service); - } - - void ConsoleServer::output(Session *session) { - session->out << "|" << session->ipAddress.getClientAddressAndPort(); + ((ConsoleSession *)session)->writeLog(out); } + } diff --git a/ConsoleServer.h b/ConsoleServer.h index a8820fd..29676ea 100644 --- a/ConsoleServer.h +++ b/ConsoleServer.h @@ -16,7 +16,7 @@ namespace core { /// /// - class ConsoleServer : public TCPServerSocket { + class ConsoleServer : public TCPServerSocket, coreutils::LogListener { public: @@ -24,22 +24,14 @@ namespace core { // // - ConsoleServer(EPoll &ePoll, Service service, IPAddress address); + ConsoleServer(EPoll &ePoll, Service &service, IPAddress address); // // // - - ~ConsoleServer(); - - void sendToConnectedConsoles(std::string out); - - void output(Session *session) override; ///output(out); + ConsoleSession::ConsoleSession(EPoll &ePoll, Service &service) : TerminalSession(ePoll, service) { + coreutils::Log(coreutils::LOG_DEBUG_2) << "Constructing ConsoleSession..."; } + ConsoleSession::~ConsoleSession() {} + void ConsoleSession::protocol(std::string data = "") { switch (status) { @@ -62,7 +60,6 @@ namespace core { break; case PROMPT: - Log(LOG_DEBUG_1) << "Lines is " << getLines() << "."; setCursorLocation(17, 1); clearEOL(); out << ("--> "); diff --git a/ConsoleSession.h b/ConsoleSession.h index b76b1fe..272a892 100644 --- a/ConsoleSession.h +++ b/ConsoleSession.h @@ -22,7 +22,6 @@ namespace core { ConsoleSession(EPoll &ePoll, Service &service); ~ConsoleSession(); - virtual void output(std::stringstream &out); void writeLog(std::string data); protected: diff --git a/EPoll.cpp b/EPoll.cpp index b1d9664..6803d61 100644 --- a/EPoll.cpp +++ b/EPoll.cpp @@ -8,7 +8,7 @@ namespace core { EPoll::EPoll() : Command() { - Log(LOG_DEBUG_2) << "EPoll object being constructed."; + coreutils::Log(coreutils::LOG_DEBUG_2) << "EPoll object being constructed."; maxSockets = 1000; epfd = epoll_create1(0); @@ -16,17 +16,17 @@ namespace core { } EPoll::~EPoll() { - Log(LOG_DEBUG_2) << "BMAEPoll destructed."; + coreutils::Log(coreutils::LOG_DEBUG_2) << "BMAEPoll destructed."; } bool EPoll::start(int numberOfThreads, int maxSockets) { - Log(LOG_DEBUG_2) << "Starting epoll event processing."; + coreutils::Log(coreutils::LOG_DEBUG_2) << "Starting epoll event processing."; this->numberOfThreads = numberOfThreads; - Log(LOG_DEBUG_3) << "Number of threads starting is " << numberOfThreads << "."; - Log(LOG_DEBUG_3) << "Maximum connections is " << maxSockets << "."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Number of threads starting is " << numberOfThreads << "."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Maximum connections is " << maxSockets << "."; // TODO: Set the number of maximum open files to the maxSockets value. // @@ -37,10 +37,10 @@ namespace core { //---------------------------------------------------------------------- for(int ix = 0; ix < numberOfThreads; ++ix) - threads.emplace_back(*this); + threads.emplace_back(*this); for(int ix = 0; ix < numberOfThreads; ++ix) - threads[ix].start(); + threads[ix].start(); return true; } @@ -54,7 +54,7 @@ namespace core { //-------------------------------------------------------- for(int ix = 0; ix < numberOfThreads; ++ix) - threads[ix].join(); + threads[ix].join(); //-------------------------- // Close the epoll socket. @@ -73,8 +73,8 @@ namespace core { lock.lock(); std::map::iterator temp = sockets.find(socket->getDescriptor()); if(temp != sockets.end()) - throw Exception("Attempt to register socket that is already registered."); - Log(LOG_DEBUG_3) << "Registering socket " << socket->getDescriptor() << "."; + throw coreutils::Exception("Attempt to register socket that is already registered."); + coreutils::Log(coreutils::LOG_DEBUG_3) << "Registering socket " << socket->getDescriptor() << "."; sockets.insert(std::pair(socket->getDescriptor(), socket)); lock.unlock(); socket->enable(true); @@ -85,10 +85,10 @@ namespace core { bool EPoll::unregisterSocket(Socket *socket /**< The Socket to unregister. */) { lock.lock(); socket->enable(false); - Log(LOG_DEBUG_3) << "Unregistering socket " << socket->getDescriptor() << "."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Unregistering socket " << socket->getDescriptor() << "."; std::map::iterator temp = sockets.find(socket->getDescriptor()); if(temp == sockets.end()) - throw Exception("Attempt to unregister socket that is not registered."); + throw coreutils::Exception("Attempt to unregister socket that is not registered."); sockets.erase(temp); lock.unlock(); socket->onUnregistered(); @@ -100,10 +100,10 @@ namespace core { std::map::iterator socket = sockets.find(event.data.fd); lock.unlock(); if(socket != sockets.end()) { - (socket->second)->eventReceived(event); + (socket->second)->eventReceived(event); } else { - Log(LOG_WARN) << "System problem. Reference to socket " << event.data.fd << " that has no object."; - throw Exception("System problem occurred."); + coreutils::Log(coreutils::LOG_WARN) << "System problem. Reference to socket " << event.data.fd << " that has no object."; + throw coreutils::Exception("System problem occurred."); } } @@ -112,12 +112,9 @@ namespace core { } int EPoll::processCommand(std::string command, Session *session, std::stringstream &data) { - - int sequence = 0; - + int sequence = 0; for(auto threadx : threads) { data << "|" << ++sequence; - data << "|" ; threadx.output(data); data << "|" << std::endl; } diff --git a/Exception.cpp b/Exception.cpp deleted file mode 100644 index a97e987..0000000 --- a/Exception.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "Exception.h" -#include "Log.h" - -namespace core { - - Exception::Exception(std::string text, std::string file, int line, int errorNumber) { - this->text = text; - this->file = file; - this->line = line; - if(errorNumber == -1) - this->errorNumber = errno; - else - this->errorNumber = errorNumber; - - Log(LOG_EXCEPT) << text; - } - - Exception::~Exception() {} - -} diff --git a/Exception.h b/Exception.h deleted file mode 100644 index e4dc6b3..0000000 --- a/Exception.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __Exception_h__ -#define __Exception_h__ - -#include "includes" - -namespace core { - - class Exception { - - public: - Exception(std::string text, std::string file = __FILE__, int line = __LINE__, int errorNumber = -1); - ~Exception(); - - std::string className; - std::string file; - int line; - std::string text; - int errorNumber; - - }; - -} - -#endif diff --git a/File.cpp b/File.cpp deleted file mode 100644 index 5e6ae1b..0000000 --- a/File.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "File.h" -#include "Exception.h" - -namespace core { - - File::File(std::string fileName, int mode, int authority) { - - this->fileName = fileName; - - struct stat status; - stat(fileName.c_str(), &status); - - buffer = NULL; - - setBufferSize(status.st_size); - - fd = open(fileName.c_str(), mode, authority); - if(fd < 0) { - std::stringstream temp; - temp << "Error opening file " << fileName << "."; - throw Exception(temp.str(), __FILE__, __LINE__); - } - } - - File::~File() { - - } - - void File::setBufferSize(size_t size) { - buffer = (char *)realloc(buffer, size); - this->size = size; - } - - void File::read() { - size = ::read(fd, buffer, size); - setBufferSize(size); - } - - void File::write(std::string data) { - ::write(fd, data.c_str(), data.length()); - } - -} diff --git a/File.h b/File.h deleted file mode 100644 index 96ffbcc..0000000 --- a/File.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __File_h__ -#define __File_h__ - -#include "includes" - -/// -/// File -/// -/// File abstraction class for accessing local file system files. -/// - -namespace core { - - class File { - - public: - File(std::string fileName, int mode = O_RDONLY, int authority = 0664); - ~File(); - void setBufferSize(size_t size); - void read(); - void write(std::string data); - - char *buffer; - size_t size; - - std::string fileName; - - private: - int fd; - - }; - -} - -#endif diff --git a/IPAddressList.cpp b/IPAddressList.cpp index b658c81..d13ec16 100644 --- a/IPAddressList.cpp +++ b/IPAddressList.cpp @@ -17,7 +17,7 @@ namespace core { } bool IPAddressList::contains(std::string ipAddress) { - return list.find(ipAddress) != list.end(); + return list.size() > 0 ? list.find(ipAddress) != list.end(): false; } } diff --git a/Log.cpp b/Log.cpp deleted file mode 100644 index ffbe803..0000000 --- a/Log.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include "ConsoleSession.h" -#include "Log.h" -#include "ConsoleServer.h" - -namespace core { - - ConsoleServer *Log::consoleServer = NULL; - File *Log::logFile = NULL; - int Log::seq = 0; - - Log::Log(ConsoleServer *consoleServer) { - this->consoleServer = consoleServer; - } - - Log::Log(File *logFile) { - this->logFile = logFile; - } - - Log::Log(int level) { - - output = true; - - auto clock = std::chrono::system_clock::now(); - time_t theTime = std::chrono::system_clock::to_time_t(clock); - std::string timeOut = std::string(ctime(&theTime)); - timeOut = timeOut.substr(0, timeOut.length() - 1); - - *this << timeOut; - *this << " "; - - switch(level) { - case LOG_NONE: - *this << "[NONE] :"; - break; - case LOG_INFO: - *this << "[INFO] :"; - break; - case LOG_WARN: - *this << "[WARN] :"; - break; - case LOG_EXCEPT: - *this << "[EXCEPT]: "; - break; - case LOG_DEBUG_1: - *this << "[DEBUG1]: "; - break; - case LOG_DEBUG_2: - *this << "[DEBUG2]: "; - break; - case LOG_DEBUG_3: - *this << "[DEBUG3]: "; - break; - case LOG_DEBUG_4: - *this << "[DEBUG4]: "; - break; - default: - *this << "[?] ?"; - break; - }; - } - - Log::~Log() { - - if(output) { - - std::stringstream out; - out << seq << "." << this->str() << std::endl;; - - if(consoleServer) - consoleServer->sendToConnectedConsoles(out.str()); - - if(logFile) - logFile->write(out.str()); - - std::cout << out.str(); - ++seq; - } - } - -} diff --git a/Log.h b/Log.h deleted file mode 100644 index 2c45a1f..0000000 --- a/Log.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef __Log_h__ -#define __Log_h__ - -#include "includes" -#include "File.h" -#include "Object.h" - -namespace core { - - class ConsoleServer; - - static const int LOG_NONE = 0; - static const int LOG_INFO = 1; - static const int LOG_WARN = 2; - static const int LOG_EXCEPT = 4; - static const int LOG_DEBUG_1 = 8; - static const int LOG_DEBUG_2 = 16; - static const int LOG_DEBUG_3 = 32; - static const int LOG_DEBUG_4 = 64; - - /// - /// Log - /// - /// Provides easy to access and use logging features to maintain a - /// history of activity and provide information for activity debugging. - /// - - class Log : public std::ostringstream, public Object { - - public: - - /// - /// Constructor method that accepts a pointer to the applications - /// console server. This enables the Log object to send new log - /// messages to the connected console sessions. - /// - /// @param consoleServer a pointer to the console server that will - /// be used to echo log entries. - /// - - Log(ConsoleServer *consoleServer); - - /// - /// Constructor method accepts a file object that will be used to - /// echo all log entries. This provides a permanent disk file record - /// of all logged activity. - /// - - Log(File *logFile); - - /// - /// Constructor method that is used to send a message to the log. - /// - /// @param level the logging level to associate with this message. - /// - /// To send log message: Log(LOG_INFO) << "This is a log message."; - /// - - Log(int level); - - /// - /// The destructor for the log object. - /// - - ~Log(); - - bool output = false; - - /// - /// Set the consoleServer to point to the instantiated ConsoleServer - /// object for the application. - /// - - static ConsoleServer *consoleServer; - - /// - /// Specify a File object where the log entries will be written as - /// a permanent record to disk. - /// - - static File *logFile; - - /// - /// A meaningless sequenctial number that starts from - at the - /// beginning of the logging process. - /// - - static int seq; - - }; - -} - -#endif diff --git a/ServerCore.mk b/ServerCore.mk index 570b61c..596e2eb 100644 --- a/ServerCore.mk +++ b/ServerCore.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=Brad Arant -Date :=27/07/19 +Date :=12/09/19 CodeLitePath :=/home/bradarant/.codelite LinkerName :=/usr/bin/x86_64-linux-gnu-g++ SharedObjectLinkerName :=/usr/bin/x86_64-linux-gnu-g++ -shared -fPIC @@ -36,7 +36,7 @@ ObjectsFileList :="ServerCore.txt" PCHCompileFlags := MakeDirCommand :=mkdir -p LinkOptions := -IncludePath := $(IncludeSwitch). $(IncludeSwitch). +IncludePath := $(IncludeSwitch). $(IncludeSwitch). $(IncludeSwitch)../CoreUtils IncludePCH := RcIncludePath := Libs := @@ -60,9 +60,9 @@ AS := /usr/bin/x86_64-linux-gnu-as ## User defined environment variables ## CodeLiteDir:=/usr/share/codelite -Objects0=$(IntermediateDirectory)/Command.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConsoleServer.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConsoleSession.cpp$(ObjectSuffix) $(IntermediateDirectory)/EPoll.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exception.cpp$(ObjectSuffix) $(IntermediateDirectory)/File.cpp$(ObjectSuffix) $(IntermediateDirectory)/IPAddress.cpp$(ObjectSuffix) $(IntermediateDirectory)/Log.cpp$(ObjectSuffix) $(IntermediateDirectory)/Session.cpp$(ObjectSuffix) $(IntermediateDirectory)/Socket.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/TCPServerSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/TCPSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/Thread.cpp$(ObjectSuffix) $(IntermediateDirectory)/Timer.cpp$(ObjectSuffix) $(IntermediateDirectory)/TLSServerSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/TLSSession.cpp$(ObjectSuffix) $(IntermediateDirectory)/UDPServerSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/UDPSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/CommandList.cpp$(ObjectSuffix) $(IntermediateDirectory)/TerminalSession.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Service.cpp$(ObjectSuffix) $(IntermediateDirectory)/IPAddressList.cpp$(ObjectSuffix) +Objects0=$(IntermediateDirectory)/Command.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConsoleServer.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConsoleSession.cpp$(ObjectSuffix) $(IntermediateDirectory)/EPoll.cpp$(ObjectSuffix) $(IntermediateDirectory)/IPAddress.cpp$(ObjectSuffix) $(IntermediateDirectory)/Session.cpp$(ObjectSuffix) $(IntermediateDirectory)/Socket.cpp$(ObjectSuffix) $(IntermediateDirectory)/TCPServerSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/TCPSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/Thread.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Timer.cpp$(ObjectSuffix) $(IntermediateDirectory)/TLSServerSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/TLSSession.cpp$(ObjectSuffix) $(IntermediateDirectory)/UDPServerSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/UDPSocket.cpp$(ObjectSuffix) $(IntermediateDirectory)/CommandList.cpp$(ObjectSuffix) $(IntermediateDirectory)/TerminalSession.cpp$(ObjectSuffix) $(IntermediateDirectory)/Service.cpp$(ObjectSuffix) $(IntermediateDirectory)/IPAddressList.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConsoleService.cpp$(ObjectSuffix) \ + @@ -127,22 +127,6 @@ $(IntermediateDirectory)/EPoll.cpp$(DependSuffix): EPoll.cpp $(IntermediateDirectory)/EPoll.cpp$(PreprocessSuffix): EPoll.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/EPoll.cpp$(PreprocessSuffix) EPoll.cpp -$(IntermediateDirectory)/Exception.cpp$(ObjectSuffix): Exception.cpp $(IntermediateDirectory)/Exception.cpp$(DependSuffix) - $(CXX) $(IncludePCH) $(SourceSwitch) "/home/bradarant/barant/ServerCore/Exception.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/Exception.cpp$(ObjectSuffix) $(IncludePath) -$(IntermediateDirectory)/Exception.cpp$(DependSuffix): Exception.cpp - @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/Exception.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/Exception.cpp$(DependSuffix) -MM Exception.cpp - -$(IntermediateDirectory)/Exception.cpp$(PreprocessSuffix): Exception.cpp - $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/Exception.cpp$(PreprocessSuffix) Exception.cpp - -$(IntermediateDirectory)/File.cpp$(ObjectSuffix): File.cpp $(IntermediateDirectory)/File.cpp$(DependSuffix) - $(CXX) $(IncludePCH) $(SourceSwitch) "/home/bradarant/barant/ServerCore/File.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/File.cpp$(ObjectSuffix) $(IncludePath) -$(IntermediateDirectory)/File.cpp$(DependSuffix): File.cpp - @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/File.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/File.cpp$(DependSuffix) -MM File.cpp - -$(IntermediateDirectory)/File.cpp$(PreprocessSuffix): File.cpp - $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/File.cpp$(PreprocessSuffix) File.cpp - $(IntermediateDirectory)/IPAddress.cpp$(ObjectSuffix): IPAddress.cpp $(IntermediateDirectory)/IPAddress.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "/home/bradarant/barant/ServerCore/IPAddress.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/IPAddress.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/IPAddress.cpp$(DependSuffix): IPAddress.cpp @@ -151,14 +135,6 @@ $(IntermediateDirectory)/IPAddress.cpp$(DependSuffix): IPAddress.cpp $(IntermediateDirectory)/IPAddress.cpp$(PreprocessSuffix): IPAddress.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/IPAddress.cpp$(PreprocessSuffix) IPAddress.cpp -$(IntermediateDirectory)/Log.cpp$(ObjectSuffix): Log.cpp $(IntermediateDirectory)/Log.cpp$(DependSuffix) - $(CXX) $(IncludePCH) $(SourceSwitch) "/home/bradarant/barant/ServerCore/Log.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/Log.cpp$(ObjectSuffix) $(IncludePath) -$(IntermediateDirectory)/Log.cpp$(DependSuffix): Log.cpp - @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/Log.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/Log.cpp$(DependSuffix) -MM Log.cpp - -$(IntermediateDirectory)/Log.cpp$(PreprocessSuffix): Log.cpp - $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/Log.cpp$(PreprocessSuffix) Log.cpp - $(IntermediateDirectory)/Session.cpp$(ObjectSuffix): Session.cpp $(IntermediateDirectory)/Session.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "/home/bradarant/barant/ServerCore/Session.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/Session.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/Session.cpp$(DependSuffix): Session.cpp @@ -271,6 +247,14 @@ $(IntermediateDirectory)/IPAddressList.cpp$(DependSuffix): IPAddressList.cpp $(IntermediateDirectory)/IPAddressList.cpp$(PreprocessSuffix): IPAddressList.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/IPAddressList.cpp$(PreprocessSuffix) IPAddressList.cpp +$(IntermediateDirectory)/ConsoleService.cpp$(ObjectSuffix): ConsoleService.cpp $(IntermediateDirectory)/ConsoleService.cpp$(DependSuffix) + $(CXX) $(IncludePCH) $(SourceSwitch) "/home/bradarant/barant/ServerCore/ConsoleService.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ConsoleService.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/ConsoleService.cpp$(DependSuffix): ConsoleService.cpp + @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ConsoleService.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ConsoleService.cpp$(DependSuffix) -MM ConsoleService.cpp + +$(IntermediateDirectory)/ConsoleService.cpp$(PreprocessSuffix): ConsoleService.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ConsoleService.cpp$(PreprocessSuffix) ConsoleService.cpp + -include $(IntermediateDirectory)/*$(DependSuffix) ## diff --git a/ServerCore.project b/ServerCore.project index 4af529c..57e21c2 100644 --- a/ServerCore.project +++ b/ServerCore.project @@ -2,6 +2,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15,6 +63,7 @@ + @@ -91,56 +140,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ServerCore.txt b/ServerCore.txt index 81a6551..ff49318 100644 --- a/ServerCore.txt +++ b/ServerCore.txt @@ -1 +1 @@ -./Debug/Command.cpp.o ./Debug/ConsoleServer.cpp.o ./Debug/ConsoleSession.cpp.o ./Debug/EPoll.cpp.o ./Debug/Exception.cpp.o ./Debug/File.cpp.o ./Debug/IPAddress.cpp.o ./Debug/Log.cpp.o ./Debug/Session.cpp.o ./Debug/Socket.cpp.o ./Debug/TCPServerSocket.cpp.o ./Debug/TCPSocket.cpp.o ./Debug/Thread.cpp.o ./Debug/Timer.cpp.o ./Debug/TLSServerSocket.cpp.o ./Debug/TLSSession.cpp.o ./Debug/UDPServerSocket.cpp.o ./Debug/UDPSocket.cpp.o ./Debug/CommandList.cpp.o ./Debug/TerminalSession.cpp.o ./Debug/Service.cpp.o ./Debug/IPAddressList.cpp.o +./Debug/Command.cpp.o ./Debug/ConsoleServer.cpp.o ./Debug/ConsoleSession.cpp.o ./Debug/EPoll.cpp.o ./Debug/IPAddress.cpp.o ./Debug/Session.cpp.o ./Debug/Socket.cpp.o ./Debug/TCPServerSocket.cpp.o ./Debug/TCPSocket.cpp.o ./Debug/Thread.cpp.o ./Debug/Timer.cpp.o ./Debug/TLSServerSocket.cpp.o ./Debug/TLSSession.cpp.o ./Debug/UDPServerSocket.cpp.o ./Debug/UDPSocket.cpp.o ./Debug/CommandList.cpp.o ./Debug/TerminalSession.cpp.o ./Debug/Service.cpp.o ./Debug/IPAddressList.cpp.o ./Debug/ConsoleService.cpp.o diff --git a/Service.cpp b/Service.cpp index b313c82..5a7e4f3 100644 --- a/Service.cpp +++ b/Service.cpp @@ -6,20 +6,24 @@ namespace core { Service::Service() {} - void Service::init(TCPServerSocket *server) { - this->server = server; - } - void Service::removeFromSessionList(Session *session) { std::vector::iterator cursor; for(cursor = sessions.begin(); cursor < sessions.end(); ++cursor) - if(*cursor == session) - sessions.erase(cursor); + if(*cursor == session) + sessions.erase(cursor); } void Service::sessionErrorHandler(std::string errorString, Session *session) { - throw Exception(errorString); + throw coreutils::Exception(errorString); } + Session * Service::getSocketAccept(EPoll &ePoll) { + return new Session(ePoll, *this); + } + + void Service::output(Session *session) { + session->out << "|" << session->ipAddress.getClientAddressAndPort(); + } + } diff --git a/Service.h b/Service.h index c2040b9..963f61d 100644 --- a/Service.h +++ b/Service.h @@ -6,7 +6,7 @@ namespace core { - class TCPServerSocket; +// class TCPServerSocket; /// /// Service @@ -14,10 +14,10 @@ namespace core { /// The Service object is instantiated as a single object upon construction /// of the parent TCPServerSocket and is provided as a parameter whenever /// a new Session object is created. It provides server level services to - /// Command handlers. + /// Command handlers as well as determining the behavior of the socket. /// - class Service : public Object { + class Service : public Command { public: @@ -29,32 +29,35 @@ namespace core { Service(); - virtual void init(TCPServerSocket *server); - void removeFromSessionList(Session *session); virtual void sessionErrorHandler(std::string errorString, Session *session); + /// + /// 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. + /// + + virtual Session * getSocketAccept(EPoll &epoll); + + void output(Session *session) override; /// sessions; - /// - /// The server that is associated to this Service object. This provides access to the - /// server values and methods through the Service object which behaves as an interface. - /// - - TCPServerSocket *server; - /// /// The commands object is a CommandList and is used to store Command objects to be /// parsed and run as data comes into the session. /// CommandList commands; - + }; } diff --git a/Session.cpp b/Session.cpp index 61edb81..d642b10 100644 --- a/Session.cpp +++ b/Session.cpp @@ -9,9 +9,7 @@ namespace core { Session::~Session() { service.removeFromSessionList(this); } - - void Session::init() {} - + void Session::output(std::stringstream &data) { data << "|" << ipAddress.getClientAddressAndPort(); } @@ -19,7 +17,7 @@ namespace core { void Session::protocol(std::string data = "") { if(data.length() > 0) { if(!service.commands.processRequest(data, this, out)) - service.sessionErrorHandler("Invalid data received.", this); + service.sessionErrorHandler("Invalid data received.", this); send(); } } @@ -34,18 +32,18 @@ namespace core { void Session::sendToAll() { for(auto session : service.sessions) { - if(session != this) - session->write(out.str()); - } + if(session != this) + session->write(out.str()); + } out.str(""); } void Session::sendToAll(SessionFilter filter) { for(auto session : service.sessions) { - if(filter.test(*session)) { - if(session != this) - session->write(out.str()); - } + if(filter.test(*session)) { + if(session != this) + session->write(out.str()); + } } out.str(""); } diff --git a/Session.h b/Session.h index 6699dcd..63ede5c 100644 --- a/Session.h +++ b/Session.h @@ -25,8 +25,6 @@ namespace core { Session(EPoll &ePoll, Service &service); ~Session(); - virtual void init(); - virtual void output(std::stringstream &data); /// diff --git a/SessionFilter.h b/SessionFilter.h index 51f3b3c..8867e8f 100644 --- a/SessionFilter.h +++ b/SessionFilter.h @@ -11,7 +11,8 @@ namespace core { public: virtual bool test(Session &session) { - return true;}; + return true; + } }; diff --git a/Socket.cpp b/Socket.cpp index dcd7ee8..8feac65 100644 --- a/Socket.cpp +++ b/Socket.cpp @@ -6,8 +6,8 @@ namespace core { Socket::Socket(EPoll &ePoll) : ePoll(ePoll) { - Log(LOG_DEBUG_2) << "BMASocket object created."; - Log(LOG_DEBUG_3) << "Buffer size set to default (4096)."; + coreutils::Log(coreutils::LOG_DEBUG_2) << "BMASocket object created."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Buffer size set to default (4096)."; buffer = (char *)malloc(4096); length = 4096; } @@ -19,9 +19,9 @@ namespace core { } void Socket::setDescriptor(int descriptor) { - Log(LOG_DEBUG_3) << "Descriptor set to " << descriptor << " for Socket."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Descriptor set to " << descriptor << " for Socket."; if(descriptor < 3) - throw Exception("Descriptor out of range", __FILE__, __LINE__); + throw coreutils::Exception("Descriptor out of range", __FILE__, __LINE__); this->descriptor = descriptor; onTLSInit(); } @@ -46,44 +46,54 @@ namespace core { } void Socket::eventReceived(struct epoll_event event) { - + if(event.events & EPOLLRDHUP) { - Log(LOG_DEBUG_2) << "Socket " << descriptor << " received disconnect from client."; + readHangup = true; + enable(false); shutdown(); return; } - + if(event.events & EPOLLIN) - receiveData(buffer, length); - + receiveData(buffer, length); + if(event.events & EPOLLOUT) writeSocket(); + + if(event.events & EPOLLHUP) { + shutdown(); + return; + } enable(true); } void Socket::enable(bool mode) { if(mode) { - if(fifo.empty()) - active ? resetRead(): setRead(); - else - active ? resetReadWrite(5): setReadWrite(); - active = true; + if(fifo.empty()) { + if(!readHangup) { + active ? resetRead(): setRead(); + } + } + else { + active ? resetReadWrite(): setReadWrite(); + } + active = true; } else - clear(); + clear(); } void Socket::receiveData(char *buffer, int bufferLength) { if(bufferLength <= 0) - throw Exception("Request to receive data with a zero buffer length.", __FILE__, __LINE__, -1); + throw coreutils::Exception("Request to receive data with a zero buffer length.", __FILE__, __LINE__, -1); int len; int error = -1; if((len = ::read(getDescriptor(), buffer, bufferLength)) >= 0) - onDataReceived(std::string(buffer, len)); + onDataReceived(std::string(buffer, len)); else { error = errno; @@ -101,7 +111,7 @@ namespace core { break; default: - throw Exception("Error in read of data from socket.", __FILE__, __LINE__, error); + throw coreutils::Exception("Error in read of data from socket.", __FILE__, __LINE__, error); } } } @@ -112,9 +122,9 @@ namespace core { void Socket::writeSocket() { lock.lock(); if(fifo.size() > 0) { - ::write(descriptor, fifo.front().c_str(), fifo.front().length()); - fifo.pop(); - enable(true); + ::write(descriptor, fifo.front().c_str(), fifo.front().length()); + fifo.pop(); + enable(true); } lock.unlock(); } @@ -163,7 +173,7 @@ namespace core { epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_MOD, descriptor, &event); } - void Socket::resetReadWrite(int x) { + void Socket::resetReadWrite() { event.data.fd = descriptor; event.events = EPOLLIN | EPOLLOUT | EPOLLONESHOT | EPOLLRDHUP | EPOLLET; epoll_ctl(ePoll.getDescriptor(), EPOLL_CTL_MOD, descriptor, &event); @@ -174,7 +184,7 @@ namespace core { } void Socket::shutdown() { - Log (LOG_DEBUG_2) << "Shutdown requested on socket " << descriptor << "."; + coreutils::Log(coreutils::LOG_DEBUG_2) << "Shutdown requested on socket " << descriptor << "."; shutDown = true; enable(false); delete this; diff --git a/Socket.h b/Socket.h index ac5b39f..f1e00a8 100644 --- a/Socket.h +++ b/Socket.h @@ -138,6 +138,7 @@ namespace core { int descriptor = -1; std::mutex lock; + bool readHangup = false; struct epoll_event event; // Event selection construction structure. @@ -150,7 +151,7 @@ namespace core { void setReadWrite(); void resetRead(); void resetWrite();; - void resetReadWrite(int x); + void resetReadWrite(); void clear(); //------------------------------------------------------------------------------------- diff --git a/TCPServerSocket.cpp b/TCPServerSocket.cpp index d793e1d..920161d 100644 --- a/TCPServerSocket.cpp +++ b/TCPServerSocket.cpp @@ -7,15 +7,14 @@ namespace core { TCPServerSocket::TCPServerSocket(EPoll &ePoll, Service &service, IPAddress address) : TCPSocket(ePoll), service(service) { - service.init(this); setDescriptor(socket(AF_INET, SOCK_STREAM, 0)); int yes = 1; setsockopt(getDescriptor(), SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)); if(bind(getDescriptor(), address.getPointer(), address.addressLength) < 0) - throw Exception("Error on bind to socket: " + std::to_string(errno)); + throw coreutils::Exception("Error on bind to socket: " + std::to_string(errno)); if(listen(getDescriptor(), 10) < 0) - throw Exception("Error on listen to socket"); - ePoll.registerSocket(this); + throw coreutils::Exception("Error on listen to socket"); + ePoll.registerSocket(this); } TCPServerSocket::~TCPServerSocket() { @@ -23,36 +22,31 @@ namespace core { } void TCPServerSocket::onDataReceived(std::string data) { - Log(LOG_DEBUG_2) << "Connection request on socket " << getDescriptor() << "."; Session *session = accept(); if(session) service.sessions.push_back(session); } Session * TCPServerSocket::accept() { - Session *session = getSocketAccept(); + Session *session = service.getSocketAccept(ePoll); session->setDescriptor(::accept(getDescriptor(), (struct sockaddr *)&session->ipAddress.addr, &session->ipAddress.addressLength)); - if(blackList && blackList->contains(session->ipAddress.getClientAddress())) { - session->shutdown(); - Log(LOG_WARN) << "Client at IP address " << session->ipAddress.getClientAddress() << " is blacklisted and was denied a connection."; - return NULL; - } - - if(whiteList && !whiteList->contains(session->ipAddress.getClientAddress())) { - session->shutdown(); - Log(LOG_WARN) << "Client at IP address " << session->ipAddress.getClientAddress() << " is not authorized and was denied a connection."; - return NULL; - } +// if(blackList && blackList->contains(session->ipAddress.getClientAddress())) { +// session->shutdown(); +// Log(LOG_WARN) << "Client at IP address " << session->ipAddress.getClientAddress() << " is blacklisted and was denied a connection."; +// return NULL; +// } +// +// if(whiteList && !whiteList->contains(session->ipAddress.getClientAddress())) { +// session->shutdown(); +// Log(LOG_WARN) << "Client at IP address " << session->ipAddress.getClientAddress() << " is not authorized and was denied a connection."; +// return NULL; +// } ePoll.registerSocket(session); - Log(LOG_DEBUG_2) << "Session started on socket " << session->getDescriptor() << "."; + coreutils::Log(coreutils::LOG_DEBUG_2) << "Session started on socket " << session->getDescriptor() << "."; return session; } - Session * TCPServerSocket::getSocketAccept() { - return new Session(ePoll, service); - } - int TCPServerSocket::processCommand(std::string command, Session *session, std::stringstream &data) { int sequence = 0; for(auto *sessionx : service.sessions) { diff --git a/TCPServerSocket.h b/TCPServerSocket.h index 070f336..fc938f8 100644 --- a/TCPServerSocket.h +++ b/TCPServerSocket.h @@ -64,19 +64,7 @@ namespace core { IPAddressList *whiteList; protected: - -// virtual void init(); - - /// - /// 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 BMASession provides - /// the mechanism where the server can select the protocol dialog for the desired - /// service. - /// - - virtual Session * getSocketAccept(); - + /// /// Override the virtual dataReceived since for the server these /// are requests to accept the new connection socket. diff --git a/TCPSocket.cpp b/TCPSocket.cpp index 830ccf5..325e1b8 100644 --- a/TCPSocket.cpp +++ b/TCPSocket.cpp @@ -12,7 +12,7 @@ namespace core { void TCPSocket::connect(IPAddress &address) { setDescriptor(socket(AF_INET, SOCK_STREAM, 0)); if(::connect(getDescriptor(), (struct sockaddr *)&address.addr, address.addressLength) == -1) - throw Exception("Error on connect to TCP socket."); + throw coreutils::Exception("Error on connect to TCP socket."); } diff --git a/TLSServerSocket.cpp b/TLSServerSocket.cpp index f445bcc..ca6b34d 100644 --- a/TLSServerSocket.cpp +++ b/TLSServerSocket.cpp @@ -20,24 +20,24 @@ namespace core { tlsServerInit(); // TODO: Convert to use core::Exception object. if(!(((TLSService &)service).ctx = SSL_CTX_new(SSLv23_server_method()))) - throw Exception("Error while setting server method SSLv23."); + throw coreutils::Exception("Error while setting server method SSLv23."); SSL_CTX_set_mode(((TLSService &)service).ctx, SSL_MODE_RELEASE_BUFFERS | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); SSL_CTX_set_options(((TLSService &)service).ctx, SSL_OP_NO_TICKET); SSL_CTX_set_session_cache_mode(((TLSService &)service).ctx, SSL_SESS_CACHE_SERVER); // SSL_CTX_set_generate_session_id(ctx, generate_session_id); SSL_CTX_set_cipher_list(((TLSService &)service).ctx, "ECDH-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA"); if(SSL_CTX_use_certificate_file(((TLSService &)service).ctx, sip_cert, SSL_FILETYPE_PEM) <= 0) - throw Exception("Error looking up certificate."); + throw coreutils::Exception("Error looking up certificate."); if(SSL_CTX_use_PrivateKey_file(((TLSService &)service).ctx, sip_key, SSL_FILETYPE_PEM) < 0) - throw Exception("Error with private key."); + throw coreutils::Exception("Error with private key."); if(SSL_CTX_check_private_key(((TLSService &)service).ctx) != 1) - throw Exception("Private key does not match certificate."); + throw coreutils::Exception("Private key does not match certificate."); SSL_CTX_set_verify(((TLSService &)service).ctx, SSL_VERIFY_PEER, NULL); SSL_CTX_set_verify_depth(((TLSService &)service).ctx, 1); if(!SSL_CTX_load_verify_locations(((TLSService &)service).ctx, sip_cacert, NULL)) - throw Exception("Cannot verify locations."); + throw coreutils::Exception("Cannot verify locations."); SSL_CTX_set_client_CA_list(((TLSService &)service).ctx, SSL_load_client_CA_file(sip_cacert)); - Log(LOG_DEBUG_1) << "Server key authenticated."; + coreutils::Log(coreutils::LOG_DEBUG_1) << "Server key authenticated."; } TLSServerSocket::~TLSServerSocket() { @@ -52,16 +52,16 @@ namespace core { for(int i = 0; i < CRYPTO_num_locks(); ++i) pthread_mutex_init(&(lockarray[i]), NULL); - CRYPTO_set_id_callback((unsigned long (*)())thread_id); - CRYPTO_set_locking_callback((void ()(int, int, const char *, int))lock_callback); +// CRYPTO_set_id_callback((unsigned long (*)())thread_id); +// CRYPTO_set_locking_callback((void ()(int, int, const char *, int))lock_callback); SSLeay_add_ssl_algorithms(); RAND_load_file("/dev/hwrng", 1024); } - Session * TLSServerSocket::getSocketAccept() { - Session *session = new TLSSession(ePoll, this->service); - return session; - } +// Session * TLSServerSocket::getSocketAccept() { +// Session *session = new TLSSession(ePoll, this->service); +// return session; +// } } diff --git a/TLSServerSocket.h b/TLSServerSocket.h index 6f7d0a5..2b1f309 100644 --- a/TLSServerSocket.h +++ b/TLSServerSocket.h @@ -39,10 +39,7 @@ namespace core { ~TLSServerSocket(); // SSL_CTX *ctx; - - protected: - Session * getSocketAccept() override; - + private: void tlsServerInit(); diff --git a/TLSSession.cpp b/TLSSession.cpp index f38b2d1..bb0ae5c 100644 --- a/TLSSession.cpp +++ b/TLSSession.cpp @@ -10,7 +10,7 @@ namespace core { static int generate_session_id(const SSL *ssl, unsigned char *id, unsigned int *id_len) { char *session_id_prefix = (char *)"BARANT"; unsigned int count = 0; - Log(LOG_DEBUG_3) << "Generating unique session id."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Generating unique session id."; do { RAND_bytes(id, *id_len); memcpy(id, session_id_prefix, (strlen(session_id_prefix) < *id_len)); @@ -19,7 +19,7 @@ namespace core { } void handshake_complete(const SSL *ssl, int where, int ret) { - Log(LOG_DEBUG_3) << "==>" << SSL_state_string_long(ssl) << "<=="; + coreutils::Log(coreutils::LOG_DEBUG_3) << "==>" << SSL_state_string_long(ssl) << "<=="; if(where & SSL_CB_HANDSHAKE_DONE) { X509 *ssl_client_cert = SSL_get_peer_certificate(ssl); if(!ssl_client_cert) @@ -27,54 +27,54 @@ namespace core { X509_free(ssl_client_cert); if(SSL_get_verify_result(ssl) != X509_V_OK) throw std::string("Certificate verification failed."); - Log(LOG_DEBUG_3) << "Certificate verified successfully."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Certificate verified successfully."; } else - Log(LOG_DEBUG_3) << "No client certificate."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "No client certificate."; } TLSSession::TLSSession(EPoll &ePoll, Service &service) : Session(ePoll, service) {} - void TLSSession::init() { - - initialized = true; - - int ret; - - Log(LOG_DEBUG_3) << "TLS socket initializing..."; - - fcntl(getDescriptor(), F_SETFL, fcntl(getDescriptor(), F_GETFL, 0) | O_NONBLOCK); - - if(!(ssl = SSL_new(((TLSService &)service).ctx))) - throw std::string("Error creating new TLS socket."); - - SSL_set_info_callback(ssl, handshake_complete); - - if((ret = SSL_set_fd(ssl, getDescriptor())) == 0) - throw std::string("Error setting TLS socket descriptor."); - -// if(!SSL_set_generate_session_id(ssl, generate_session_id)) -// throw std::string("Error setting session identifier callback."); - - switch (SSL_get_error(ssl, SSL_accept(ssl))) { - case SSL_ERROR_SSL: - Log(LOG_DEBUG_3) << "ERROR_SSL on ssl_accept. errno=" << errno; - break; - case SSL_ERROR_WANT_READ: - Log(LOG_DEBUG_3) << "ERROR_WANT_READ on ssl_accept."; - break; - case SSL_ERROR_WANT_WRITE: - Log(LOG_DEBUG_3) << "ERROR_WANT_WRITE on ssl_accept."; - break; - case SSL_ERROR_SYSCALL: - Log(LOG_DEBUG_3) << "ERROR_SYSCALL on ssl_accept. errno=" << errno; - shutdown(); - break; - default: - Log(LOG_DEBUG_3) << "Unknown ERROR on ssl_accept."; - break; - } - } +// void TLSSession::init() { +// +// initialized = true; +// +// int ret; +// +// coreutils::Log(coreutils::LOG_DEBUG_3) << "TLS socket initializing..."; +// +// fcntl(getDescriptor(), F_SETFL, fcntl(getDescriptor(), F_GETFL, 0) | O_NONBLOCK); +// +// if(!(ssl = SSL_new(((TLSService &)service).ctx))) +// throw std::string("Error creating new TLS socket."); +// +// SSL_set_info_callback(ssl, handshake_complete); +// +// if((ret = SSL_set_fd(ssl, getDescriptor())) == 0) +// throw std::string("Error setting TLS socket descriptor."); +// +//// if(!SSL_set_generate_session_id(ssl, generate_session_id)) +//// throw std::string("Error setting session identifier callback."); +// +// switch (SSL_get_error(ssl, SSL_accept(ssl))) { +// case SSL_ERROR_SSL: +// coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_SSL on ssl_accept. errno=" << errno; +// break; +// case SSL_ERROR_WANT_READ: +// coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_WANT_READ on ssl_accept."; +// break; +// case SSL_ERROR_WANT_WRITE: +// coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_WANT_WRITE on ssl_accept."; +// break; +// case SSL_ERROR_SYSCALL: +// coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_SYSCALL on ssl_accept. errno=" << errno; +// shutdown(); +// break; +// default: +// coreutils::Log(coreutils::LOG_DEBUG_3) << "Unknown ERROR on ssl_accept."; +// break; +// } +// } TLSSession::~TLSSession() { @@ -86,8 +86,8 @@ namespace core { void TLSSession::receiveData(char *buffer, int bufferLength) { - if(!initialized) - init(); +// if(!initialized) +// init(); int len; // int error = -1; @@ -101,19 +101,19 @@ namespace core { else { switch (SSL_get_error(ssl, len)) { case SSL_ERROR_SSL: - Log(LOG_DEBUG_3) << "ERROR_SSL on ssl_read. error=" << errno; + coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_SSL on ssl_read. error=" << errno; break; case SSL_ERROR_WANT_READ: - Log(LOG_DEBUG_3) << "ERROR_WANT_READ on ssl_read."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_WANT_READ on ssl_read."; break; case SSL_ERROR_WANT_WRITE: - Log(LOG_DEBUG_3) << "ERROR_WANT_WRITE on ssl_read."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_WANT_WRITE on ssl_read."; break; case SSL_ERROR_SYSCALL: - Log(LOG_DEBUG_3) << "ERROR_SYSCALL on ssl_read. errno=" << errno; + coreutils::Log(coreutils::LOG_DEBUG_3) << "ERROR_SYSCALL on ssl_read. errno=" << errno; break; default: - Log(LOG_DEBUG_3) << "Unknown ERROR on ssl_read."; + coreutils::Log(coreutils::LOG_DEBUG_3) << "Unknown ERROR on ssl_read."; break; } } diff --git a/TLSSession.h b/TLSSession.h index 947ee8a..68e3537 100644 --- a/TLSSession.h +++ b/TLSSession.h @@ -38,12 +38,10 @@ namespace core { virtual void protocol(std::string data) override; protected: - void init() override; void receiveData(char *buffer, int bufferLength) override; private: bool initialized = false; -// TLSServerSocket &server; SSL *ssl; }; diff --git a/Thread.cpp b/Thread.cpp index d414887..7e4de56 100644 --- a/Thread.cpp +++ b/Thread.cpp @@ -38,7 +38,7 @@ namespace core { threadId = syscall(SYS_gettid); - Log(LOG_DEBUG_1) << "Thread started with thread id " << threadId << "."; + coreutils::Log(coreutils::LOG_DEBUG_1) << "Thread started with thread id " << threadId << "."; count = 0; @@ -59,7 +59,13 @@ namespace core { break; } else if(rc > 0) { for(int ix = 0; ix < rc; ++ix) { - ++count; + ++count; +// std::cout << "Event " << events[ix].events << " on socket " << events[ix].data.fd << " on thread " << getThreadId() << ": "; +// std::cout << ((events[ix].events & EPOLLIN) ? "EPOLLIN ": ""); +// std::cout << ((events[ix].events & EPOLLOUT) ? "EPOLLOUT ": ""); +// std::cout << ((events[ix].events & EPOLLRDHUP) ? "EPOLLRDHUP ": ""); +// std::cout << ((events[ix].events & EPOLLHUP) ? "EPOLLHUP ": ""); +// std::cout << "." << std::endl; ePoll.eventReceived(events[ix]); } } diff --git a/docs/html/_command_8h_source.html b/docs/html/_command_8h_source.html index e82b82a..c35f82d 100644 --- a/docs/html/_command_8h_source.html +++ b/docs/html/_command_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Command.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Command.h Source File @@ -59,17 +59,17 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Command.h
+
/home/bradarant/barant/ServerCore/Command.h
-
1 #ifndef __Command_h__
2 # define __Command_h__
3 
4 # include "includes"
5 # include "Object.h"
6 
7 namespace core {
8 
9  class Session;
10 
17 
18  class Command : public Object {
19 
20  public:
21 
35 
36  virtual bool check(std::string request);
37 
48 
49  virtual int processCommand(std::string request, Session *session) = 0;
50 
56 
57  virtual void output(Session *session);
58 
67 
68  void setName(std::string name);
69 
70  std::string getName();
71 
72  private:
73  std::string name;
74 
75  };
76 
77 }
78 
79 #endif
Definition: Command.cpp:4
+
1 #ifndef __Command_h__
2 #define __Command_h__
3 
4 #include "includes"
5 #include "Object.h"
6 
7 namespace core {
8 
9  class Session;
10 
17 
18  class Command : public Object {
19 
20  public:
21 
35 
36  virtual bool check(std::string request);
37 
48 
49  virtual int processCommand(std::string request, Session *session, std::stringstream &data);
50 
56 
57  virtual void output(Session *session);
58 
67 
68  void setName(std::string name);
69 
70  std::string getName();
71 
72  private:
73  std::string name;
74 
75  };
76 
77 }
78 
79 #endif
virtual int processCommand(std::string request, Session *session, std::stringstream &data)
Definition: Command.cpp:6
+
Definition: Command.cpp:4
Definition: Session.h:22
-
void setName(std::string name)
Definition: Command.cpp:19
-
virtual int processCommand(std::string request, Session *session)=0
-
virtual bool check(std::string request)
Definition: Command.cpp:8
+
void setName(std::string name)
Definition: Command.cpp:21
+
virtual bool check(std::string request)
Definition: Command.cpp:10
Definition: Object.h:8
Definition: Command.h:18
-
virtual void output(Session *session)
Definition: Command.cpp:6
+
virtual void output(Session *session)
Definition: Command.cpp:8
-
1 #ifndef __CommandList_h__
2 #define __CommandList_h__
3 
4 #include "Session.h"
5 #include "Command.h"
6 
7 namespace core {
8 
16 
17  class CommandList : public Command {
18 
19  public:
20 
24 
25  CommandList();
26 
30 
31  ~CommandList();
32 
36 
37  void add(Command &command, std::string name = "");
38 
39  void remove(Command &command);
40 
41  bool processRequest(std::string request, Session *session);
42 
43  int processCommand(std::string request, Session *session) override;
44 
45  private:
46  std::vector<Command *> commands;
47 
48  };
49 
50 }
51 
52 #endif
CommandList()
Definition: CommandList.cpp:5
+
1 #ifndef __CommandList_h__
2 #define __CommandList_h__
3 
4 #include "Session.h"
5 #include "Command.h"
6 #include "Log.h"
7 
8 namespace core {
9 
17 
18  class CommandList : public Command {
19 
20  public:
21 
25 
26  CommandList();
27 
31 
32  ~CommandList();
33 
37 
38  void add(Command &command, std::string name = "");
39 
40  void remove(Command &command);
41 
42  bool processRequest(std::string request, Session *session, std::stringstream &data);
43 
44  int processCommand(std::string request, Session *session, std::stringstream &data) override;
45 
46  protected:
47  std::vector<Command *> commands;
48 
49  };
50 
51 }
52 
53 #endif
CommandList()
Definition: CommandList.cpp:5
Definition: Command.cpp:4
Definition: Session.h:22
~CommandList()
Definition: CommandList.cpp:7
-
int processCommand(std::string request, Session *session) override
Definition: CommandList.cpp:28
+
int processCommand(std::string request, Session *session, std::stringstream &data) override
Definition: CommandList.cpp:28
Definition: Command.h:18
-
Definition: CommandList.h:17
+
Definition: CommandList.h:18
void add(Command &command, std::string name="")
Definition: CommandList.cpp:9
diff --git a/docs/html/_console_server_8h_source.html b/docs/html/_console_server_8h_source.html index fa88f07..dc1754e 100644 --- a/docs/html/_console_server_8h_source.html +++ b/docs/html/_console_server_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/ConsoleServer.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/ConsoleServer.h Source File @@ -59,18 +59,16 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/ConsoleServer.h
+
/home/bradarant/barant/ServerCore/ConsoleServer.h
-
1 #ifndef __ConsoleServer_h__
2 #define __ConsoleServer_h__
3 
4 #include "includes"
5 #include "TCPServerSocket.h"
6 #include "Service.h"
7 #include "Command.h"
8 #include "Session.h"
9 #include "EPoll.h"
10 
11 namespace core {
12 
13  class TCPSocket;
14 
18 
19  class ConsoleServer : public TCPServerSocket {
20 
21  public:
22 
23  //
24  //
25  //
26 
27  ConsoleServer(EPoll &ePoll, Service service, IPAddress address);
28 
29  //
30  //
31  //
32 
33  ~ConsoleServer();
34 
35  void sendToConnectedConsoles(std::string out);
36 
37  void output(Session *session) override;
38 
39  protected:
40 
41  Session * getSocketAccept() override;
42 
43  };
44 
45 }
46 
47 
48 #endif
Definition: EPoll.h:31
+
1 #ifndef __ConsoleServer_h__
2 #define __ConsoleServer_h__
3 
4 #include "includes"
5 #include "TCPServerSocket.h"
6 #include "Service.h"
7 #include "Command.h"
8 #include "Session.h"
9 #include "EPoll.h"
10 
11 namespace core {
12 
13  class TCPSocket;
14 
18 
19  class ConsoleServer : public TCPServerSocket, coreutils::LogListener {
20 
21  public:
22 
23  //
24  //
25  //
26 
27  ConsoleServer(EPoll &ePoll, Service &service, IPAddress address);
28 
29  //
30  //
31  //
32 
33  void logSend(std::string out) override;
34 
35  };
36 
37 }
38 
39 
40 #endif
Definition: EPoll.h:31
+
Service & service
Definition: TCPServerSocket.h:50
Definition: Command.cpp:4
-
Definition: Session.h:22
Definition: IPAddress.h:9
Definition: Service.h:20
-
Session * getSocketAccept() override
Definition: ConsoleServer.cpp:20
-
void output(Session *session) override
Output the consoles array to the console.
Definition: ConsoleServer.cpp:24
Definition: ConsoleServer.h:19
-
Definition: TCPServerSocket.h:22
+
Definition: TCPServerSocket.h:23
-
1 #ifndef __ConsoleSession_h__
2 #define __ConsoleSession_h__
3 
4 #include "TerminalSession.h"
5 #include "Session.h"
6 #include "Service.h"
7 #include "CommandList.h"
8 
9 namespace core {
10 
18 
20 
21  public:
22  ConsoleSession(EPoll &ePoll, Service &service);
23  ~ConsoleSession();
24 
25  virtual void output(std::stringstream &out);
26  void writeLog(std::string data);
27 
28  protected:
29  void protocol(std::string 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(std::string request);
35  std::string command;
36 
37  };
38 
39 }
40 
41 #endif
Definition: EPoll.h:31
+
1 #ifndef __ConsoleSession_h__
2 #define __ConsoleSession_h__
3 
4 #include "TerminalSession.h"
5 #include "Session.h"
6 #include "Service.h"
7 #include "CommandList.h"
8 
9 namespace core {
10 
18 
20 
21  public:
22  ConsoleSession(EPoll &ePoll, Service &service);
23  ~ConsoleSession();
24 
25  void writeLog(std::string data);
26 
27  protected:
28  void protocol(std::string data) override;
29 
30  private:
31  enum Status {WELCOME, LOGIN, WAIT_USER_PROFILE, PASSWORD, WAIT_PASSWORD, PROMPT, INPUT, PROCESS, DONE};
32  Status status = WELCOME;
33  void doCommand(std::string request);
34  std::string command;
35 
36  };
37 
38 }
39 
40 #endif
Definition: EPoll.h:31
Definition: Command.cpp:4
Definition: ConsoleSession.h:19
-
virtual void output(std::stringstream &out)
Definition: ConsoleSession.cpp:10
Definition: Service.h:20
-
void protocol(std::string data) override
Definition: ConsoleSession.cpp:14
+
void protocol(std::string data) override
Definition: ConsoleSession.cpp:12
Definition: TerminalSession.h:30
diff --git a/docs/html/_e_poll_8h_source.html b/docs/html/_e_poll_8h_source.html index 1fb7da5..d673ed2 100644 --- a/docs/html/_e_poll_8h_source.html +++ b/docs/html/_e_poll_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/EPoll.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/EPoll.h Source File @@ -59,14 +59,14 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/EPoll.h
+
/home/bradarant/barant/ServerCore/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 "Session.h"
8 #include "Command.h"
9 
10 namespace core {
11 
30 
31  class EPoll : public Command {
32 
33  public:
34 
38 
39  EPoll();
40 
44 
45  ~EPoll();
46 
53 
54  bool start(int numberOfThreads, int maxSockets);
55 
61 
62  bool stop();
63 
68 
69  bool isStopping();
70 
79 
80  bool registerSocket(Socket *socket);
81 
85 
86  bool unregisterSocket(Socket *socket);
87 
91 
92  int getDescriptor();
93 
97 
98  int maxSockets;
99 
103 
104  void eventReceived(struct epoll_event event);
105 
112 
113  int processCommand(std::string command, Session *session) override;
114 
115  private:
116 
117  int epfd;
118  int numberOfThreads;
119  std::map<int, Socket *> sockets;
120  std::vector<Thread> threads;
121  volatile bool terminateThreads;
122  std::mutex lock;
123 
124  };
125 
126 }
127 
128 #endif
129 
void eventReceived(struct epoll_event event)
Dispatch event to appropriate socket.
Definition: EPoll.cpp:98
-
int processCommand(std::string command, Session *session) override
Output the threads array to the console.
Definition: EPoll.cpp:114
+
1 #ifndef __EPoll_h__
2 #define __EPoll_h__
3 
4 #include "Log.h"
5 #include "Socket.h"
6 #include "Thread.h"
7 #include "Session.h"
8 #include "Command.h"
9 
10 namespace core {
11 
30 
31  class EPoll : public Command {
32 
33  public:
34 
38 
39  EPoll();
40 
44 
45  ~EPoll();
46 
53 
54  bool start(int numberOfThreads, int maxSockets);
55 
61 
62  bool stop();
63 
68 
69  bool isStopping();
70 
79 
80  bool registerSocket(Socket *socket);
81 
85 
86  bool unregisterSocket(Socket *socket);
87 
91 
92  int getDescriptor();
93 
97 
98  int maxSockets;
99 
103 
104  void eventReceived(struct epoll_event event);
105 
112 
113  int processCommand(std::string command, Session *session, std::stringstream &data) override;
114 
115  private:
116 
117  int epfd;
118  int numberOfThreads;
119  std::map<int, Socket *> sockets;
120  std::vector<Thread> threads;
121  volatile bool terminateThreads;
122  std::mutex lock;
123 
124  };
125 
126 }
127 
128 #endif
129 
void eventReceived(struct epoll_event event)
Dispatch event to appropriate socket.
Definition: EPoll.cpp:98
Definition: EPoll.h:31
Definition: Command.cpp:4
Definition: Session.h:22
+
int processCommand(std::string command, Session *session, std::stringstream &data) override
Output the threads array to the console.
Definition: EPoll.cpp:114
~EPoll()
Definition: EPoll.cpp:18
int getDescriptor()
Return the descriptor for the ePoll socket.
Definition: EPoll.cpp:110
bool unregisterSocket(Socket *socket)
Unregister a BMASocket from monitoring by BMAEPoll.
Definition: EPoll.cpp:85
diff --git a/docs/html/_exception_8h_source.html b/docs/html/_exception_8h_source.html index 7860b79..cb3cafd 100644 --- a/docs/html/_exception_8h_source.html +++ b/docs/html/_exception_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Exception.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Exception.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Exception.h
+
/home/bradarant/barant/ServerCore/Exception.h
1 #ifndef __Exception_h__
2 #define __Exception_h__
3 
4 #include "includes"
5 
6 namespace core {
7 
8  class Exception {
9 
10  public:
11  Exception(std::string text, std::string file = __FILE__, int line = __LINE__, int errorNumber = -1);
12  ~Exception();
13 
14  std::string className;
15  std::string file;
16  int line;
17  std::string text;
18  int errorNumber;
19 
20  };
21 
22 }
23 
24 #endif
Definition: Exception.h:8
diff --git a/docs/html/_file_8h_source.html b/docs/html/_file_8h_source.html index f137fd9..43fa6aa 100644 --- a/docs/html/_file_8h_source.html +++ b/docs/html/_file_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/File.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/File.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/File.h
+
/home/bradarant/barant/ServerCore/File.h
1 #ifndef __File_h__
2 #define __File_h__
3 
4 #include "includes"
5 
11 
12 namespace core {
13 
14  class File {
15 
16  public:
17  File(std::string fileName, int mode = O_RDONLY, int authority = 0664);
18  ~File();
19  void setBufferSize(size_t size);
20  void read();
21  void write(std::string data);
22 
23  char *buffer;
24  size_t size;
25 
26  std::string fileName;
27 
28  private:
29  int fd;
30 
31  };
32 
33 }
34 
35 #endif
Definition: File.h:14
diff --git a/docs/html/_i_p_address_8h_source.html b/docs/html/_i_p_address_8h_source.html index 8ab02af..3398804 100644 --- a/docs/html/_i_p_address_8h_source.html +++ b/docs/html/_i_p_address_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/IPAddress.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/IPAddress.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/IPAddress.h
+
/home/bradarant/barant/ServerCore/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
int getClientPort()
Get the client network port number.
Definition: IPAddress.cpp:47
diff --git a/docs/html/_i_p_address_list_8h_source.html b/docs/html/_i_p_address_list_8h_source.html new file mode 100644 index 0000000..5b80155 --- /dev/null +++ b/docs/html/_i_p_address_list_8h_source.html @@ -0,0 +1,76 @@ + + + + + + + +BMA Server Framework: /home/bradarant/barant/ServerCore/IPAddressList.h Source File + + + + + + + + + +
+
+ + + + + + +
+
BMA Server Framework +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
/home/bradarant/barant/ServerCore/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  bool 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: Command.cpp:4
+
Definition: IPAddress.h:9
+
Definition: IPAddressList.h:9
+
+ + + + diff --git a/docs/html/_log_8h_source.html b/docs/html/_log_8h_source.html index 9ea9063..74f2ce0 100644 --- a/docs/html/_log_8h_source.html +++ b/docs/html/_log_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Log.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Log.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Log.h
+
/home/bradarant/barant/ServerCore/Log.h
1 #ifndef __Log_h__
2 #define __Log_h__
3 
4 #include "includes"
5 #include "File.h"
6 #include "Object.h"
7 
8 namespace core {
9 
10  class ConsoleServer;
11 
12  static const int LOG_NONE = 0;
13  static const int LOG_INFO = 1;
14  static const int LOG_WARN = 2;
15  static const int LOG_EXCEPT = 4;
16  static const int LOG_DEBUG_1 = 8;
17  static const int LOG_DEBUG_2 = 16;
18  static const int LOG_DEBUG_3 = 32;
19  static const int LOG_DEBUG_4 = 64;
20 
27 
28  class Log : public std::ostringstream, public Object {
29 
30  public:
31 
40 
42 
48 
49  Log(File *logFile);
50 
58 
59  Log(int level);
60 
64 
65  ~Log();
66 
67  bool output = false;
68 
73 
75 
80 
81  static File *logFile;
82 
87 
88  static int seq;
89 
90  };
91 
92 }
93 
94 #endif
Definition: Log.h:28
diff --git a/docs/html/_object_8h_source.html b/docs/html/_object_8h_source.html index a319821..1ec14fb 100644 --- a/docs/html/_object_8h_source.html +++ b/docs/html/_object_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Object.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Object.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Object.h
+
/home/bradarant/barant/ServerCore/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: Command.cpp:4
diff --git a/docs/html/_service_8h_source.html b/docs/html/_service_8h_source.html index b5603ec..e86d515 100644 --- a/docs/html/_service_8h_source.html +++ b/docs/html/_service_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Service.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Service.h Source File @@ -59,19 +59,20 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Service.h
+
/home/bradarant/barant/ServerCore/Service.h
-
1 #ifndef __Service_h__
2 #define __Service_h__
3 
4 #include "Object.h"
5 #include "CommandList.h"
6 
7 namespace core {
8 
9  class TCPServerSocket;
10 
19 
20  class Service : public Object {
21 
22  public:
23 
29 
30  Service();
31 
32  virtual void init(TCPServerSocket *server);
33 
34  void removeFromSessionList(Session *session);
35 
36  virtual void sessionErrorHandler(std::string errorString, Session *session);
37 
41 
42  std::vector<Session *> sessions;
43 
48 
50 
55 
57 
58  };
59 
60 }
61 
62 #endif
Service()
Definition: Service.cpp:7
-
CommandList commands
Definition: Service.h:56
+
1 #ifndef __Service_h__
2 #define __Service_h__
3 
4 #include "Object.h"
5 #include "CommandList.h"
6 
7 namespace core {
8 
9 // class TCPServerSocket;
10 
19 
20  class Service : public Command {
21 
22  public:
23 
29 
30  Service();
31 
32  void removeFromSessionList(Session *session);
33 
34  virtual void sessionErrorHandler(std::string errorString, Session *session);
35 
43 
44  virtual Session * getSocketAccept(EPoll &epoll);
45 
46  void output(Session *session) override;
47 
51 
52  std::vector<Session *> sessions;
53 
58 
60 
61  };
62 
63 }
64 
65 #endif
Service()
Definition: Service.cpp:7
+
void output(Session *session) override
Output the consoles array to the console.
Definition: Service.cpp:24
+
Definition: EPoll.h:31
+
CommandList commands
Definition: Service.h:59
Definition: Command.cpp:4
Definition: Session.h:22
-
std::vector< Session * > sessions
Definition: Service.h:42
-
TCPServerSocket * server
Definition: Service.h:49
+
virtual Session * getSocketAccept(EPoll &epoll)
Definition: Service.cpp:20
+
std::vector< Session * > sessions
Definition: Service.h:52
Definition: Service.h:20
-
Definition: Object.h:8
-
Definition: CommandList.h:17
-
Definition: TCPServerSocket.h:22
+
Definition: Command.h:18
+
Definition: CommandList.h:18
-
1 #ifndef __Session_h__
2 #define __Session_h__
3 
4 #include "TCPSocket.h"
5 #include "SessionFilter.h"
6 //#include "Service.h"
7 
8 namespace core {
9 
10  class Service;
11 
21 
22  class Session : public TCPSocket {
23 
24  public:
25  Session(EPoll &ePoll, Service &service);
26  ~Session();
27 
28  virtual void init();
29 
30  virtual void output(Session *session);
31 
36 
37  void send();
38 
43 
44  void sendToAll();
45 
51 
52  void sendToAll(SessionFilter filter);
53 
54  std::stringstream out;
55 
56  Service &service;
57 
58  protected:
59 
60  void onDataReceived(std::string data) override;
61  void onConnected() override;
62 
69 
70  virtual void protocol(std::string data);
71 
72  };
73 
74 }
75 
76 #endif
Definition: EPoll.h:31
+
1 #ifndef __Session_h__
2 #define __Session_h__
3 
4 #include "TCPSocket.h"
5 #include "SessionFilter.h"
6 //#include "Service.h"
7 
8 namespace core {
9 
10  class Service;
11 
21 
22  class Session : public TCPSocket {
23 
24  public:
25  Session(EPoll &ePoll, Service &service);
26  ~Session();
27 
28  virtual void output(std::stringstream &data);
29 
34 
35  void send();
36 
41 
42  void sendToAll();
43 
49 
50  void sendToAll(SessionFilter filter);
51 
52  std::stringstream out;
53 
54  Service &service;
55 
56  protected:
57 
58  void onDataReceived(std::string data) override;
59  void onConnected() override;
60 
67 
68  virtual void protocol(std::string data);
69 
70  };
71 
72 }
73 
74 #endif
Definition: EPoll.h:31
Definition: Command.cpp:4
Definition: Session.h:22
void onDataReceived(std::string data) override
Called when data is received from the socket.
Definition: Session.cpp:29
+
virtual void output(std::stringstream &data)
Definition: Session.cpp:13
Definition: Service.h:20
Definition: TCPSocket.h:20
void sendToAll()
Definition: Session.cpp:33
void onConnected() override
Called when socket is open and ready to communicate.
Definition: Session.cpp:25
Definition: SessionFilter.h:10
void send()
Definition: Session.cpp:51
-
virtual void protocol(std::string data)
Definition: Session.cpp:19
+
virtual void protocol(std::string data)
Definition: Session.cpp:17
-
1 #ifndef __SessionFilter_h__
2 #define __SessionFilter_h__
3 
4 //#include "Session.h"
5 
6 namespace core {
7 
8  class Session;
9 
10  class SessionFilter : public Object {
11 
12  public:
13  virtual bool test(Session &session) {
14  return true;};
15 
16  };
17 
18 }
19 
20 #endif
Definition: Command.cpp:4
+
1 #ifndef __SessionFilter_h__
2 #define __SessionFilter_h__
3 
4 //#include "Session.h"
5 
6 namespace core {
7 
8  class Session;
9 
10  class SessionFilter : public Object {
11 
12  public:
13  virtual bool test(Session &session) {
14  return true;
15  }
16 
17  };
18 
19 }
20 
21 #endif
Definition: Command.cpp:4
Definition: Session.h:22
Definition: Object.h:8
Definition: SessionFilter.h:10
diff --git a/docs/html/_socket_8h_source.html b/docs/html/_socket_8h_source.html index d1c8990..93c6eec 100644 --- a/docs/html/_socket_8h_source.html +++ b/docs/html/_socket_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Socket.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Socket.h Source File @@ -59,23 +59,23 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Socket.h
+
/home/bradarant/barant/ServerCore/Socket.h
-
1 #ifndef __Socket_h__
2 #define __Socket_h__
3 
4 #include "includes"
5 #include "Object.h"
6 
7 namespace core {
8 
9  class EPoll;
10 
31 
32  class Socket : public std::streambuf,
33  public core::Object {
34 
35  public:
36 
37  Socket(EPoll &ePoll);
38  ~Socket();
39 
40  void setDescriptor(int descriptor);
41 
42  int getDescriptor();
43 
44  class {
45  int value;
46 
47  public:
48  int & operator = (const int &i) { return value = i; }
49  operator int () const { return value; }
50 
51  } bufferSize;
52 
62 
63  void eventReceived(struct epoll_event event);
64 
68 
69  void write(std::string data);
70  void write(char *buffer, int length);
71 
72  void output(std::stringstream &out);
73 
78 
79  virtual void onRegistered();
80 
87 
88  virtual void onUnregistered();
89 
90  void enable(bool mode);
91 
92  protected:
93 
94  EPoll &ePoll; // The EPoll control object.
95 
96  bool shutDown = false;
97 
98  void setBufferSize(int length);
99 
105 
106  virtual void onConnected();
107 
108  virtual void onTLSInit();
109 
113 
114 // virtual void onDisconnected(); ///< Called when socket is closing and no longer ready to communicate.
115 
123 
124  virtual void onDataReceived(std::string data) = 0;
125 
126  void shutdown();
127 
132 
133  virtual void receiveData(char *buffer, int bufferLength);
134 
135  private:
136 
137  int descriptor = -1;
138  std::mutex lock;
139 
140  struct epoll_event event; // Event selection construction structure.
141 
142  //--------------------------------------------------
143  // These are used to schedule the socket activity.
144  //--------------------------------------------------
145 
146  void setRead();
147  void setWrite();
148  void setReadWrite();
149  void resetRead();
150  void resetWrite();;
151  void resetReadWrite(int x);
152  void clear();
153 
154  //-------------------------------------------------------------------------------------
155  // the writeSocket is called when epoll has received a write request for a socket.
156  // Writing data to this socket is queued in the streambuf and permission is requested
157  // to write to the socket. This routine handles the writing of the streambuf data
158  // buffer to the socket.
159  //-------------------------------------------------------------------------------------
160 
161  void writeSocket();
162 
163  // int_type underflow();
164 // int_type uflow();
165 // int_type pbackfail(int_type ch);
166 // streamsize showmanyc();
167 
168  char *buffer; // This is a pointer to the managed buffer space.
169  int length; // This is the length of the buffer.
170 
171 // const char * const begin_;
172 // const char * const end_;
173 // const char * const current_;
174 
175  std::queue<std::string> fifo;
176 
177  bool active = false;
178 
179  };
180 
181 }
182 
183 #endif
184 
Definition: EPoll.h:31
-
virtual void receiveData(char *buffer, int bufferLength)
Definition: Socket.cpp:86
+
1 #ifndef __Socket_h__
2 #define __Socket_h__
3 
4 #include "includes"
5 #include "Object.h"
6 
7 namespace core {
8 
9  class EPoll;
10 
31 
32  class Socket : public std::streambuf,
33  public core::Object {
34 
35  public:
36 
37  Socket(EPoll &ePoll);
38  ~Socket();
39 
41 
42  void shutdown();
43 
44  void setDescriptor(int descriptor);
45 
46  int getDescriptor();
47 
48  class {
49  int value;
50 
51  public:
52  int & operator = (const int &i) { return value = i; }
53  operator int () const { return value; }
54 
55  } bufferSize;
56 
66 
67  void eventReceived(struct epoll_event event);
68 
72 
73  void write(std::string data);
74  void write(char *buffer, int length);
75 
76  void output(std::stringstream &out);
77 
82 
83  virtual void onRegistered();
84 
91 
92  virtual void onUnregistered();
93 
94  void enable(bool mode);
95 
96  protected:
97 
98  EPoll &ePoll; // The EPoll control object.
99 
100  bool shutDown = false;
101 
102  void setBufferSize(int length);
103 
109 
110  virtual void onConnected();
111 
112  virtual void onTLSInit();
113 
117 
118 // virtual void onDisconnected(); ///< Called when socket is closing and no longer ready to communicate.
119 
127 
128  virtual void onDataReceived(std::string data) = 0;
129 
134 
135  virtual void receiveData(char *buffer, int bufferLength);
136 
137  private:
138 
139  int descriptor = -1;
140  std::mutex lock;
141  bool readHangup = false;
142 
143  struct epoll_event event; // Event selection construction structure.
144 
145  //--------------------------------------------------
146  // These are used to schedule the socket activity.
147  //--------------------------------------------------
148 
149  void setRead();
150  void setWrite();
151  void setReadWrite();
152  void resetRead();
153  void resetWrite();;
154  void resetReadWrite();
155  void clear();
156 
157  //-------------------------------------------------------------------------------------
158  // the writeSocket is called when epoll has received a write request for a socket.
159  // Writing data to this socket is queued in the streambuf and permission is requested
160  // to write to the socket. This routine handles the writing of the streambuf data
161  // buffer to the socket.
162  //-------------------------------------------------------------------------------------
163 
164  void writeSocket();
165 
166  // int_type underflow();
167 // int_type uflow();
168 // int_type pbackfail(int_type ch);
169 // streamsize showmanyc();
170 
171  char *buffer; // This is a pointer to the managed buffer space.
172  int length; // This is the length of the buffer.
173 
174 // const char * const begin_;
175 // const char * const end_;
176 // const char * const current_;
177 
178  std::queue<std::string> fifo;
179 
180  bool active = false;
181 
182  };
183 
184 }
185 
186 #endif
187 
Definition: EPoll.h:31
+
virtual void receiveData(char *buffer, int bufferLength)
Definition: Socket.cpp:87
virtual void onUnregistered()
Called when the socket has finished unregistering for the epoll processing.
Definition: Socket.cpp:44
Definition: Command.cpp:4
-
void enable(bool mode)
Enable the socket to read or write based upon buffer.
Definition: Socket.cpp:74
+
void enable(bool mode)
Enable the socket to read or write based upon buffer.
Definition: Socket.cpp:71
virtual void onDataReceived(std::string data)=0
Called when data is received from the socket.
void setDescriptor(int descriptor)
Set the descriptor for the socket.
Definition: Socket.cpp:21
-
void write(std::string data)
Definition: Socket.cpp:131
+
void write(std::string data)
Definition: Socket.cpp:132
Definition: Socket.h:32
void eventReceived(struct epoll_event event)
Parse epoll event and call specified callbacks.
Definition: Socket.cpp:48
int getDescriptor()
Get the descriptor for the socket.
Definition: Socket.cpp:29
virtual void onRegistered()
Called when the socket has finished registering with the epoll processing.
Definition: Socket.cpp:40
Definition: Object.h:8
-
virtual void onConnected()
Called when socket is open and ready to communicate.
Definition: Socket.cpp:118
+
virtual void onConnected()
Called when socket is open and ready to communicate.
Definition: Socket.cpp:119
-
1 #ifndef __TCPServerSocket_h__
2 #define __TCPServerSocket_h__
3 
4 #include "Socket.h"
5 #include "TCPSocket.h"
6 #include "Service.h"
7 
8 namespace core {
9 
21 
22  class TCPServerSocket : public TCPSocket, public Command {
23 
24  public:
25 
34 
35  TCPServerSocket(EPoll &ePoll, Service service, IPAddress address);
36 
40 
42 
43  Service &service;
44 
45  protected:
46 
47 // virtual void init();
48 
56 
57  virtual Session * getSocketAccept();
58 
68 
69  void onDataReceived(std::string data) override;
70 
77 
78  int processCommand(std::string command, Session *session) override;
79 
80  private:
81 
82  Session * accept();
83 
84  };
85 
86 }
87 
88 #endif
Definition: EPoll.h:31
+
1 #ifndef __TCPServerSocket_h__
2 #define __TCPServerSocket_h__
3 
4 #include "Socket.h"
5 #include "TCPSocket.h"
6 #include "Service.h"
7 #include "IPAddressList.h"
8 
9 namespace core {
10 
22 
23  class TCPServerSocket : public TCPSocket, public Command {
24 
25  public:
26 
36 
37  TCPServerSocket(EPoll &ePoll, Service &service, IPAddress address);
38 
42 
44 
49 
51 
57 
65 
66  protected:
67 
77 
78  void onDataReceived(std::string data) override;
79 
86 
87  int processCommand(std::string command, Session *session, std::stringstream &data) override;
88 
89  private:
90 
91  Session * accept();
92 
93  };
94 
95 }
96 
97 #endif
Definition: EPoll.h:31
+
Service & service
Definition: TCPServerSocket.h:50
Definition: Command.cpp:4
Definition: Session.h:22
void onDataReceived(std::string data) override
Definition: TCPServerSocket.cpp:24
Definition: IPAddress.h:9
-
virtual Session * getSocketAccept()
Definition: TCPServerSocket.cpp:38
-
TCPServerSocket(EPoll &ePoll, Service service, IPAddress address)
Definition: TCPServerSocket.cpp:8
+
IPAddressList * whiteList
Definition: TCPServerSocket.h:64
+
TCPServerSocket(EPoll &ePoll, Service &service, IPAddress address)
Definition: TCPServerSocket.cpp:9
+
IPAddressList * blackList
Definition: TCPServerSocket.h:58
Definition: Service.h:20
-
int processCommand(std::string command, Session *session) override
Definition: TCPServerSocket.cpp:42
Definition: Command.h:18
Definition: TCPSocket.h:20
-
Definition: TCPServerSocket.h:22
+
int processCommand(std::string command, Session *session, std::stringstream &data) override
Definition: TCPServerSocket.cpp:50
+
Definition: TCPServerSocket.h:23
+
Definition: IPAddressList.h:9
~TCPServerSocket()
Definition: TCPServerSocket.cpp:20
diff --git a/docs/html/_t_c_p_socket_8h_source.html b/docs/html/_t_c_p_socket_8h_source.html index 718afb2..2f39ab2 100644 --- a/docs/html/_t_c_p_socket_8h_source.html +++ b/docs/html/_t_c_p_socket_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/TCPSocket.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/TCPSocket.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/TCPSocket.h
+
/home/bradarant/barant/ServerCore/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();
26 
27  void connect(IPAddress &address);
28 
29  IPAddress ipAddress;
30 
37 
38  virtual void output(std::stringstream &out);
39 
40  };
41 
42 }
43 
44 #endif
Definition: EPoll.h:31
diff --git a/docs/html/_t_l_s_server_socket_8h_source.html b/docs/html/_t_l_s_server_socket_8h_source.html index c2fdab3..fb60c7c 100644 --- a/docs/html/_t_l_s_server_socket_8h_source.html +++ b/docs/html/_t_l_s_server_socket_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/TLSServerSocket.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/TLSServerSocket.h Source File @@ -59,17 +59,16 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/TLSServerSocket.h
+
/home/bradarant/barant/ServerCore/TLSServerSocket.h
-
1 #ifndef TLSServerSocket_h__
2 #define TLSServerSocket_h__
3 
4 #include "Socket.h"
5 #include "TCPServerSocket.h"
6 #include "Command.h"
7 #include "Session.h"
8 #include "IPAddress.h"
9 #include "Service.h"
10 
11 namespace core {
12 
19 
21 
22  public:
23 
32 
33  TLSServerSocket(EPoll &ePoll, Service service, IPAddress address);
34 
38 
40 
41 // SSL_CTX *ctx;
42 
43  protected:
44  Session * getSocketAccept() override;
45 
46  private:
47  void tlsServerInit();
48 
49  char *sip_cacert = (char *)"/home/barant/testkeys/certs/pbxca.crt";
50  char *sip_cert = (char *)"/home/barant/testkeys/certs/pbxserver.crt";
51  char *sip_key = (char *)"/home/barant/testkeys/certs/pbxserver.key";
52 
53  };
54 
55 }
56 
57 #endif
Definition: EPoll.h:31
+
1 #ifndef TLSServerSocket_h__
2 #define TLSServerSocket_h__
3 
4 #include "Socket.h"
5 #include "TCPServerSocket.h"
6 #include "Command.h"
7 #include "Session.h"
8 #include "IPAddress.h"
9 #include "Service.h"
10 
11 namespace core {
12 
19 
21 
22  public:
23 
32 
33  TLSServerSocket(EPoll &ePoll, Service service, IPAddress address);
34 
38 
40 
41 // SSL_CTX *ctx;
42 
43  private:
44  void tlsServerInit();
45 
46  char *sip_cacert = (char *)"/home/barant/testkeys/certs/pbxca.crt";
47  char *sip_cert = (char *)"/home/barant/testkeys/certs/pbxserver.crt";
48  char *sip_key = (char *)"/home/barant/testkeys/certs/pbxserver.key";
49 
50  };
51 
52 }
53 
54 #endif
Definition: EPoll.h:31
+
Service & service
Definition: TCPServerSocket.h:50
Definition: Command.cpp:4
-
Definition: Session.h:22
Definition: IPAddress.h:9
Definition: Service.h:20
~TLSServerSocket()
Definition: TLSServerSocket.cpp:43
-
Session * getSocketAccept() override
Definition: TLSServerSocket.cpp:62
-
Definition: TCPServerSocket.h:22
+
Definition: TCPServerSocket.h:23
TLSServerSocket(EPoll &ePoll, Service service, IPAddress address)
Definition: TLSServerSocket.cpp:19
Definition: TLSServerSocket.h:20
diff --git a/docs/html/_t_l_s_service_8h_source.html b/docs/html/_t_l_s_service_8h_source.html index 26cee6b..ddefb99 100644 --- a/docs/html/_t_l_s_service_8h_source.html +++ b/docs/html/_t_l_s_service_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/TLSService.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/TLSService.h Source File @@ -59,12 +59,11 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/TLSService.h
+
/home/bradarant/barant/ServerCore/TLSService.h
-
1 #ifndef __TLSService_h__
2 #define __TLSService_h__
3 
4 #include "includes"
5 #include "Service.h"
6 #include "TLSServerSocket.h"
7 
8 namespace core {
9 
10  class TLSService : public Service {
11 
12  public:
14  SSL_CTX *ctx;
15 
16 
17  };
18 
19 }
20 
21 #endif
Definition: TLSService.h:10
+
1 #ifndef __TLSService_h__
2 #define __TLSService_h__
3 
4 #include "includes"
5 #include "Service.h"
6 #include "TLSServerSocket.h"
7 
8 namespace core {
9 
10  class TLSService : public Service {
11 
12  public:
13  TLSService(TLSServerSocket &server);
14  SSL_CTX *ctx;
15 
16 
17  };
18 
19 }
20 
21 #endif
Definition: TLSService.h:10
Definition: Command.cpp:4
-
TCPServerSocket * server
Definition: Service.h:49
Definition: Service.h:20
Definition: TLSServerSocket.h:20
diff --git a/docs/html/_t_l_s_session_8h_source.html b/docs/html/_t_l_s_session_8h_source.html index 26033f5..ba3e7eb 100644 --- a/docs/html/_t_l_s_session_8h_source.html +++ b/docs/html/_t_l_s_session_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/TLSSession.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/TLSSession.h Source File @@ -59,10 +59,10 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/TLSSession.h
+
/home/bradarant/barant/ServerCore/TLSSession.h
-
1 #ifndef __TLSSession_h__
2 #define __TLSSession_h__
3 
4 #include "includes"
5 #include "Session.h"
6 #include "TLSServerSocket.h"
7 #include <openssl/ssl.h>
8 
9 namespace core {
10 
11  class TLSServerSocket;
12 
22 
23  class TLSSession : public Session {
24 
25  public:
26 
27  TLSSession(EPoll &ePoll, Service &service);
28  ~TLSSession();
29 
36 
37  virtual void output(std::stringstream &out);
38  virtual void protocol(std::string data) override;
39 
40  protected:
41  void init() override;
42  void receiveData(char *buffer, int bufferLength) override;
43 
44  private:
45  bool initialized = false;
46 // TLSServerSocket &server;
47  SSL *ssl;
48 
49  };
50 
51 }
52 
53 #endif
Definition: EPoll.h:31
+
1 #ifndef __TLSSession_h__
2 #define __TLSSession_h__
3 
4 #include "includes"
5 #include "Session.h"
6 #include "TLSServerSocket.h"
7 #include <openssl/ssl.h>
8 
9 namespace core {
10 
11  class TLSServerSocket;
12 
22 
23  class TLSSession : public Session {
24 
25  public:
26 
27  TLSSession(EPoll &ePoll, Service &service);
28  ~TLSSession();
29 
36 
37  virtual void output(std::stringstream &out);
38  virtual void protocol(std::string data) override;
39 
40  protected:
41  void receiveData(char *buffer, int bufferLength) override;
42 
43  private:
44  bool initialized = false;
45  SSL *ssl;
46 
47  };
48 
49 }
50 
51 #endif
Definition: EPoll.h:31
Definition: Command.cpp:4
Definition: Session.h:22
virtual void protocol(std::string data) override
Definition: TLSSession.cpp:83
diff --git a/docs/html/_terminal_session_8h_source.html b/docs/html/_terminal_session_8h_source.html index 3f2c81f..2373377 100644 --- a/docs/html/_terminal_session_8h_source.html +++ b/docs/html/_terminal_session_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/TerminalSession.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/TerminalSession.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/TerminalSession.h
+
/home/bradarant/barant/ServerCore/TerminalSession.h
1 #ifndef __Terminal_h__
2 #define __Terminal_h__
3 
4 #include "includes"
5 #include "Session.h"
6 #include "TCPServerSocket.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 Session {
31 
32  public:
33  TerminalSession(EPoll &ePoll, Service &service);
34  ~TerminalSession();
35 
36  int getLines();
37 
38  void clear();
39  void clearEOL();
40  void setCursorLocation(int x, int y);
41  void setColor(int color);
42  void setBackColor(int color);
43  void saveCursor();
44  void restoreCursor();
45  void NextLine(int lines);
46  void PreviousLine(int lines);
47  void scrollArea(int start, int end);
48 
49  };
50 
51 }
52 
53 #endif
Definition: EPoll.h:31
diff --git a/docs/html/_thread_8h_source.html b/docs/html/_thread_8h_source.html index d6e5d19..e4c3e92 100644 --- a/docs/html/_thread_8h_source.html +++ b/docs/html/_thread_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Thread.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Thread.h Source File @@ -59,12 +59,11 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Thread.h
+
/home/bradarant/barant/ServerCore/Thread.h
-
1 #ifndef __Thread_h__
2 #define __Thread_h__
3 
4 #include "includes"
5 #include "Log.h"
6 #include "Object.h"
7 #include "Session.h"
8 
9 namespace core {
10 
11  class EPoll;
12 
20 
21  class Thread : public Object {
22 
23  public:
24  Thread(EPoll &ePoll);
25  ~Thread();
26 
30 
31  void start();
32  void join();
33  std::string getStatus();
34  pid_t getThreadId();
35  int getCount();
36  void output(Session *session);
37 
38  private:
39  EPoll &ePoll; // The EPoll control object.
40  std::string status;
41  int count;
42  std::thread *_thread;
43  void print_thread_start_log();
44  pid_t threadId;
45  void run();
46 
47  };
48 
49 }
50 
51 #endif
Definition: EPoll.h:31
+
1 #ifndef __Thread_h__
2 #define __Thread_h__
3 
4 #include "includes"
5 #include "Log.h"
6 #include "Object.h"
7 #include "Session.h"
8 
9 namespace core {
10 
11  class EPoll;
12 
20 
21  class Thread : public Object {
22 
23  public:
24  Thread(EPoll &ePoll);
25  ~Thread();
26 
30 
31  void start();
32  void join();
33  std::string getStatus();
34  pid_t getThreadId();
35  int getCount();
36  void output(std::stringstream &data);
37 
38  private:
39  EPoll &ePoll; // The EPoll control object.
40  std::string status;
41  int count;
42  std::thread *_thread;
43  void print_thread_start_log();
44  pid_t threadId;
45  void run();
46 
47  };
48 
49 }
50 
51 #endif
Definition: EPoll.h:31
Definition: Command.cpp:4
-
Definition: Session.h:22
Definition: Thread.h:21
void start()
Definition: Thread.cpp:10
Definition: Object.h:8
diff --git a/docs/html/_timer_8h_source.html b/docs/html/_timer_8h_source.html index 10fe635..c8bc24f 100644 --- a/docs/html/_timer_8h_source.html +++ b/docs/html/_timer_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/Timer.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/Timer.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/Timer.h
+
/home/bradarant/barant/ServerCore/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
diff --git a/docs/html/_u_d_p_server_socket_8h_source.html b/docs/html/_u_d_p_server_socket_8h_source.html index 8da133e..7f6ad7b 100644 --- a/docs/html/_u_d_p_server_socket_8h_source.html +++ b/docs/html/_u_d_p_server_socket_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/UDPServerSocket.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/UDPServerSocket.h Source File @@ -59,12 +59,11 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/UDPServerSocket.h
+
/home/bradarant/barant/ServerCore/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(Session *session);
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: EPoll.h:31
+
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: EPoll.h:31
Definition: Command.cpp:4
-
Definition: Session.h:22
Definition: UDPSocket.h:9
Definition: UDPServerSocket.h:17
void onDataReceived(std::string data) override
Called when data is received from the socket.
Definition: UDPServerSocket.cpp:35
diff --git a/docs/html/_u_d_p_socket_8h_source.html b/docs/html/_u_d_p_socket_8h_source.html index dea0949..6679074 100644 --- a/docs/html/_u_d_p_socket_8h_source.html +++ b/docs/html/_u_d_p_socket_8h_source.html @@ -5,7 +5,7 @@ -BMA Server Framework: /home/barant/Development/BMA/server_core/ServerCore/UDPSocket.h Source File +BMA Server Framework: /home/bradarant/barant/ServerCore/UDPSocket.h Source File @@ -59,7 +59,7 @@ $(function() {
-
/home/barant/Development/BMA/server_core/ServerCore/UDPSocket.h
+
/home/bradarant/barant/ServerCore/UDPSocket.h
1 #ifndef UDPSocket_h__
2 #define UDPSocket_h__
3 
4 #include "Socket.h"
5 #include "Session.h"
6 
7 namespace core {
8 
9  class UDPSocket : public Socket {
10 
11  public:
12  UDPSocket(EPoll &ePoll);
13  ~UDPSocket();
14 
15 // virtual int open(string address, short int port);
16 // virtual void write(istream data);
17 
18 };
19 
20 }
21 
22 #endif
Definition: EPoll.h:31
diff --git a/docs/html/annotated.html b/docs/html/annotated.html index e932de3..ef6c5de 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -64,33 +64,30 @@ $(function() {
Here are the classes, structs, unions and interfaces with brief descriptions:
diff --git a/docs/html/classcore_1_1_command-members.html b/docs/html/classcore_1_1_command-members.html index 42cc53a..55126de 100644 --- a/docs/html/classcore_1_1_command-members.html +++ b/docs/html/classcore_1_1_command-members.html @@ -58,7 +58,7 @@ $(function() {
@@ -72,7 +72,7 @@ $(function() { check(std::string request)core::Commandvirtual getName() (defined in core::Command)core::Command output(Session *session)core::Commandvirtual - processCommand(std::string request, Session *session)=0core::Commandpure virtual + processCommand(std::string request, Session *session, std::stringstream &data)core::Commandvirtual setName(std::string name)core::Command tag (defined in core::Object)core::Object
diff --git a/docs/html/classcore_1_1_command.html b/docs/html/classcore_1_1_command.html index 59fe124..ea99e75 100644 --- a/docs/html/classcore_1_1_command.html +++ b/docs/html/classcore_1_1_command.html @@ -58,7 +58,7 @@ $(function() {
@@ -66,7 +66,7 @@ $(function() { Public Member Functions | List of all members
-
core::Command Class Referenceabstract
+
core::Command Class Reference
@@ -76,13 +76,16 @@ Inheritance diagram for core::Command:
Inheritance graph
- - - - - - - + + + + + + + + + +
[legend]
@@ -98,8 +101,8 @@ Collaboration diagram for core::Command:
Public Member Functions virtual bool check (std::string request)   -virtual int processCommand (std::string request, Session *session)=0 -  +virtual int processCommand (std::string request, Session *session, std::stringstream &data) +  virtual void output (Session *session)   void setName (std::string name) @@ -188,12 +191,12 @@ std::string tag -

Reimplemented in core::ConsoleServer.

+

Reimplemented in core::Service.

- -

◆ processCommand()

+ +

◆ processCommand()

@@ -202,7 +205,7 @@ std::string tag - + @@ -211,7 +214,13 @@ std::string  - + + + + + + + @@ -221,7 +230,7 @@ std::string  +virtual
virtual int core::Command::processCommand int core::Command::processCommand ( std::string  request, tag Sessionsession session,
std::stringstream & data 
tag -pure virtual
@@ -235,7 +244,7 @@ std::string tag
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
-

Implemented in core::EPoll, core::TCPServerSocket, and core::CommandList.

+

Reimplemented in core::EPoll, core::TCPServerSocket, and core::CommandList.

@@ -265,8 +274,8 @@ std::string tag

The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/Command.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/Command.cpp
  • +
  • /home/bradarant/barant/ServerCore/Command.h
  • +
  • /home/bradarant/barant/ServerCore/Command.cpp
diff --git a/docs/html/classcore_1_1_command__coll__graph.md5 b/docs/html/classcore_1_1_command__coll__graph.md5 index 4956832..c2dde0a 100644 --- a/docs/html/classcore_1_1_command__coll__graph.md5 +++ b/docs/html/classcore_1_1_command__coll__graph.md5 @@ -1 +1 @@ -fb20e2e2818e0deb25bd92d98bab297f \ No newline at end of file +016a0812a170ebbf263addd82e03d7ee \ No newline at end of file diff --git a/docs/html/classcore_1_1_command__inherit__graph.map b/docs/html/classcore_1_1_command__inherit__graph.map index f8db9bf..947620a 100644 --- a/docs/html/classcore_1_1_command__inherit__graph.map +++ b/docs/html/classcore_1_1_command__inherit__graph.map @@ -1,9 +1,12 @@ - - - - - - - + + + + + + + + + + diff --git a/docs/html/classcore_1_1_command__inherit__graph.md5 b/docs/html/classcore_1_1_command__inherit__graph.md5 index 2bbc839..cc5c036 100644 --- a/docs/html/classcore_1_1_command__inherit__graph.md5 +++ b/docs/html/classcore_1_1_command__inherit__graph.md5 @@ -1 +1 @@ -b6b680faa1173f2504c2ffed3daa67a1 \ No newline at end of file +145e5dc2c911ca7678658f103e9d526e \ No newline at end of file diff --git a/docs/html/classcore_1_1_command__inherit__graph.png b/docs/html/classcore_1_1_command__inherit__graph.png index 0773c0cbf071f46c150b785f832cc6c4000a9dc3..25623ca59df41b6a7547823ecf8328b333044be9 100644 GIT binary patch literal 21701 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 literal 17308 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 +
@@ -72,14 +72,15 @@ $(function() { add(Command &command, std::string name="")core::CommandList check(std::string request)core::Commandvirtual CommandList()core::CommandList - getName() (defined in core::Command)core::Command - output(Session *session)core::Commandvirtual - processCommand(std::string request, Session *session) overridecore::CommandListvirtual - processRequest(std::string request, Session *session) (defined in core::CommandList)core::CommandList - remove(Command &command) (defined in core::CommandList)core::CommandList - setName(std::string name)core::Command - tag (defined in core::Object)core::Object - ~CommandList()core::CommandList + commands (defined in core::CommandList)core::CommandListprotected + getName() (defined in core::Command)core::Command + output(Session *session)core::Commandvirtual + processCommand(std::string request, Session *session, std::stringstream &data) overridecore::CommandListvirtual + processRequest(std::string request, Session *session, std::stringstream &data) (defined in core::CommandList)core::CommandList + remove(Command &command) (defined in core::CommandList)core::CommandList + setName(std::string name)core::Command + tag (defined in core::Object)core::Object + ~CommandList()core::CommandList
core::CommandList Class Reference
@@ -101,11 +102,11 @@ Public Member Functions void remove (Command &command)   - -bool processRequest (std::string request, Session *session) -  -int processCommand (std::string request, Session *session) override -  + +bool processRequest (std::string request, Session *session, std::stringstream &data) +  +int processCommand (std::string request, Session *session, std::stringstream &data) override +  - Public Member Functions inherited from core::Command virtual bool check (std::string request)   @@ -117,6 +118,12 @@ bool processRequest (s std::string getName ()   + + + +

+Protected Attributes

+std::vector< Command * > commands
 
@@ -197,8 +204,8 @@ std::string  - -

◆ processCommand()

+ +

◆ processCommand()

@@ -216,7 +223,13 @@ std::string 
- + + + + + + + @@ -240,13 +253,13 @@ std::string 
Returns
Returns 0 if execution of the command was successful. Otherwise returns a non-zero value indicating an error condition.
-

Implements core::Command.

+

Reimplemented from core::Command.


The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/CommandList.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/CommandList.cpp
  • +
  • /home/bradarant/barant/ServerCore/CommandList.h
  • +
  • /home/bradarant/barant/ServerCore/CommandList.cpp
diff --git a/docs/html/classcore_1_1_console_server-members.html b/docs/html/classcore_1_1_console_server-members.html index b4dfaeb..47e9bae 100644 --- a/docs/html/classcore_1_1_console_server-members.html +++ b/docs/html/classcore_1_1_console_server-members.html @@ -58,7 +58,7 @@ $(function() {
@@ -69,42 +69,42 @@ $(function() {

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

Additional Inherited Members

- Public Attributes inherited from core::Object
tag tag Sessionsession session,
std::stringstream & data 
tag
- - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - + - - - + + + diff --git a/docs/html/classcore_1_1_console_server.html b/docs/html/classcore_1_1_console_server.html index 0ade2e6..a25474d 100644 --- a/docs/html/classcore_1_1_console_server.html +++ b/docs/html/classcore_1_1_console_server.html @@ -58,13 +58,12 @@ $(function() {
core::ConsoleServer Class Reference
@@ -87,33 +86,30 @@ Collaboration diagram for core::ConsoleServer:
Collaboration graph
- - - - - - - - - + + + + + + + + + +
[legend]
bufferSize (defined in core::Socket)core::Socket
check(std::string request)core::Commandvirtual
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleServer(EPoll &ePoll, Service service, IPAddress address) (defined in core::ConsoleServer)core::ConsoleServer
enable(bool mode)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getDescriptor()core::Socket
getName() (defined in core::Command)core::Command
getSocketAccept() overridecore::ConsoleServerprotectedvirtual
blackListcore::TCPServerSocket
bufferSize (defined in core::Socket)core::Socket
check(std::string request)core::Commandvirtual
connect(IPAddress &address) (defined in core::TCPSocket)core::TCPSocket
ConsoleServer(EPoll &ePoll, Service &service, IPAddress address) (defined in core::ConsoleServer)core::ConsoleServer
enable(bool mode)core::Socket
ePoll (defined in core::Socket)core::Socketprotected
eventReceived(struct epoll_event event)core::Socket
getDescriptor()core::Socket
getName() (defined in core::Command)core::Command
ipAddress (defined in core::TCPSocket)core::TCPSocket
name (defined in core::Object)core::Object
onConnected()core::Socketprotectedvirtual
onDataReceived(std::string data) overridecore::TCPServerSocketprotectedvirtual
onRegistered()core::Socketvirtual
onTLSInit() (defined in core::Socket)core::Socketprotectedvirtual
onUnregistered()core::Socketvirtual
output(Session *session) overridecore::ConsoleServervirtual
core::TCPServerSocket::output(std::stringstream &out)core::TCPSocketvirtual
processCommand(std::string command, Session *session) overridecore::TCPServerSocketprotectedvirtual
receiveData(char *buffer, int bufferLength)core::Socketprotectedvirtual
sendToConnectedConsoles(std::string out) (defined in core::ConsoleServer)core::ConsoleServer
service (defined in core::TCPServerSocket)core::TCPServerSocket
logSend(std::string out) override (defined in core::ConsoleServer)core::ConsoleServer
name (defined in core::Object)core::Object
onConnected()core::Socketprotectedvirtual
onDataReceived(std::string data) overridecore::TCPServerSocketprotectedvirtual
onRegistered()core::Socketvirtual
onTLSInit() (defined in core::Socket)core::Socketprotectedvirtual
onUnregistered()core::Socketvirtual
core::output(std::stringstream &out)core::TCPSocketvirtual
core::Command::output(Session *session)core::Commandvirtual
processCommand(std::string command, Session *session, std::stringstream &data) overridecore::TCPServerSocketprotectedvirtual
receiveData(char *buffer, int bufferLength)core::Socketprotectedvirtual
servicecore::TCPServerSocket
setBufferSize(int length) (defined in core::Socket)core::Socketprotected
setDescriptor(int descriptor)core::Socket
setName(std::string name)core::Command
shutDown (defined in core::Socket)core::Socketprotected
shutdown() (defined in core::Socket)core::Socketprotected
shutdown() (defined in core::Socket)core::Socket
shutDown (defined in core::Socket)core::Socketprotected
Socket(EPoll &ePoll) (defined in core::Socket)core::Socket
tag (defined in core::Object)core::Object
tag (defined in core::Object)core::Object
TCPServerSocket(EPoll &ePoll, Service service, IPAddress address)core::TCPServerSocket
TCPServerSocket(EPoll &ePoll, Service &service, IPAddress address)core::TCPServerSocket
TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~ConsoleServer() (defined in core::ConsoleServer)core::ConsoleServer
whiteListcore::TCPServerSocket
write(std::string data)core::Socket
write(char *buffer, int length) (defined in core::Socket)core::Socket
~Socket() (defined in core::Socket)core::Socket
~TCPServerSocket()core::TCPServerSocket
~TCPSocket() (defined in core::TCPSocket)core::TCPSocket
- - - - - - - + + + + - - + + @@ -129,6 +125,9 @@ void  + + @@ -161,43 +160,23 @@ void  + +

Public Member Functions

ConsoleServer (EPoll &ePoll, Service service, IPAddress address)
 
-void sendToConnectedConsoles (std::string out)
 
-void output (Session *session) override
 Output the consoles array to the console.
 
ConsoleServer (EPoll &ePoll, Service &service, IPAddress address)
 
+void logSend (std::string out) override
 
- Public Member Functions inherited from core::TCPServerSocket
 TCPServerSocket (EPoll &ePoll, Service service, IPAddress address)
 
 TCPServerSocket (EPoll &ePoll, Service &service, IPAddress address)
 
 ~TCPServerSocket ()
 
- Public Member Functions inherited from core::TCPSocket
connect (  Socket (EPoll &ePoll)
 
+void shutdown ()
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket.
- Public Member Functions inherited from core::Command
virtual bool check (std::string request)
 
virtual void output (Session *session)
 
void setName (std::string name)
 
std::string getName ()
 
- - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

SessiongetSocketAccept () override
 
- Protected Member Functions inherited from core::TCPServerSocket
void onDataReceived (std::string data) override
 
int processCommand (std::string command, Session *session) override
 
- Protected Member Functions inherited from core::Socket
-void setBufferSize (int length)
 
virtual void onConnected ()
 Called when socket is open and ready to communicate. More...
 
-virtual void onTLSInit ()
 
-void shutdown ()
 
virtual void receiveData (char *buffer, int bufferLength)
 
- + + + + + @@ -214,6 +193,23 @@ std::string < + + + + + + + + + + + + + + + @@ -222,38 +218,9 @@ std::string 

Additional Inherited Members

- Public Attributes inherited from core::TCPServerSocket
-Serviceservice
Serviceservice
 
IPAddressListblackList
 
IPAddressListwhiteList
 
- Public Attributes inherited from core::TCPSocket
IPAddress ipAddress
name
std::string tag
 
- Protected Member Functions inherited from core::TCPServerSocket
void onDataReceived (std::string data) override
 
int processCommand (std::string command, Session *session, std::stringstream &data) override
 
- Protected Member Functions inherited from core::Socket
+void setBufferSize (int length)
 
virtual void onConnected ()
 Called when socket is open and ready to communicate. More...
 
+virtual void onTLSInit ()
 
virtual void receiveData (char *buffer, int bufferLength)
 
- Protected Attributes inherited from core::Socket
EPollePoll
tagshutDown = false
 
-

Member Function Documentation

- -

◆ getSocketAccept()

- -
-
- - - - - -
- - - - - - - -
Session * core::ConsoleServer::getSocketAccept ()
-
-overrideprotectedvirtual
-
-

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 BMASession provides the mechanism where the server can select the protocol dialog for the desired service.

- -

Reimplemented from core::TCPServerSocket.

- -
-

The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/ConsoleServer.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/ConsoleServer.cpp
  • +
  • /home/bradarant/barant/ServerCore/ConsoleServer.h
  • +
  • /home/bradarant/barant/ServerCore/ConsoleServer.cpp
diff --git a/docs/html/classcore_1_1_console_server__coll__graph.map b/docs/html/classcore_1_1_console_server__coll__graph.map index 05a8b38..f7260ab 100644 --- a/docs/html/classcore_1_1_console_server__coll__graph.map +++ b/docs/html/classcore_1_1_console_server__coll__graph.map @@ -1,11 +1,12 @@ - - - - - - - - - + + + + + + + + + + diff --git a/docs/html/classcore_1_1_console_server__coll__graph.md5 b/docs/html/classcore_1_1_console_server__coll__graph.md5 index 5abda55..15b561f 100644 --- a/docs/html/classcore_1_1_console_server__coll__graph.md5 +++ b/docs/html/classcore_1_1_console_server__coll__graph.md5 @@ -1 +1 @@ -18ad3665456c27703f94154d8cffe9fd \ No newline at end of file +490c3ba765c082348545d0ef7cd4932f \ No newline at end of file diff --git a/docs/html/classcore_1_1_console_server__coll__graph.png b/docs/html/classcore_1_1_console_server__coll__graph.png index 38eef612e665f53dd27a432afc56a42e97f7c9da..4d1fa7382ed4ab99c24ca8da1a96ffd70b6e38e2 100644 GIT binary patch literal 52761 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≶Ut8TTEL|(4 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 + + + + + + +BMA Server Framework: Member List + + + + + + + + + + +
+
+
core::ConsoleService Member List
+
+
+ +

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

+ + + + + + + + + + + + + +
check(std::string request)core::Commandvirtual
commandscore::Service
getName() (defined in core::Command)core::Command
getSocketAccept(EPoll &ePoll) overridecore::ConsoleServicevirtual
output(Session *session) overridecore::Servicevirtual
processCommand(std::string request, Session *session, std::stringstream &data)core::Commandvirtual
removeFromSessionList(Session *session) (defined in core::Service)core::Service
Service()core::Service
sessionErrorHandler(std::string errorString, Session *session) (defined in core::Service)core::Servicevirtual
sessionscore::Service
setName(std::string name)core::Command
tag (defined in core::Object)core::Object
+ + + + diff --git a/docs/html/classcore_1_1_console_service.html b/docs/html/classcore_1_1_console_service.html new file mode 100644 index 0000000..bfe0aff --- /dev/null +++ b/docs/html/classcore_1_1_console_service.html @@ -0,0 +1,179 @@ + + + + + + + +BMA Server Framework: core::ConsoleService Class Reference + + + + + + + + + +
+
+ + + + + + +
+
BMA Server Framework +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
core::ConsoleService Class Reference
+
+
+
+Inheritance diagram for core::ConsoleService:
+
+
Inheritance graph
+ + + + + +
[legend]
+
+Collaboration diagram for core::ConsoleService:
+
+
Collaboration graph
+ + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

SessiongetSocketAccept (EPoll &ePoll) override
 
- Public Member Functions inherited from core::Service
 Service ()
 
+void removeFromSessionList (Session *session)
 
+virtual void sessionErrorHandler (std::string errorString, Session *session)
 
+void output (Session *session) override
 Output the consoles array to the console.
 
- Public Member Functions inherited from core::Command
virtual bool check (std::string request)
 
virtual int processCommand (std::string request, Session *session, std::stringstream &data)
 
void setName (std::string name)
 
+std::string getName ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from core::Service
std::vector< Session * > sessions
 
CommandList commands
 
- Public Attributes inherited from core::Object
+std::string name
 
+std::string tag
 
+

Member Function Documentation

+ +

◆ getSocketAccept()

+ +
+
+ + + + + +
+ + + + + + + + +
Session * core::ConsoleService::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::Service.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/bradarant/barant/ServerCore/ConsoleService.h
  • +
  • /home/bradarant/barant/ServerCore/ConsoleService.cpp
  • +
+
+ + + + diff --git a/docs/html/classcore_1_1_console_service__coll__graph.map b/docs/html/classcore_1_1_console_service__coll__graph.map new file mode 100644 index 0000000..3edbf37 --- /dev/null +++ b/docs/html/classcore_1_1_console_service__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/html/classcore_1_1_console_service__coll__graph.md5 b/docs/html/classcore_1_1_console_service__coll__graph.md5 new file mode 100644 index 0000000..77aae1a --- /dev/null +++ b/docs/html/classcore_1_1_console_service__coll__graph.md5 @@ -0,0 +1 @@ +340db7c5e17ca89ac92788f00eaef604 \ No newline at end of file diff --git a/docs/html/classcore_1_1_console_service__coll__graph.png b/docs/html/classcore_1_1_console_service__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..5a83ccebb70e2dc942a5cc3db1f7699ccd833589 GIT binary patch literal 14610 zcmc(GbyQqIv*!>zI3&1h2=4A4EcgVM;1DFZI}93v2lwEEyIYXp7Tn$4*_-#h@9o?7 zz1?$m|JgHh&Yg3oZ{M!!?y6r^{TlL7Ne1mT;cE~GgeE5|sR~>VK_D0tBn04>u=q|H za6vGZmyra${QYFL7RG@< zboH@(h#_Su#eC$@@kDS^N>b7=5;*|80MFVt)$ebrAj%7kL`FhPWP^#-oQZ5{X?bt0 zsSuo+O7!^jRI7);K$n0!mz72Cb=rw&G4)f$^mkQXv)frtoxI^z>BK7(kdKcKzMz}E z=}49IhQ8ue_rgEBTkBw_B_{^=!3DwU{3x{`em3G1oaYL5Pxr8x8G+5kC6;#5Jbp+K z!?)qb7fX>+(3$XzOn^bGqqa<{{MrA2?>Y4*BvMnoo*G{T;*EPgM) z9KYU%Sa-$Lz-!ybYy1%9aA%A|{oIJeNM-fePWV=ekHq}tJhb}D@z6EXsnLxRbnltX zOAABv*CzIlZ*$oT<}N2-8C-o~Pe|#6%x5mqY29u!sg2c}r}6nFW`#1{v2GDeEQ0qZ zg`rd(?TFf(oc@pm6pwpENP81tNyE;fTabE_#l8lmAXYk+ z5VZYqCESi{#!oi@ly}iv?*oKx-T@Lh7 zRMby!IAvnHEDSy}n~@^Z>cT+>uz zz;@0z&StDcPT!I;xe2{1xrHY|PFA+gzvL)&BERn1BFzg9@&WXn7FwUM8BG+^u&V~P zq4JOU@IbkNC99gK8Z?C-&F$*2XT>kw*xs6`*zSVtN+gh-!fCD>T41+7Ug;XL6p`yz zz#p@2HC__6({zk)uz1d1kn_O>!lbZ%$}1f!ASuh&PPk&*5X1?>oDIyk2bf<-@LB}md zc}A!-1rJGn6vl!UhTJ#kG}LZ?Ai5={A6N5d#r+1JD_k%alXBrmHSZgif%EOm{=TjAn!dz*lb^>EJxgiwLC1HjB zMOi(5@isSOzRWipD-5ggj%2IU1+^rI!0wl(!3WEmU5u6E&BZMAY0I%R!GcG*o5`QM zN3AvXuP;X}OEmQa_Ib_F^psS#TeRFBa|%Wya{@19K5A*{u$S11&oBuWWM5pX+%imC z3g;Wt-F-9<_4sVOC%N?a`Av$xq-XE6>csir$yl*)-Dj(_l=)0&(&dmcA4$oCud|Y| zvO#`+em|Vu^~^94W-)qJZ$;e_XW%P9?n$!)pQ{El`ARS~s^oQr-o+AP`O_Jb2nz%! z5TV<^t1LdkkhVSto%M|Gf^U0J`Ub;%9~r{(rWu3!h9_JIN`I_zF`B&U`k&@l6KyoJ zeZ~bj66WV-x>9y_b^>3sV{AfxPq|(UtCNMAZBkC<+#I+K!--3+h)xM9*54mze`+rz zDCmkDd)ag|BO}9WU6M=H(t7U0z1}<5?$CF{i9kv^pZ6CDO98 zydd&-yH$xLMv<^OIjgHgcQ3wc;&9);tJZ?iOo->O;o^_V=$>I73p9Yak(l+dA#I#K9l{fQP;mi^ca`pXsrX+=w!KMY&^E* ziXRITE7s5RCc`58eIGAW>NV;k;-5d^lq-|tv4$(cf19s%;Hu6?=O5a@f3EU{^W4V8 z;YPQi@VwCvF8?xMZqwJ>+EHsgo}i9pVrOrt@h%}~skuU&SxZz)OZ!knG^o|H!m3$U z6ZT9fU0u-g`gI^8o?xd4J3E$4%yL%`L=UCq%NPA-c6k$2Q5t=HI(1;|{aOaLV!Dg$ zwn<(1t`GtoZ1n$i_5f%4pS<5tvY)*n0S@N>heni?l4?ZF zbC{QXUkq%MRM!9>zqY+yaKsKqUbaLdA|wotz+*|&V$x7uYTDzXEEN+I3xhz$fff2@ z!qs*)5JT8cftDdgI~f-uNokwZG1c*}?mn*%AyHqqH$<*=Y&lyvGHSnbrdGrZE@&;G z4uyf`pZdH~n81ODnF(f5J1|Rm;kWNqhanTeFjkf|ap8b)OWxm{upd6r&28XtyJdT>})NqxE z%+Dov{ThbR^LAO+_xK_Z+#Fck9gcK};S)s>_plYp6-vrKj4U>1#xnJ`L~RtrxO^PJ z9F6;P;U`I-OKTPyDK5Zuac8hL4nMm*S{j>`sG6x?`qx@y`Oq@PYmt3aYDkqkt1UAY=2Q(W9KlP*teUstH??HUMkTvzw@pN%(!O_&L?4m<(B>Rajglm(P6B_+>goQxNc zJ*Y?1YxnK@VD3xBMCR{vYCPnN`a8n-6$B(ziUyoq7i6oZi==Fy97DS6qRE>>Hg>_Z zSeEQxW&*XH_Pv(~4-qt_7nFM^lA6i%M3L*OPXTGOm$*rqdjTUS#v;4heX<9?+ zyBKM*F);7*UhmiY{OCwSLXCD2TLva*{w^Z8aqOl_Bg%G>}eZ4%pwDeyro6i2{lOwmPliI{{ z`vvDsJ%etKsh?pVXx&qP{{vfmarp-FV@F0F;I=S(Fss(KvX1E+IFnU>^^McNwT!yG z3_usBm9e7K*kZtU#e~Ed2m4zdV?Mei4yW}S|5VrNWe<5DZ~A-Jv>>6;pO+qzwMI7a z3x&856u8qNDz*tm(;?F&TIwhvEHNg_t4j6`REXw`>UDW==|nbu%W9x zZTS%Q#@tsN&T=Z%+>F=XykRav%7fc7QO!q4y340Cv!(pUAg43*?br-+;N|YE150@Q z5!7agJs+4$&E0=`&o8z+evZ`}SxG2TW-32Dd5;5yE^{V8|M-C_1e99v6l4+$k&WaH z30C6?2#FT;OsAYb|38D1C+;`+i8%?Ql&CF2SjV}EM!pvKU3S5ubrzh`rEbyw7qq!i z>fIiLD5m5>YN$nUAM>O(dRPwZX)n0+Tbb8Hbc+E8mjg^6nZ{*XJ3_`+e!h0;UrunC7G;JkaTu z^R%BVwYaD#2myn%^hgzqe0vG{8@l~(oR=nAh5nf{OR1IHPPL+mi3t`yKA5yt{gdal zp!8@)l%ZkPpMK{x@mD{%I6{Jh#o#sitbVwnANEGztsNcd0WDQ1!C)`Q(}OEH(@}x6 z+WrAgV38%+XVYFPrXyN*c1qEBJu&C1AFJsjPQ}ROy6%x}-db7i7a_L?6?=rrCwq59 z%(`JgV8(#*@;9&uHN8+HvMk$$zPBHlN{#_!^F}6mF$53@3?}aCTIbC0Srb>5r8Wkf ze`KW1ug^(i^(T%EjZ7VO?dctph11)0cBR<%hVod%UL=xmBqYesw;Og*h4uCIJ;`h& z6bak9>*Ps0y5cw_>5)k!3Ic#D+ zMy~8UiV$P0-iD*xA{!Vc{MH4xYx9NFpzS_^+kTbjSgGW@c7fX}iF?d!RLC%ar^Lz-bP* zr%YkJb~i@(s%!xP&-7}kwhP>1FVD8;uA)WQ5mMhi(9AV{72KcZc(3+QdJh1^4FD`k z9g`1^Xc`VBqBJg~|40?MQQO^bBLU~6*)HXD4TDM1ZLsv)6#Db!F|yThm%P32FW-)2 zps}be;NnW3ULENh9x-7FSjPG^+2HPwZDr+fCr<=+SNAaxnk7c_eGQ7 z4J|(3o~4gNvymk!v3iWL`l645AUI2BJDCRAGBJtx9A-G&cEVcQ*PpI>{h7M5C8X@y zw_}Ii@;YwfW(YAXeEQJTq{;|p#gq&hNl#}rS89Kp)hZ_rA>eopJZWEv`c!@Wra94^ z3kR|8+pq$kQhL+F%qJOa2)=3&TvHSF?*51DkMAlyZxYx?`@6g0acCP%mYT-D$u4`L zQN|+S(7E*f;L3%X$h?z|n(s)usr2$HP@~YQkT&W=B>*Ox92;V2tcn7Gu*Ak+VyE-- zw9@6Yl3&s-avS%rMTY;F9n+9{rWYw9K7Sak8iv)Qn9)0cHo8D>AnWxHz%X}$0S%8}?;L1WOB9xumO{YCYO$_GR-P`jE z`<7njS6=QSQpM7?3&+5qrtqVNq_T3f(&xznpXfp;*Xs2#b_vDF{cL1p@ma^TeycVm z?;KuiEb{J(FU{XDLJzy-ADwOK^5vG1C`(x`w@{#yroGbBqxZPh4R3$(`FZpmOarKc z;zX6l_So%xc)lsg;j$3&(ZWL4g6D66^k1Dp{;(wo-cM=F4rXT4yVxbg8uA#a+)GOa5Pt_nx$+lfzjuLX$Wa?VuDo1{#nGB2^L@pmq{OZ??q!WS5$Y`# z*6%LPEK26vgPhY=e$jjkXNfR&B>Syr+RBCT(0L$~{o*ammydTO% zKYs>tXU1D$uq7eI%QVcx14S_CWY?j=!EE=}dj1zXRDhribb!`2ogpRbN`>oFWjZMS z{s!GkOUM$T<()HScr`!^#1<`aG=6?;z^I8iK{WREKU7*xBhCGp?yg@M{2Ma4UkEdu zt$S(KIv7sp71F&`NCGFwQg=-i35}Pg&=e^AfzT=Iug)5Tc6W$sE#z0S1Iy#b<&|^s zqyGB$%aauZAfi0IS-}{uSot96elEU112pLula>*Fd|{_&gn6d<16wEIS{ zbuY0xth+FNa{MdP+m=Z=MZSKc5<5Wul9YV`@UUx}Qy>m=1PbnJKA&fI))m#-*Z=k= zsM3`|cQGMb7g`iyit*zuliMvTa{J3O-|(=Nb#p0URCABj;2(Kiju~h%zpG2va;vc0 z`6m3|WrK)u8{lU9S1$(b9%(z<~M+4H~0`6r?0QS^-*Km(2Q1E^*f)( zjed~J(K-e8S&X*(>CH`OYO0R^tQ%TM!Fk(*@5hgr#wI2GOxjLP@%9dK0o503=+=D5 zuV0HRC=BaVTo7t1!rRg63(rQ}-`yFVu6Axs;Fjo1=H%E(4OxS^koO!&O78(}6}=a6 z{60+#Y&PVhJN{CSzY2U8llFO<2$-3lk=0fJ>9c>>uaE8`Lc}o7LSs4E$O@&pW0NA7YkR+rn%s?+ z)*4TtuKq874%6z)u4IUa)bLaIvPwpk7Uf563+=U(oxxcCPn{KPpB>vDq1$5;p?nlb z3x~l?#?Jc$e!UCcPN2oD6eLs9_tV-Yy5Q*EWV=n~ zopUgF^(&>IP&JbNk&U7D5EAZ)5ZlE^;`slZCFdo6S5eEzR?B63kM?xd-|J|J0)mHw z`^jd;9n5t9?Z+ipmX5S%ynBp^vpgTGR?j|lQ&KWsPRpz|JLLFc_w>mv979C>Vu?sK zl~0SFLqb|V#B8djUc^?!J>6K}bUZy%IA?p=dRJVXvUdrIa^<>UQ}9SI9}8=MY#d@s zw;LNw{_fX1N}818FC=0vnj3p=1!<(E zdtz54f|di>L~pLB6T6YtWqkYh&R{-MEo|!B50mLSlZOX?8d=``dxl<2 z$*}r=Cg`dEH9_yAGx?)=a?nERxq+a+FRu1Uz3H3A2NHr#&SD?mc};CY`I15GOCZ(lsTv$8hAq&BQ@sPp2HFaKW-}TSORH# zExbJKUD{rJ=NhlHZGR%T<NC&I#0J8hKUxDzmPnvA8`3neR6j1K{HIRcVNPmfCGiog(*5pH*<%; zCrY)O67gDAnalK}eZ6K0IY{8!T^>d#4>S{V5h?4cAAJQpYGk z@fRg$OCj>IupkE^@DFLK^YPTC%@{KBzMfax#vn`yMor71L0Id|cVc|44DZx(><`Yd z-F6dHLwk^)JPwTeCzfOxp#r=(v!B>p)8`oQ8XxZGB1JR?iiFT@m{+*-YKgTU z5QEVywloWYYJp=iHcgJYcRrJ|!iq+84&3W7S0wg)}0b zQ0@KsnwOVHp{9k=-L=p)JX?5rT92@@du*y}6a4T)2u)qr?{CN!c zNDVSXO<1nA*tk-wjSj1<0zt>`8hXG2IbC{5sdF&o0zgCZ-)mO-1~js@bGF+mtA&h@ zfRIr8i>(G%INkj>5ze4xnSpuceC;(rO#c>KLbUGSyTTDh4Z&k`gAc8J1$5LAljcRW(MZfwPq#XAEeQhA zBgcCtM1bE1OcriymzDz4b_dm|8#)0_~vIUAlxDR0vR2x#Z@h_rsOg*Kl;^lKFjK;we+? z`clE>PqR8RBB`tQ0{4gD!?%{(bkh(IrxXwfzxgj0z_Ymy%XM_@|O>l|ke(=}(%fMnGH&%*K@iiK6F^E|Ve>YE>-B^_==8DPyc* zV$_fA&PN~0%gq2iXVHo{P867sTx#256qO?x%VA~HthSEsYxx*)q5kcoO1`wKN`onx ziw6#{5BMc*MR0X`iZ$w=es}s$i$?iuQp1@0hV@NCIlb8H*)Ah#?y`ULsdRl;j{gY< zC}3*J7K~|sTxcOlsw7=+a5z?~rFXe-hy?qUUeZ{U5k3v!6oQ=qU_$>N^E7QW`v!{( zPpHQzHbzg`Y@m*YSkiktmw?JzQewov?eas26&T65&SK+cePjBgn2>ilOW16h-!4j* znPvz2vfYRdj`o;8u|!Jf>z5UUAz z5ZVI4nn=l!(R8QmLOxWt1+66eyoI)I5XZk;yBAmxJ+nRR0F1T@J9!?hfxwnflmW}S zQWua*qhBYzK+=?wk6mxUl$8r;tG;xN-5x&Lm5q$mP{XdYkpGXn=@}JqXS&hdI8@m> zIswcmgx1Z(1qj0ECE5E`lk^7(uR`gh#EZx;_02JaOrF&+Up*&ss*{lN(T{#y-;GC< z_05QCBO)=fDE}KX{b-Oc%}(2ZcIkD$uSWJ&^bNy{;W*7)IW(I3sI@?&Q94YH%1siP zrC^JvDh%jgVls|WNUy+I*QYuZQr1>CWJI{mTp1GNQxMk}N6~WAD4H{b zmx_W_VZ^0Q65ZYQb_O75Jhq8w>&ylh0aS-uL`q7Dt*1+SxZ4}ih!9%VN=Gr}7tx?X zs`_R=P(=MhPDC#JKDSjUTPh31X9$mOnWB-+9cf5ubCiMwFLS&sZ!2aX5OkNi*d{Od z20(lzDFxa|luMTda7afIS<6nsRbHAy89^UuHwOD4rxw%r&QZU|YxI1F7jNFxD|StC zM66DaAQaR_8m=wkaA5R`eHtfoai=PX?Tx^gq|1EFJ7OPH`F{m@2+~tV^AzD96bqUc zq`#LbFkSF2VC|Uyd>OsWv=>hlje-A8$Z)G_E}mC+d#} zgtWJR>`J69Z~NNEiCI21vvnJoFYU&2UhmUR-&#HCyMh0!N=F5MtA*Nk_MNC25TSY@ z-qW+X>0D35XM%VfPUn7&0##i%>fUx*%E7Flh_AnXgY!u?Vk`z=rJkKKX!WT*onzY^ zTqxVW&BEid97VEll_lWJ6`@CSdP%(NEue?UDiKt0IQqs11vd8(7P}q>?3{AO>~pFPgagI@Wlo53Ebuf7MOVEopRjpNeB%cG3^dnfJwASkJV z_`f7q`?Bd)42#{Eaodw{qEtOt1}xCN(QehIi%(aImHF;qtLC*w6%NoOutWRV!WZ$7 z=y$X>n$eQJA%NCBpqx?Co4Gt9s^|R}m?p+B7vc8@1OEzwI*wJamOXG&dR}uU-q_!H zX!|E|bbq1LMHjt$GtNTH=5nPH)VtV8)*W|NJu8@2a&KS?16Tv(HQn`}-`=F9-~>m0 z=JI&;e~*Y%c62@>OmOsm`v8*C=2UvDLN{kO*qA=RJ|>}Y?oEm-t^9gu4tBZZHpaTwE&zjivOreI=fWlSAcsaVy|J>o9|@Rn z*uWMpo9R95gPHHE-FBq_r>z9;@oQ;z@f?jA7b2pjgobk=P6+|98wYi|HS=x3nqL9y z9)A-FwsnHY$^G)sJ4}HsMOf{ylC_RWqbC3C!x^pM13E2Y=E4P@p7+??Tp4E|N?3>b{^G}+fG_RZegWMs z?@0-k z2Hc`0v59Z_S!jt{(15?re#ynr-tSg-l3wY|mXF=B8m)2J5U9_TDe;w-vZC7%Agyt; z{Y`HqiaC31QsdwPx73qll-SqSfLrduj_geIL=G=`iSjysQ}@6vAxHL&VB%0($<_5L z@V8ac^R60yjDvVFcR@$?gW6Xzv@(4K8s&7{VY+9V0S<9s0UJ$XG6Ut7ua7_@N>2cdWnqBkT*d#jYUKh zfr7`ZzRftal)|BGzb;976?c!<-+SvI2<(3aVDpK~^#Ond`jZih#_Fqnc;g% zzR#>=m-4E)I&RFh54nYLlw=v3&TIdMK8<>7j<$sRc1qIuvtCcRgiErA$!ibr=Auh` z#+@PKT)dyWUf}7?_wrqR{hbqeJyx4Kc|NYb;?&~ykl*2bohJ{uwa$9U+KpMEzT}kb z>dVR)GJd`oH5L}HZ~zj-C5EIMzhiTvKG@ZbS@2MA)t6hKu ziLVRvi*GeZ62V#id$xzmw|JzjKGpnhc~TvX4dDm%JM(KPSvx9JWZke8noWM z67yOfd!0$$JN4@ zdpc%`{E5T$1(uIPTuqGwal=Q2`@tuf=U93BUxBv3*WM{VWZH)D5Wfq z@XEKOFwtu5^Y-wn!`=nEVASW~aS1l=<&69q*5>83%nG98TON8Gx9; zln3?V0eL~360@z9ig{QY67k2Xrb1hu1jEfUkKFBs>vJn_h+jLQ$?dP1F?!a~Th+wY z+q=sBl0n3oE^71`lXFsIg@2_owl*f~KHtI^D=-=|BY@a?+~wbKhX((XJb?S3$OA~d z5|4aG)}_rE`R6&zgiaPHsk8L5G|ux{Mex$Q`%5@1fvy|s_8@WX$R5^E@#f&(?R-Yh zvkQ}Htptq2Uq&BnlH1@4N&BewCzOUSQ-b4^t;H}vPW*=dZ4#nF?I%S#I{sdISBQ-Je(K zXS3dQ3}@eI?b^U29q~{=+=S=O;T(K0C1}MqNh~2T$zI-AYq)k$n&w zO|a9~B&i36VC4Rnl+~46dtk)iURR0)a1+n2pj|3k%{`HoJpV!V{;&MBp)d@2Hrv&X z#PPl;ijVL4YDyg~k6yXN%I1}QN`l2=Wb8AZ$TRvi7(VI3cG5FBsrJ`Ap62oolCz)F zXqGhvMw2kD?O7HcIW8lM6ia~L3qhwlFZcZCDyiN8g~ZjFGWc&F+=l`*(4XZeKf2Vt z0%&xwpuD`#GG8t{Q-CCv73lRkaDPj{}jM zt39Ynd~eK!2E@0`E_xwg-P7Aj@$4Q5j_cXFl)FfEU}Zf}CA(agA{!6JT9H`XYn1*!^0qZ!ukj^LCUb&*pJGY9FzrooR5a$LHN=lE!Z_;_wd zy%C&1saH%(E9YFB9~)c0Yht3o9w#yZMfk2gl92ndd%iYzyu!d5U>sUu9%FO-lUe`2 zp=bPmBp^y^-v$HBRNV%9F``-|B@2sp?Cf1Ye3M{iYm3Ii!(*GI;{A~Va1wBSFA3+$ z%A+AY#u8<-D$_538^(RcF*#W+p}s^+H!KvPs5el?Aveiwo!B67>zbtupT#js*z~9#^QrM0x9LE6q@cvwGQa zoxnY^AEJ3jlo1jvSoa5vk1VZZv@fpghrg-au1=VU|1`YfFd#HO`mBYYsC8ycM$= zat+S_{Y0LUdE^rS=vpKnPPcIV#^lX=j`rYr< zO<}?|11D*!rNtW#69=ow*EW3ac*-gmzn5gX&27v%u`@ec{0mp_y>WsbJrL?vY&wFr z2O1ij;kij#A-6kW_;F1#tV$= z)$gtD@@QE(Jc6nbE3%HV>MXJ{)k=Rpi!%Nx>boq?+!{0#lpXRjy2(6iM`m(tTaApk zb?-4YoagqMyq-uMRa75z)mnTUtd1DrJRc#+{h4(Kc4&vEEuV|Lx(LmAPB1uK>FEFX z3bYwE$4AyKRo4@=wE(rfgKLm1?|KxWBuDf+w7&gnN9dvOM5>Q28h_XhCVCJqcx*yj zNc2T+hQ3X1y+db*5nT`S5q?^IH;`Vr52Zw}glIx-AFoehWJlp}x24B4sx!K057|tA zYd&6U;4IF+2_kX?owFW-z2HIuw~e~Vbf9iEG$UoNJ4hM{ZMW6lw0mL8xZPa`-<}dj zo)bsQRVNx=v{g5}FzU4KX^0G2MnK(kJzHK2MLaaZ=jjOrw>yi7VQ2*g93|W?y%iBD z5IP~Aqmp4?V_PP&B}~p1yEw+bIYRZ?PkX>&Y>zOZLvE!*l?jzDV6~kh?WVg7Iqx}3 z6QPy!zP#UOaI&6!bCtKo>!ptP)V3dii%ZK|eGqhJB0%-zg+#dp>bV*(@FbcVEotar z6_d-Es8^9MD`ac(a0y7r##S?A6paQBt<0+}Hj5JtqF>*J5$&C|*%MzGXgh`B& zd7V~@SzaY)>o13tgSQYx=ZSND9|;iyxlQJ`-|ceW_|3}NIaSZndlOuUL|`W>pS>}{ z+b}xbeudIpw`(2OulaUYN%)}BH@*T4Sfqs-qO}eCO{@&tWHL^3sEq%iVyS6eCKDz z=ZhbH%S%1Y{d;NVjYNEX-v4t2Lj{7pVrHM#c6Z=?V>Qh!fRKML0627FIqqG#{QEV@252rW7C+g5< zYZMLr>^qmssr32%dUsYQl!f@B4V!*Ajl?Jx%fCidB$J4@{QgrHX1N~!>Qxh_Zgo`m zZ(34(JH4MAG{tKFAyLv?ZV5Kx48r<++-K@V0e>_Go;9m*VJDF2e&q3SM>dy$!`%v= z8E7^AUPsm&jXHb2leBsj-R&`-_3Ef)PzY=@+zyW@EW&%-QUuv(W|;E$pt3 zue!14&r*=MGaGVBXPDd!^{XFxMvF%H6ZEA!S&^aA<{Y8NeA?f;UnNOl6Ol_9+|(zs9tkT#`{SlzcM4_BZ7eFIAJ(uSE^?u_D;Q3*%IpR(;@$5kW~+=CU^ zSKqB%LTh4S%x$$$(@*}AZU5b3!c1<6E@0AJWc|g-S7!BP+r(4hbx#4e#hx(wg-l(D zQPCt`rC!kuDZg)4PwY4D+x6U>Xfb*Dr{nNcvPn`bthcxR=%}bc_4Pak`u)p)78}2+ zROk!+`V5>^P_;e1WB&KEe*YEz{paHe;X;!|z>$H3PlzQ2f + + + + diff --git a/docs/html/classcore_1_1_console_service__inherit__graph.md5 b/docs/html/classcore_1_1_console_service__inherit__graph.md5 new file mode 100644 index 0000000..32ed5ff --- /dev/null +++ b/docs/html/classcore_1_1_console_service__inherit__graph.md5 @@ -0,0 +1 @@ +1995991829bffe59ff96dca1dfdeb04a \ No newline at end of file diff --git a/docs/html/classcore_1_1_console_service__inherit__graph.png b/docs/html/classcore_1_1_console_service__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..983cb00d4973590d10983f8fe61298eb05e42ee8 GIT binary patch literal 7277 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 Uo>#Cu+#dpRQcCYjBn$)o0}`=m>Hq)$ literal 0 HcmV?d00001 diff --git a/docs/html/classcore_1_1_console_session-members.html b/docs/html/classcore_1_1_console_session-members.html index b2c8027..545f0c9 100644 --- a/docs/html/classcore_1_1_console_session-members.html +++ b/docs/html/classcore_1_1_console_session-members.html @@ -58,7 +58,7 @@ $(function() {
@@ -79,18 +79,16 @@ $(function() { eventReceived(struct epoll_event event)core::Socket getDescriptor()core::Socket getLines() (defined in core::TerminalSession)core::TerminalSession - init() (defined in core::Session)core::Sessionvirtual - ipAddress (defined in core::TCPSocket)core::TCPSocket - name (defined in core::Object)core::Object - NextLine(int lines) (defined in core::TerminalSession)core::TerminalSession - onConnected() overridecore::Sessionprotectedvirtual - onDataReceived(std::string data) overridecore::Sessionprotectedvirtual - onRegistered()core::Socketvirtual - onTLSInit() (defined in core::Socket)core::Socketprotectedvirtual - onUnregistered()core::Socketvirtual - out (defined in core::Session)core::Session - output(std::stringstream &out)core::ConsoleSessionvirtual - output(Session *session) (defined in core::Session)core::Sessionvirtual + ipAddress (defined in core::TCPSocket)core::TCPSocket + name (defined in core::Object)core::Object + NextLine(int lines) (defined in core::TerminalSession)core::TerminalSession + onConnected() overridecore::Sessionprotectedvirtual + onDataReceived(std::string data) overridecore::Sessionprotectedvirtual + onRegistered()core::Socketvirtual + onTLSInit() (defined in core::Socket)core::Socketprotectedvirtual + onUnregistered()core::Socketvirtual + out (defined in core::Session)core::Session + output(std::stringstream &data)core::Sessionvirtual PreviousLine(int lines) (defined in core::TerminalSession)core::TerminalSession protocol(std::string data) overridecore::ConsoleSessionprotectedvirtual receiveData(char *buffer, int bufferLength)core::Socketprotectedvirtual @@ -108,7 +106,7 @@ $(function() { setCursorLocation(int x, int y) (defined in core::TerminalSession)core::TerminalSession setDescriptor(int descriptor)core::Socket shutDown (defined in core::Socket)core::Socketprotected - shutdown() (defined in core::Socket)core::Socketprotected + shutdown() (defined in core::Socket)core::Socket Socket(EPoll &ePoll) (defined in core::Socket)core::Socket tag (defined in core::Object)core::Object TCPSocket(EPoll &ePoll) (defined in core::TCPSocket)core::TCPSocket diff --git a/docs/html/classcore_1_1_console_session.html b/docs/html/classcore_1_1_console_session.html index c8fb6a0..015881a 100644 --- a/docs/html/classcore_1_1_console_session.html +++ b/docs/html/classcore_1_1_console_session.html @@ -58,7 +58,7 @@ $(function() {
@@ -89,17 +89,16 @@ Collaboration diagram for core::ConsoleSession:
Collaboration graph
- - - - - - - + + + + + + - - - + + +
[legend]
@@ -108,8 +107,6 @@ Public Member Functions - - @@ -154,12 +151,8 @@ void  - - - - + + @@ -177,6 +170,9 @@ void  + + @@ -225,9 +221,6 @@ void  - -
 ConsoleSession (EPoll &ePoll, Service &service)
 
virtual void output (std::stringstream &out)
 
void writeLog (std::string data)
 
scrollArea (int s
 Session (EPoll &ePoll, Service &service)
 
-virtual void init ()
 
-virtual void output (Session *session)
 
virtual void output (std::stringstream &data)
 
void send ()
 
void sendToAll ()
connect (  Socket (EPoll &ePoll)
 
+void shutdown ()
 
void setDescriptor (int descriptor)
 Set the descriptor for the socket.
setBufferSize (in
virtual void onTLSInit ()
 
-void shutdown ()
 
virtual void receiveData (char *buffer, int bufferLength)
 
@@ -268,35 +261,6 @@ bool  - + diff --git a/docs/html/classcore_1_1_e_poll.html b/docs/html/classcore_1_1_e_poll.html index e7248db..b3a88b7 100644 --- a/docs/html/classcore_1_1_e_poll.html +++ b/docs/html/classcore_1_1_e_poll.html @@ -58,7 +58,7 @@ $(function() {
@@ -118,9 +118,9 @@ Public Member Functions
- - - + + + @@ -251,8 +251,8 @@ std::string  - -

◆ processCommand()

+ +

◆ processCommand()

@@ -270,7 +270,13 @@ std::string 
- + + + + + + + @@ -286,7 +292,7 @@ std::string 

Output the threads array to the console.

-

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

+

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

Parameters
shutDown = false<

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

- -

◆ output()

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

The output method is called by a socket session (BMASession) 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()

@@ -327,8 +291,8 @@ bool 
shutDown = false<
The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/ConsoleSession.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/ConsoleSession.cpp
  • +
  • /home/bradarant/barant/ServerCore/ConsoleSession.h
  • +
  • /home/bradarant/barant/ServerCore/ConsoleSession.cpp
diff --git a/docs/html/classcore_1_1_console_session__coll__graph.map b/docs/html/classcore_1_1_console_session__coll__graph.map index 6d9345f..2952663 100644 --- a/docs/html/classcore_1_1_console_session__coll__graph.map +++ b/docs/html/classcore_1_1_console_session__coll__graph.map @@ -1,13 +1,12 @@ - - - - - - - + + + + + + - - - + + + diff --git a/docs/html/classcore_1_1_console_session__coll__graph.md5 b/docs/html/classcore_1_1_console_session__coll__graph.md5 index 74891e1..2ee08cf 100644 --- a/docs/html/classcore_1_1_console_session__coll__graph.md5 +++ b/docs/html/classcore_1_1_console_session__coll__graph.md5 @@ -1 +1 @@ -1d38f157105696b5f6f17fbb77551672 \ No newline at end of file +af4e708eceb75b67ed8b52740fc3c95c \ No newline at end of file diff --git a/docs/html/classcore_1_1_console_session__coll__graph.png b/docs/html/classcore_1_1_console_session__coll__graph.png index eb29ae1e6738b675716220979b8ae0e31cd7346f..2edf806eccd44c283cbd29d9299b9a2f88f82f3d 100644 GIT binary patch literal 43381 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 AFaQ7m literal 62634 zcmb5Vbx@p5)ICUqkl;as2MF#K91`5!HNiEwTS#yX!QI_ua0xm%!5xCTyKm3?)mQt+ z{&uUjQpF5p=6U+*zJ2ex=bR2!kP}Bi#7BgKgF}&&5K)4Idu{;-_k!g0EAST+sk;X7 z^2$J3Tmy#wl-o?uL>i3sq8PS}4&;t6An-&-PQsqVqVU4b8QXw~}OcSlpM+?cm&Mcc@les(hx_va1gOW_yZVx{5PM>&o=5woXH*TI1>@~D^Q9SM= z=Tp=+KzQkAeeQ4w{YZ1^ht3^FKSJuKpoqwcgZwq%8&=>|Sca!Bm3(|*FM=%o>ffAa z!nn0-fB&iL2$f@{pVMAMaAO3A1d*LwP$80v)c(fdAU!Saf^+tq4k)4sG5Dq)EHCbA z&-PfjW+&hpb{!K^YmzXlnl<}c-gDJ;Y;wE*cPgg2Rvrd9DpjtYr4T_8cY>kSN(WSU z%8viA&nfLF$@A7O1TC2}V07n>>4{-%42yas9&_RKY>mG*4P5Yb*4-72Xbflj%&8HtI&hO~g`b>G2rk`HhJ@)H0S(ZBK+g^5$%Pv>jv z^9!#F{@hI>87EXKT+FGwuJ^S;{8jODwoRMaeGi`TAW^FHjC`AK1M6g@ne2u_6V>j} z_-MLI9{ud&4Yp#Bqs@04wMyg!j@4Gjor>Hx( zSY+v14YYB@d*WmDF#<8SDe3BXC(xf%@XBK}YBmbnTij_TjJJRC!;&ZCWmBhYO^kH^ zI%Hj)?>H7`AV^ZZyJ#YP@pLG^h@oY>{ilYeY4-lYgz^6TnG;Hi*}~$^GQl4I1=r0a z9)}hKzUXH~xRxs9gbP8fm}!JL7PmthXGcxw&dJ4-*XJ=jHIta!C)a>o=$PS}^pXvw zwB)GW#V)_|QEPt$QGC5O|2uwuhLGnxsf-WJWTME`>yJV~&BBNvehNKSP}yCi?%rm! zH@hRa=Mzo%W8VJp-KBVXc$=wTg&cwQNGXG`&8?W1vlQ(h{2Fm)LTHWFUlIaVdyoPkC%!at9#Wy*4+HthwD>JBBO4AJDvabe5gSY2ftggpf; zcu~c_qPGq=gY-$QWvHVLnYtcGA7!-suFlABFw3jWep5{m&99Uod{}PZx@>d%?P>GR z)L8r^-zTJnet_GhQM+yR;ZdCPo1g7b8cRH*refiki|5V8k=3HRZ$iQZ>TC_!fpJ(^ z8c70`ANt6DyRmSjY1fR?0_OtfJY(XaMTUgcmyHOG1@BMB$3faqLu)Av9b!Pv?C1*SAKe$HGC4FVz3ul_fjf&6D6-o zvejO4^opha5$is>q;PUaeIZc&14OtQj-$us%VvE$vL#pa`+e88aeBU<$v?lg5IGPP zy!N%cufH+tPm)CH|Dc$hllf!0D~|O_LZEZCJ*~b$fMz1iN2eag&?Pmizs4rQbQx}48CN@D~%OvkF(>W==(gp zjU=HuzP95V9X$~d>v>Cf|C$6$$riC-1Qji8pj-Yqsi+ge07fg=Xfw zJpXZ$#?u87`mb(XeWq4<%4r|b9?r0k02lrO0%#SiB6C_ zm!3SjKl}q8rQXZqmSCBRl{IdA+wXk!V26y6mNp^~&CuLZ8ZBG8Tpzk z_`~)#E)xHX7cKdS%^eAe*d2p|ua(Dzuox^vMzcgKYUqFXi$+mJDnD)S^abIORz=r< zh3%Y~OS0Rak&Pg}fLAhoW5JGJQY!0u)PkW>@I|`8{$mW2O=xs9#qI6Q%}-_V^P%LI zmMHdvXl$mYbgd7y6y)L`4X4ZK=(TFnk#L{?ou2l{)2>k<{aM#oR%mYV`9eP@XL~HP zwnnfp(hv;sP|_}5>)&F_-FNT|K|!vAKM`1%boQ3B7$D!P!2ok}PuRM3Dh+yew%*}y z#S_OHjJ-LcthQCo_B2~TdS}lD0siiIk*cZ|q^Q3;)aB;k%Ft@bGhp3_ zh$re4wohRw`(~$rqFFX zJUpe61iRbx)o$5JF!1njytp{gG(I{0yvf#^>rbSoNU-{Wu)FBN-Q=S0wFa-qfv+@; zFAPN>nW-@9drwavVq`8BwR=-Gq8=O)VtTe&U7}(4`o#ZEPY+OYuH_G=cqMYRbrFAeu%B&=_rKSlC8SIJ&2&P=g)0 zpLG18{m$6pG~*daNeWp0A=uUlT$MyldvPWgyCuuTN=B$uRMHUgg5loYUt_tY)Vg!K zv0D@rxwcQf1Pc;c#Z7&OTg`g67+m_F3G?~AB%uM z*~&@@iHn!l0ruMb9Dbc#VcqkzTqVc~gCIF5QvUVQ(r2AE;vaP`%+uuvc2C|GmcF^h zZ~NoxaUv z8^ycp@BjWu{P;;?ceEt@Z3%hfFDc27AH@9QQr5=CDNBf^mdRROU}!7<6tKX<4Guoe zucMH%Mq^nB89noPdR?a10)<$@#xn?BUcMB`7^lIaRry|J9I9NFf+Cxw0*mhc*y`@F z)8)f{KR+Xrk)?}{cO0Pf`y=6g>HQ^ty&8&^EBYxYKW8Y6L4Rp8cMD`U3=9lW5Im2M zZ?Esf(ed$v!E<|D>TE2v1cKf3?aJ7!Kpw0f7njDrRizYgx3z6E-=9C>ot-ytJbNI$ zjHk+aK`y^iN;;=GW9ZZm?KY(TML#W()6$}rs{I7X0h@MaEK^vvKbB6eJH#1Wr`g$A zdk#TF;V=1ni0J3+(c^Ah5?0q^s)PhA&mGH162Y{>qZ8{cXuj>K(Yv@f_(F|QzWE~( ze0=D`-3b?O@)xs$c!n!vWaO@;B?0Y2iX~kw7WG;yJA8K66Ic7H2#+gb40QA;y+A08cjPL*#^eou_OYTa8RPr9U_q=Z;!6DWu$ zjMJMd?b2YsL2PFi{O;YhVwDjKi1U1@SPYdy19|WWN9-95;*rMtiyqkFVn36$t$V`E zBOs6+I{j=l+=8^UH)3Lw)H?O7Ji7END~Htm$u_w$ZtNNwjv1exX=7jtOGq4(lahYV z$x(Q}=RM)HKXVdp;uW&MWG(so`}fx%ljP&tdwahHS?u>^l*L!YmsI&Rt3w##;z%i} zrFPDYm+8};m^c3g#`}*SqXyz%G}w~9Z-MMjl`{X1c6vvEn#yAS9JJD%0md|nSp^n1B1^Fe3HLH|I$ES#N9ngu z=4)#pbN$;-;R((Hlf}iWy|Qm58;l{!_OKPy`v5TAjUHGa0?r@YJ_6strmVLmg(FEv zS5k7sqBD`nm2w`zGLDGAnH{so#*I%X4b5r|SI+;&X0t?mdDIrs+8URWgT;;ylGw^b z;Zxz`*J_s|4)=47o^ipY^Ya=r_ClZKk00|q@9p66*=<)k(FP0*lq9-q$OQlHU_F09 zVtePz)!O=Xp)vLrI?WmO>zBlP2rq{dUkZnDzlL&aGXr>8+qa@vQ#@m#nGk8k#K%uu za&p_9AR10NA!lTKOHM9Kt5P9*)L5dF`;w7yiZ%Q6O{(12qb1A1qzle?M)<7!d6eb?+>Ui?Z*N`EalRLXRI$O{yHil)Ra)Y0ro z4&J{2T@wgFyFE29$jpUiypTwFYL`R5=$M!vt*toX;?iJuw|93Z!M1#!j2(yum8V<@ zBYrT{G#pTk9JcNoTu&IcM(!L|I&_Hz!rK3QiiCZ*rIB2I z-qhJ($_=NlFWO%V2osiIp+^+H!)eZKsku1@X0-W~6;5mGO1W+{<4}oas=Z7mjmTWr zE3jA~N2h7ouq1#CbAADtnN3_OZcQ znM6yq3jGu5b#5+et$9b(^-DkJ57h55hl^#mPfdlbLE8qR_N3h0(@d_9FPIo608Z@b zf#-HKBUDrCnN5)k8pOoLhFoj5|EIoI*v44MZB8fLFQ?51nxu6r| z#hyH~eU52BcamChdk^JSZC-A0xNMHy+RjV(ho)V=?_dW?#qKkIWb8`e)~$eeUEqic zt-}LE z`t}wSSx_G?c4H-(h6xFcGOV1F+06;s9-ROA8_0qU8L7`MH zQ{@0dl!DKZQlQuwygNx$s57hA(_~CeGvQZsxa>1{verr{u-^&r;!AjbsiS_YnZN#& zvb38s-Fj!CSDJxxFi%xSiy|o3+ay%0PNH3W}@Vp?oWquXL zg-vZ+=?1##$n7{}&tP|&sdKfPKatH8x9z@)0JOgr9QUWv>O79UH(*m^iLRWD#8=s* za{?d-N&yd_!+q~tk^mHKc>@F1@%*OI5>4aS--uCci>*Y%v(?@y0$zb&nN~pWk*2qc z{@*THY#at#7{kGV9Fo0>2ZEX&7wbGox2dekavD2==!}AeCDDGvY7D8m(J7TiMQ3+LuXLffB!5One~^p!Y&Al*$jA+Mrfn#S)h-5XnWn%b zdEeU+SWXei@q#x3Hupypc0Bo7U=aw8zW#e#P&jb)zHnjpM`(PGCA8r{Zinr*O zg^xagN!tOB+8^t&Kj-8RMrMCw|K(OMG~H9lS1i0=vQ7!r<-)=uN(};jn3!E3VR?%x zULQ6MO%$pAuC*>MPB?8F--(%)`!w5hg-l?F5U)D?qAmPj1^vY@Xw!<+1gj- zIPDeHn4P5UCng}dc_6IqHhvGmKCpE;qS_nfuLK_xi@faU?@w?$Ydl%6S&w^j)9LK`zY-Nij?_6y=QQ?j7?#af{kFqL{D-KkWOHu)W;QrVH^Rb-g>0W9S%iiUZnUs2cBS!+D zW^1-ReyFT`<9V*=wysv)UMo{m@7LzGFy>dX* z)f+W*eLB$N=G~lzK1%~Go-J-u<>6wnf4>}Iu1c~&x6$}+^9SZ*(u4V@5D4VW-V{pLOnt^&lzlkpN~PoWO>fUr zRZ4gNFts^$_w^|qXb7!Kj>xOgDP~d2CaYzs7GHr3A2WAS6@z6#mMWKDVLk7*IlLGS z5dOt3_jr@b3xS6kr7~?g>E@*t4>a>-Zvnt!9G~AKvaxAyZMPj?q8c3kgDkY%eX7mC zAPc1l>1c3x1X$4*gtvr(f`zp9eC_1+OeIc4gquz1XPSwZpcK@8;~!aQXsUPE60n|E z+bS-{ABfrEqc4?UW1|bp--@q#x54Y~j#LCTBa5XP72Zn*5gci{xmxR{KU1Y!uhD#D zQh9Q19g1ZK;*K^FD{GYsHXQCQ-Oe7aeEw~@q&puJu~}&-OU2UWInzh^gErHA`cNGi z1!boGgl=}10yCA{A&^vf>Maq`NR4@!=cOh#g#1ku)3zg`c;r&oz#hBLquX0iMYFjY zjK!wuT<-_g26v9YlbamfHmSo4*iCBCvaZ`is7WthI1}E8_u- z*!TMd3~m8aG@Dr}e2l1{i$;1>%OJ0%Y!$dUnj zbG=(UNyueO#8h5xKWX#Zt^4u-_Z?dg5@41<>6zwhOZkq@JzHtmTB76T=kwSQ1}4S* zyg)o%;KE@)hZbDB9^gny`K93y?7*GBnXi=dod?<2zIN?_VC#)ayFY<)gA5`MLSix^ z#>O91dy5zZ1XP`Ph62CdXP|*zIrNU1ERKx&os})0{>t;DI}nQ@shUzlGBYml=1%-? z{)qkIqDR;HP8onsvan&xCRF$@`v`_Kc?g2UobR0Cc{IyVK%c-_P5_W&AxIFO43w0< z01UDEJQ5QN%4JB$^C06-a6#!S$^Es6o%R!$^gSyPd3o95n2yL_K+iJW&Muh^d*pB! zc0Ys2DI^l->s}W8@wIcxZbb+V#)AF(6KSMqPO5@KklcIJMq+rf>Lnsh^|!@CxAnHD za<_UdS7G4iR2l#9^+_@yU!?|9=T%=ZZ3z=_rhVQ1>vVrCtbKcFUEoX@<(prZ;eN!A zusIYBn}Rn0tAms{l)~KvBl!fp@R_YNFed|0V9)=7YA@mA0TT}60#sd}!(^czr%KUL zpvL1$_4ZP?{coo1^=7h(1@vt>NLz!yNG%(@cvI}wwEouF{M2dT%13t-1z-^*!9*5A zDlxHuuy-dkx=mAkmm{iR;etS!zP-@y14scj+Q!Dy!fMlpoe6W0ucp7;I&wnRf;eMp z;U`zS@67-H@t>{cRc>}2en&zs;(hh+GqS_xzQJS>xk`}{G)L09+G(>E%fjuGNS9%w z(_Q%AzY=QYhw`~ntX$lJji8`9A9&|FA1KjlPZ4-|;hn|Ir||DVf06FNXu=qp0}wiS zV3(lF>onnXbp`v_o)<8IVf=%V%o`7sk%Js!pP3ouxKrhqknr-O)jR6>PaDdx9(U25 zm_iE67-Vs7?`PsC_Mqv%KOaX0=@^y+`fyZ))|q{tyb@2=I5Wq05?Hb^L1h{oy93i3 zy4Z*C8j`N48H>iXXi$7?a1d#pE zZ2&`?))!rEDz8s7VP6P{uCda28!m3mDw82xZf8;BCNb2 ziGWOruxVQy+#E99nJPtH_E{FgDZwE_n5`R0jw0v(yWMU- z>$j7|yj513Hk#h#=}K7s?LVihOh;5}t?-0yPCr_RV`zdBjub}J^wx0g2UtN-=LB>z z1i&^L0?DpK(;)>U0ajzFK$%4+5k!bi4wNC1J5pVME0Fb>u^8A2O6Y!s=c_6-zr?Z6p~fv$yg~ zhyl03i7pJ4Xmf2{CCq8>m4vjGK&|@)OHagNFDPlbhT@5M3HmwKpE=CO)TCml`1aCW+NYFdl}CpbBqU-G(0 zEvI3yX!!K$)60YTk$hJ><*9NKpn!Y^^(0oO*)<*veZ1D%$z*sx$C)q_RM@ZGA)PX5 z&8YxQfNYXXKSC~o3b>PwdOHG;y1N02T-u4Z01ID_fM#GeZbIyjh*x2^HeGctB!GjC z{<&DK4K}|321mnN!^2IN=YRXWu}9EzeZpXjL`!P_i$?j;Xf(@9CUq`qMDXdKpsujZ zYF98O8)sZEJ?J+b_bv%Qm2!3Sk{!(w14~TncFi0BR_)7IMZd}7wu~>IUqHx%2|LEd z5{6Tk#TBvgWba@djzXI^UI(gP~+qP8q;6C z&aDD^>CZp`-cx&LIdu;0@7Fkx5TcNjqygEN78brRfN2(t3z(ymAC~_%0Tn zS82C~2Qhp@`u#1rfbsFa$eYb%l>HgIlTv*qe=XDtP~s~JMPE<>v&gaPq zR=?_&Yk!l;HbX#VA9#E)geCFw{f01rL_mhlfQ^pRo8iE!0+r4UGZp?_AYl zeZYw`w0KPW9Nd6Sj}CZdb{hc%X=%fc*0(&$S8p&I27rK4W5tb2M~BJB-xg#2LnQAt zTBOMYwLAdaQb$WD3Cx+X_wyJ+6l^B@MklK;2>G~hJUq_S)9Ao*9P8heiY@{6NeCpl zdY7ZOyw1p-9YT)`>n8s>GF(4P1ikh4Ho;=R4-6f60a;t8)zj0n5Jz_t0c9hcKpyZB z+Bi&yH~kLAVOprnZl}(mLp1IV5db^WVcE0Vw^;qC()|J#{Q8W5^BaJ=2PUq@kkxL( z0xgah42rCYh~JhkU%jfbTN8sA2Jv+PI_s#-rnA->7jPQGbR)4i9I+2KTcWR!ZA~BV z4{I#dbzwmhigN&?I*l%Nnam~%Qs(SLDF6Pi#+K)db%M&r&%ZNKI8K1}h_fo|w9T9j znhuR7=ReXTQ8*mffO9fk??pM^Rh0)h;}G=7d2$cYHf`1vqQEz@j`{PIR|i07fFfQ3 zUl5X|2oCN;e)lh;#Y>S=#;g>if-Ha}kqNJPOSM#u|NRjI6;|kVlq`%oovrHDtlpgY zpYJ{0E#urjkZZIyNAAxjM0P`|M(d6cLvT5bHwWeZ=S$&$Xd>dBGMcYN`anr(>KcJ% zK|51>@Vr=^#B{1ej*CYN7BM1+Vew?(OOjxL5 zl{-O?tIk^GTsy0DhuFg4;tVwbM-btksVQV2@kJ2F3duV0q;?#y>{V8?Z8aTf0q9e( z{Wp_9CixQg=}w~D(y2}5Gd=KC#qYg4(p4y&guc;Q-q@-t%p zUeAlY_?7FEFeDDmI39wb!Bb4SX7wD$*)a(UMCyXSk;3SgD_DEuwY zpjCzaLcR|7I%iurB-S-lioS4RT^Lbx-LUemB#8`D8opPI9@lo zSB9>69s>Y`Z9T+XT`W@lHto9WB!^%mmV%dRtVV`Hj8IOhWy1B zA$pH*`QYk&EhgD&o>+LRy>vXZMkQe4@ezGmtx-wkj?xYE?n4R!w3ecZcS+}ZZXv?e zJc=!T+>}#Cqi%iJ7_I{jqi@~6(0+qR87Stwjx!cm-@9o2kgK0hj`Z|Se*APQ0k>Q( zQgvGLWZtFVekJJdx7jOljkNPL}iXY+0mcuyg+{B1y(_LhUU!NZDd-(N+O(%;@t<#V%H0TKPLiD;hEET@=Pspr7EO7YuVO)l02B;r zxT`~c&yx(Yss#YMW9&D2=stf&n~We+Ilns+$L4KX=?9#kh4|aqmkNA*e0n|xt9HgJ zH%0wVj34;jg!1{gniMrF@8W)!P>1|>)xcBBD>`jEliXpF25Xnd1|U;wHg{#;T=#myNnRmQ8kv_jzM;d7t5&jwW%LG(Y-Y zrX#a;SxNoVgdv-HH=Ukh%yk`?I&SI9n`>H9mXIv!6RGXsqu54Dd0l8u8ta~#)a@Qm zQUk3X&KA54NwFclLi@H-Wu%fXR!0m&sJOj(O9{?*wo(e{HR z%{iRoil2b(pN91|L+uOcxb~CJufOtq8VP2lxEL$P#;QmsMRhl0#|H@vKADk}nLWmK z(b9gKcg4ylT6!s%iBPJQIr-xSLM4Ten-{U{TbZ!*^Hd9n8HXq{c1-uC*?CPa< za?688uIY18`fK5Ygi5a`+whq!)boLUKmoSfRa6MQ?#glijtD@rDFQ7Ora40;D^kbN zxBh4cF9~eb?dUx(L><0YUc9GjHhF|+j(G|9hPI% zqmBSuXkI{hU#5D*6a!*~^QB2gTH;dTANcaveRs2f?7~fyQzPFTLz&&Ggdd$PT&_mA z$vBr;t8CqI0b4y^ex?zjPEB(=kX|O{W0vW5P_02k{T2KH&9H9?&!pDM;h!bJTilf%I z0rC+pN5})>kAsZM%pKnj4R$#P6dE1#r_MV2kS)&K@(~7!s(uOA3BPH)Rny#>vy<+O5a<5>(t3T<|p4&dX zUz7NKdLoh<`Il!v_fK30%2Lst253^2?9IlpzNhLn)8lk0>7<~oaf&+Mf!g6$Nrb%# z#_qcQXifdB0OVwq;Kfv(isHYCPHHdk7Ozp`oEIEEv(mEewv2N6V%1kdnlc(ap}Gnx3qt0rKJ^am$#?7$-r{2Mu@} zfImY4z?0p_2PlBuQUF{)%k~Z~8t^7&n{E4y54< zH4}i`_A;8%Iv1$lJTBh)2h>9Fz~m5yzwx=v8wHTPSpXNJI^18|LCB2|0S$e%Y;$_E zW&C&Cqq6&YfA&s88@FR=iF*9d<;376DynEj1$6?=^nLkh|8iz;YL0@3xOl{Z(MX!5 z)eN&jEkb`F(B6^pYw&@eq$kp*5QOfFp;X@Z28XR8qBSCOW;V-!%uGyP7rEYJWX$MS z+k4u_|Jq3sou`HT`@fn@A*V71T)PTlV7`!)X_l7iUz2GHMCVRb!8v+QAqoY9%hasy z2Wo>FY$0I{4aBmYUULjnSoo$zoR7|0`F!DCJb#?UV&WAdHm!8u?^-7QqqWFIW_HKb z^*-%H=c5@78$e5js#%Iek;O7|+62U^3R+C1bOFHucpB4=kGHMvv|eYvx-oJ?0QeH7 zkmpK!6cdRS`~w&mhhYwSzVq!r3XzbssteXYEjD7p0q;oPF`=kpy*WbSOC!m`DzDyaD?^RW8`KI|)_9f(OnUz-m56!LR?D;frKq!m6gRPBfNv zNg^r^WiuTXJU^KKu9O=Bu%uCSK>-(N^F~b5RWm_r2f~X?8c6ME(s6{J@|6LqpP5N8 zaa{t)*Y%$3*>|9T&$d0e=NU7zPngbDEn!h-JPlgy=H$dsmFggZT?0J4A-*pbK`+aT z&zUw19s)SzW@H9P{j_ov?jkn_ZvuhEAOP7s3*^}!N3HWRN=mGP4-<+Ye2jvz=}_4` zE(LQgu6On?zk6tnqu7H+(fILk{wmSA1f_t7=z3c6sb38D!R z8qLDPwZLV1^(!XFV;2ua@Ufo3OGeWqk*gBLcwjE0{HZ9C5&U%qm6!KSrlk(uB1-6h zA(h7|x$UWS5b$^UXPrXpqJ~iS%>4X~yCZE7HbF8j$Nx}Xq2BX%ej8XfT9nqFVAN~A z8?*$92XGfz%{fvkpJ7vHj1;MQ(P&hB3TW~HjDccHV|0l*%_&wP`_kC?4zJtOgA%)i zirfJ;S+ez-1+j$nd;@n+m1AN5%9`b6rGysKqTbzyk5=l67@~@ zS^8{XV4t^H17w=^ABRjv6K0>}B4D z5QSjo{q6Q-Dond%^83pf|Sl6qk)AvYdf64S7Tr%OAM^s!e1!%XgQ7EClG; z>jhU1lxV8Dt*vxj&Dwo*>$&?55SgqGOF~ARup5Qp@d6o*4`}Xcup7a|MGLKQ|?ns@lA0n#+k*O&PA zR!iXePa>o45_A%R!|M|99;i(wLnhT8SCcYrb?CE_h!9Q~-8-Civ6XC-R7fOhRLx-- zQ4KhY&B2`?QBj#73HPc1Lmo2zIg4m0e&(bFE8!h{VYR@}kpBK@nJ~?1ICOc?2_zL*A2sqj7)8hk7d-IyEb768 z%IM7@I_1)&pCI3UL`3%NMH93FU2$X%h3dMbiHScR`?le5YI1LuD1U)MJI+7o~&zX8m#*&=TofU7c-`foNAA%q zz6?|895x*@fihlXg0U*wmp@`@HEWLpoH=pyJB7|zK#}4PF<$Kw++J#71YNZv=)Y$> z0DGG)?xk7x4el4ul;x%jXHUdKSSaobJ+9@cshEpB1YqW50YdJm1qZ#Z`!9H;%guUz z+o7Rwjiy>b-~s?Ew%p*%5Hy;dJa7n428|Xvzy`Lh!L*i8R3eLi`&PN2;DuAl&V`8m z96ZIk=?CTqYG8CmA!y_~YX%xP$oL&dTk+trep7_-#ugy>bVt zSQ_9>fp`?!3hL?Sb2o$?0KwSi&SOWMP6&^v-=AXZ1PAPx*9%(+r zlboIXcd7OW+m}z-E*8f2wiR&i-@o4~`#RNdc2}a!`3oq$W56Dfm9;t<@u5pvGV>A< z3HLA?Od#Ohi@=tM?&>n?2|EEk7yBBkn>5&#_&5+x(lb$m4irqE{5?RkWQ>}W1CTAww-uR`%eJ=764$gR z#;};a^=}U81GDC55Whw@s8MSYnQ^|LKyury;sB3(C9EufasnPaONpXM=B@&Rj1$=8 z;u!h;lC>E^aJ=kFYo0oQQPSsWL9yT&K!PTVjn7odtmO0MLUT1RxkIol@UA!F7gdTk zKP@&^VR(51EzS?bR04OkLqKskQk43`*$6gZxVGo(zUJwUx0AYHTfhN&>d#^elWLJf zC8a&ijfnd&*b%@?8J;Pe4Dz5+bWjjfCjF7~;f^y4I9dTo6;+DEv@}AMu96{xwcvQ?tx^wQMSGKsyg0K|%{_u~x{GRnm} z)^$wS8kB+xGyqI#@0c?b^Yo^H0|l(TkPsQ$MdNHHV8_);ccsBhJ03K?v^n|$xN^@! z{~i9cv^2-v3CVDJ?jK^=foj?>OPx#R6j@d0J~FLps+TPob_PVloHpQ4KoOC6kQD>~ zXkfhD`iYhTE*ue2D2)%K$mR-7_iw+ZP;PIwq<5yQ-+(+a6niARj>420c(Ae(mC7xG z!|i>~<*+rZ$}1L;Lyd?@X_cqNAwCE3sDott^;!c981l(g zTl$XZ7iSs(0O-^&bG`0v>Khmg=4(j-GE?M@>kZV?Drjiv<56<+2Mab|vqKNc=E{g* zV4t@S*)ph8@8jZnG;6sVehQE3aAy8<1I9MMQ6g#8rHMxpOP`$HCUy8D6%a|Uv$2ZF zu1mA9ypc&frCMy9%(YNO_-}cDM*0Oz0bu5s2QC{1!`TGc46Lm~0-^CR-k+)MK6QP4 zf#b8#x;HR#c$yzBEOtSuSlk^QU`ui^Rl*%1mk)%QMf#>dK%yQl4iL<J*`2YUVfd3WJt;w+RNR`-(~ZDwfNMbNG@kX^KNxz0JlH@` z-Bt>GAsRIW2x)2g2^@PQuq%kbt^jH~9xzx7Jl((e@Al67^%B6p4t8bl*xk&0GA0fV zkUgd1mZ*3+%$1_jeVmOi_kDnf;Q-Jlu)I=FV0>IPIqd22%O}Pi%NXUm$)1Gv79n4_ zKXz2!jW8)kbxhK5P-k%D3_FtO-H~tHc(m-WM3L{$I)t})v?Q|T3de;Hy(Od4ZajZK zl&lV5BCGU~p{XgD1azzz&PKs;#{;dv#|J?p;57s&x*TLywDoWy26A}q>Ip%=U%$|W zempdsU(stVq|3%f&AS~tmd4qK%M!HE9GZ2Dmdh>-^0wUvZvlNifz_CoL91E3#l69y z4~}%H8^Baga?ib%=^lXX}eXD8hp!rIod{ zJ#%vrW0Tr!&MU8_4wrfgb9_dmTAQQ7TOoLlmiqm=i(Mupg%hW=Oy%R(w*h@GpGVm+ zXxe`-QY8X*JDPzb|6Z+xSxS>-?`JD_6FwURSo zDQhOof#49vpmXio%TosBZ;%sPOtzUHDwq^b{w-tg9;(F}|MA=U@LlTmObwBBzmDNr z-rke5&n~g8^XxQx>8gYxrnJ!=f?h1)%l~ zqI(yRsEw|0ql}j-6{LIqPlq2Tsk-IJw(^`!y1Ly5d2D|YAebl~t=jU)^U9Nb`v1eM z#%+5&o**d&MFx{nQU)X>NOXK7{?dNTea(IwHfO$vO_>U{RDOTK18HylBsy2a=zoDD&J-bW6D&_cS+0}w$G%FHv==9{)$zq975|~`sGue?&=w{YH*ua#U~P)B4* ze}(%Si(wh=yBR#v$}g%xe%-3dX!BKy$-Af}j-3Z<5gCmx)-iy+*| ztZ!uOo$@I93XBgSr3bbf={}4Al&%|m{MZ=-FihL=eG{Z$N2nh6@DpBsjR^zF<|Oam zyJ)5DXWJcby#9T6=<`W#IsboQTX(8CkUr`PeKDh6dCDy>&!E#gK@7>tpyp9B5N(Ozb8AB-91V#3oU0kjO{AG5wYBi(DSX+L``-M&-@rXX)fRCICT8M zhR+jgP(JVb1ZX6Q-FEWWwbfEDMK>zK-d;)r`rZBjj9G0!k7MGGyWB=uPHy*lP8^$i z)ZtU_d_}w0#Q&vn??c3gXN~HFm^L4PJ8)wFjm6OnQ$`l4?GavRodtA%;K4S|Mg;%N z)PJd6;&pQQ5xDK>=5s$4Lqi0!TG}kfvNn7&DsrKlfDxwc+PuNH#^%v5XI9JG6x~V5g z#FxGbZRNN-mM(si?sFfv8tHZ-evRPh?9?;U`kz|;miNJZZyH~7C^fTN|0>W8Jv%gqlIx#+~isRviX z-vR<|fh#8&9HtP9jI+)Y*>r>I)jU^$od^xNd#BSzAFCzP(R5f|k5-;AcOm)AB5e83 zpj6lm)nNu%IMm;6_qTh6m>dN8{uG9x63VE*&>Rwna z^7sKqI1qN%F=}f&HJj_HO10I!Hr;N{G2F%`i?3!X*D#j7=cPi}|EJWV3D~OTO1uCq zBtTtBHd+&7VZ@6m;FtyLm+!n_jmv#}(aYbbe<72FTh#Sjt>9yYG5y%Dvds|SZxDG|JS*J${Yw-z0qbj zY=FBmLtyNQ+nMI=m5rZT@gWo4)Knfg@>H1gnE{;h+ZTji?EF}Ajb*dofd%}nx@W8 z@9O(3{shM`K|iO?8-iX04!~?)Ek}+vxp*PsG9KUJ8nFO>31|e)HU=FeQWap!0&Ii5 z@`4XACKqX=Scu_Pk4#EHgOs-o5h=81{EQu3Qp3bO#B%_=kBYK8-;QF#abpBb17Hw| z1qR!yNr;FTV2-hYI3fc86F{&u3`)n#IXO8E4HM30X$8?O#XX^yr~C9s1D8V)5$XJW zddnTEO_Apv+~d%88qFd&8(R`bDn0O<^mRW@KMwj!EMqK%6)3tswqnuyeldklVo1H{ zQT#@TtkUL4iyq}ULwrXhxq}f{Ndi=T4-JfEq3nCfl-yf~Y||y&Z@>{*Kfj41?*PAJ zc&Hul%hCg)6A2erd&&;(pJK$|pb&7cvdDD~e}7hLx3BR593Tu{g9`dqSEKAnh{*Fz z@BiD_@Xr(utm@5DE~6M)`EVB45JG}be!IG}WB%)CtNQdT7q}D11nw)S1_#adUKymw zr34Ad$h@MI-R3iI`U7xTBz@)?1_PIIaVzuy|f9--_w}uDav8<|2MFkNvhxqcTtK|tPmIQpF|0J3B!--G{ z8WK8C;dUmNz<1-Mp{d$9OH2BSiI$dVYh>B9^^di2O6mX=7J7y*uYU8Bw>rJvecc%@rlK0!FlDCzfa#a#;@J8+fVLXqu* z1>{vSXL@JQ+wzX7DKJ=}gx*2=F5o(0F_z-gJM2+x6+ytZz?PBizCMADf^$Hq$(&D} zJg6(&KN%;!JtPHpyyRxz4fLtB{iK+bVoj}-A3@jQ`n`fJzyt~4L#p0ax_k7tzW{8Y}DqfZx*S7klP^(jsi6A`(csVzkqM8o#XXu1=Y zP{Loce%yMLH|8UI-A1}P`x#2+zv8KkiTquXK00+mN!omk2T;K&%s?l?4&hho1%06^ z^~cuskh)9?o^yRgMH*D%=HQbx^E@gRJs|Ul85l59%B_z)uZy*Fta$~uz8=FY*C9Wi z-{u>DLhuDdF*{NWAN2pC>@9%m3c4=Qiv$Sn?gWAacY@`j!QBb&!QJ(u!GZ;XI|L07 zEVu@O26u-92ohXh^UeJK)YMG9dasJ23hLZ@`t<4Evi4fL*H9Z+SSE9mZB?eN45{&R zUxcFa`Zt;lSVT&~uV7{~6pB{pdy=;KJfo%Vgt;f%zJ0M>>3@Aam9Iqtp0m4KdTp{u z;9%vReP1BV3cXxqxanPpFR}~e*l9(WxTIa#@7HmgHSYV*&?y!$XJ+aU{U2V#QR*HdTQwoGX$*kWmnW#tWkx!g!|6 z%Z^5K;-w4>_@v`8Eh%8wmLLs}B4icDAzzAgPbQ6$gwD z6a|lo=~}?=im+Jea8xLIhMc^jRH_n*kg!;%#f=e@q9uw>#-R=@lkQwpUPz4#XRs0b z^N?My{2n(?C&-Gy?|44-<+b?%sFQ`J6LfM4 z`|)ZcmKoLhoi*dPthRcf_`wv8X&>=;@5nAESE?FJY@Byd_~;ZF9YkH`7IK{r(jvHt8)V%XKKFYzeVg70HsPC zQj7>rvopI7mfo{3S;z7)qIywt0&WQT?1f?m2Q|RTHVZc_?Mv;V3F7<1hp(#oJMx1< zA20x4pXQG_1?e+i*3+NeGg=*S_P9~>v8rES69u6Ys2*c4ofT&UQ?6;@A#XOOr`-y};IaT5mFXs+Wb;qi&H zIrys5{kn?`Ue}(hldO~NG~~q3@*S_uENWnSEB9(BiikD;ilHOenPOBinVGnt(t!G8 zA)T*X$RBRmRoMxfDnEdkjgHw?VVh?Ktd|$a+S`?Y>*(%XXeb$PY2aV@c5Xtk4U>J5x+W0UB4+mkI0E@p^zOgQ zj~fdOh+uvZkn~IEy*}lsQa#@%F2rO^u_YIDAwxh?u_NVFii&C$2)JVdo(p-Ok^N^^ z@Wrj4>itba_kJ~h*WIvWctBWD@VzEF zcHU-ZH|F~8UvQHrdlmyBF%9QFBy4JHt?M&*2SnM~3k?Z`1O#~%6$%4ovWB&Fb)o6$ z4l{l7Z{K!-dWPHS+__ZcjuWVwxgGwAZu6zn8SsuyOCt&iZO|W6q^%7Rr_Lp8Aew5b zW$BOI4|8n4#sfo~Y~9u!j46P|9%txPcKt|FeKOA7Vt*dEqw3i zYV=kIz$;K=YVhb_BqMVLg&LxNJ5t75gR|om>16w|g_PsOyxn#K@vE>#PXt87rYA$; z{Z>oMaw`Agqja1f2CJTz>B)wFML~iO6h^w<;JRxHP(t+?P81sV&V>xrhBSJ7RM0&j z)cN7gA86(%W}Ib3I0m7I3oUL-b052eki6fb!cY?vZLDWUBft)jr2x~{GV!ev3q+kT z_6}iLG!!zp&{tDx>_if&MdlQt-wR)Rs^zJa9uKi#=*rN9O~H{CXnF389Yp}&dG~Nj zKcgBM2Rx8gCPPGQt3&Z^(v9msOWgPNtZVzj|NJqwaZnP&sG+N5sPE3)oxBBvS}8KK zR{P-mA1RK5h2d!k;ZYD%?&`d*9)x|#@`$xY;r4hO=-IZcIh{9tT((e(b!chr0DmC! zy^YLxsYwY1?RCh8DRTfudKZDMEexrsS#Hkj6EF$yCfj^TP|)41TA#PxK^U%;C;j2n zjK&JkqW{f(o5n<|cIbxO+?G0g!s-m~MK?DW{>Sc&aPwKy<@1^3k`Qiqqig%XpdfPM zz^}JeJkpg8u<(m;xuPzxnRH}mgv_0WU6Tu0x@;h1p3GBchEOP`pP$arVVSt90}ejY zKj9W?ne?x4O9l!$$eh%cHJ;AF@(r+~UyaVrC!JPbHl6D?;S5wU#i=MM;mh{x9KhP! zD2Vqly*{NQ77+p@j*AL9914ymLS7q>>$1_I^avRyH5RZ3k56n=u*Q06c7JlA+wEdR zrC?-!KJU8gu^Au4GI2@zA)w=io%C6upGFX(NLgi{8NR|w*4;IO6T5)Xdv|~0H6?xg zo_|t3&F)0_6eUbH++^7(r@&Jj8#=}WCx!c9Ab?%%C2#yIm(xe-k>XMgPCWGIFL|8F z6(Wp^%5~ynq2j|PtnGqbst?HRH4G>K`cFxW_7GJG?+0aCr>A8OhoW)hhlVuywToU9(0{IF_P;a#NKnK zZRXcd&B#>C1TH@4P_oABN^wAUo6TFkrIo#}?A(h_R{k9&)%(Yt-Xu zyXfxkdV3l5G5KA(a`soQ#*OoJE>lUbC(X6%+$*D-DgoKGJeA2{J{qIuyUwqd4_LKX zS{nv#Jfm!Az4OYcn+j6@GVc((9WT17XY-xcKko=|7a>CdZ#KSEz~J2q?qfhLsuk7p zg|gqHK7!xZMw0T0_ z@zPN}vSRMnmG=x*i=!oLer;Q-40DrxQPUU(g~gq_os+#yJv`_+4IV zNf=BLJ-DllYx85;OPE{{NPX1v<4Hyc1GT7KI{nd?#ZGqOkPc~ReYWtqs!{fZ>q~&G{u-wO{4j)OyEgk86BJGO*7n2^mC&YsVT}%0Mrq&+2w_oG3^S z*lC-kq36b%&m?#i6KC>PRvXdtZ#>qFfpqpx)Bui7&&!LI2YeNGEoq`J_2D?;;tTC_%Lm`!6Gt6R~B z`$&I;aSnC_T~h1E0Fm3)iVxQuVQJ25O;!&nfBRMHh8zll^-`l=2fmWTN{cwMR`e#} z;3q1m_(@#;a6^xcQe!;<$rL7m0iUHaK;!;%4V8BoiNOiAzT!GOY!(%57>!qd(T8!0 zM^Kj8Iwb1LWB>A&>;Z9BgkuD2m)KagvLxlP2hh#)n=9Yz1Y8oD*4w-ozwoBSf$E%K z5D0b87x2#%+fioK^TMK<{CUyaU_>?MTY8_yPzTZj<4ni?oS^tkWCv;rn{H5c5O3dG zzYy^4)I@=h^I$0-XPjviatqDxe;CIZy|9s$t=co#Qt=Al-LY?iCxM`3tizP}pi zpwjF{c(M4pM-|2TK44n=(ka$^Kc~6*xx4=#*@3u+y@>*n)K~LZvHg(81TIsMM&a~; zK02bzL;d{*m&(Oa12aDgj<0hj21iF^O!ClO)VV)tRiJjiRi)jAIFo&UOe6}(5ug;i z^G9aV{T(UVMyM{j@}V#~Un(moX;F#xjo}XqunM>sC^$U4D76%fV(XmKWm|m_1B7x`N`cMO+{F?Y5=m60P*X6&{jMK+TPpKK3xo95(Y0!#1fgTV=Myf%Tm* zHYX>^T;mbxK4T%KYM!)L*#4ZQ3ivmAHHE11FAptPs)$$&Rs6>b=EkDy)2M!@h<1*^Tn@kHdOm$`&+= z6FYT>SKa&6q6bUFv8@U{Mh<8=?e(u;DYlyKe558PTOp<#ky-QHExRflu=f+%^Oca4x>TWWqDvhpsZbWQWhUCS7xFbWeM4@$4FgksVS$qG*P>yDLUI1Vyq3CA9p%f0`H zJy!969PzuszU*^9lC~T5?G~KQ7Wl8+m{>A|tCfYzSy+$M-eF^}0iCSS+J5z;q)k}> z+l55-%QXQB^7qiQldcPlxSI{k97WZ;!$f zJLnR^EPLj8sSAWZSJLtAP|^kA5G& zrE+0wl;XU@jTwIZIeBQ|Vi^Z|HMI2IFBMIZal8^sbPqE&yr)0b3ixdIAXMIN`HPEf zZcj8c3*M!V*!k?t{h8&{Qv{Xr-@Xxk;wfX9seBC!ffow@^BN@8Q>d7?{Yw%zf%G8W zP18^<-QNB6CLCLWhA=J1MT6OvX|~}TWADwm6^PN;e{`bqVz}g+tFTy0C$@iK zoZ72?14WnVOF(MKh?{7!G&73>BZ>ow8a00!Df`(|1PP($;w(+GNUo?HF}AUZ28bWP zaA@2mUzA&`7C$w`ZhkO19 z*x%1tS+T!LlxOX!!)fVUkAEp^Pt=z|pfvY1YWg8QI-jcZEL`2*k5f^+@UNjUq5Ml| zIC<^*mCtQ&TyHrWwc*CflA*ueMg)|okU8CLJ)2qCHY zEC}eNi-1mi%)BXi)AQ>W9t{nR`^_g(`iR~-Sma7hXmU&+HVT~5z1Lh{4b?kX!)Kc; z(ULsus39wVwHUp7E?xq&o3nR1O-}3pgh66wN1jQPWhK_2%Bw74LUOc2B~xCI7{%tX z|APdeD2G)g6AD;a(#rzsq!h_i@iEg^+3G75{7OY>>IU;OzJ>-2jPVTSWl;tzZQ zkAu+y5oIY_xF>#=K#H@#ZD7>gO}~BSBLm5`a}i{yRfMI-CTR3u8#N$jFt1nVNi6n^ zj8NLmWSRo_1D-+?rTQ5%Kh)fuIXYTSSH@(cy2C-FfwK)HOtof-jLghtpN0f@{;opc z;c``7#d!_gp|y~eEc^B8D9c|s0eCU6tF_R-plrj%%1|X!szUdjkbDUR;sg+o%@^+h zG32~?TVTo-17NfxjEN^s_V%$=Xk_rbKWT|jg5q+#W|bL1!Z(;$4W+Hk7ZE>4A+Qab z1@H|(*Vd+(Hp$X7Rj7NKU29WD6JjEphNu%yp6~4jX&tp_co*VFBU;~Qv%D9!hKHNL zDlRrv$i5Q_xIY&@JuR%*#Aa0i4yxMoNE~1x$eD?X1h1Xeq>IF6tpz}@D0%(vDZHG& z7aXqR8%1iwpY*2ne%iN1W+>~S&YMDAOG}6Vs5Ya3SqB4y=iBCsOhZ?I?fJJ5 zRJW>WX{(^>eHlUU!4S}Zs$y5N|K(pV(T7Y@v=VW+DwjFlj&l(5|=!+ih5XtYIx^m{;#$KPOL9SVSPsoYFIW zeiBe5S43)IAqNV8V(yD}v$%f*vrJf&w8abHk?if^7n#51|J$dBo2|@xyHGQ4h~$ctRfBcCxX7buDHTrchPhrs6`ZG8X%$hrKQQ1uW_^TX%#$~QF$dEB;;4UyakQd zI<;#+^`(FWp~4aUZ-V)JCt{J{)VWQhfx-KUFWS@r_bHZ4IQjATsH6q`GE{!!2%u?| zfWJ_NJHFcU9+oL`#oUDQykt#&?9Y2&z#3l%_&N?j%2VB`Fja$@dFrZEmz&@1_aw31 z?4;$PpScq(!;Z`jJ;quoMuoI=Gz;M=sBzy{s*8i3X^e`HR5=bAQ}i&Z#*hXoW-Vas zj`k5RcW>Nuu9cIhv)~-~kAN=m!MG@h|1lDcM`GaBfSSpf!d(Gu0!&?54<>wba;wi13-Jy|<;_oHP}oCP zSLck?q?=}DQCUBZsFfAck8Bsarn3&?-j|hDEYpyn#vT{46}B*??FLx!Q!N9ZAf+}= zf->I`Z9*Pke^14@_e)-c&CT?{I%T)CFklpU%b_n#;!{>H)Wn&cCCl+DzF2GaTs=eq z!B&-F8VI(qRByQ_^pDzRpMe?a%HS=j0ZR@bzF2L1zwm77k-7DmF|WkSG`glV0#{;8 zdctetI>WNEC}t`b!wX~rfswz2N=Sg}cg3$=jy*zNC5gHg^z@Vzl49jR1YnB*ACL{q zOGGarlzGxiGEYU~)lAMM9W5<96BAQ~+0<*JRp`~tWLQXsq@*M@U@q>Cnbok`-VR9h zw0@y@m%cY7ggTLTviW+mag}ZDOEo44hn&IVLCf>h%FfHBFd&vA88E=>1JEYcbHsCQ zrXR-oQ?Do#6UY>~;W4tJqEKRpuzI^f`GMRD0X!JZv!&_Qol^hh9qSdyZ0O$F~W+WOQIu8np~Lq`%o zKtEzjS}(`sOK)l0n=teA*sb=9-*d$q?e8*-WpM8*mTHiKRzb<``1ukbw&BisxiNWJ zW-T^?U`ROArGx-LJslKkY~j0?_&q~{kgWd7UKlxR%decfhe^+7IkhtKnHkFpGh*SY zHL>?srR)p*9MU^e4!tm44*jm-IjKj( zmrW~<(6$&f0|SG#jg4Swd!)6x>AYhR4~VvPsa;ksRB?8y>Gqe^+%Fg2IQviGjY2$c z3M{Kl#t&HM?t%ro0~cc4F!n#3OYZ+`hL>uVQkjw|CNe*UEgXx%o7fgv;LW=(6CD{_ z^jhtaZ6P7274Hf9Bj?MrI8=03Mxyj~2$4(pV)b_hwMNdl9ywo@FksE{DM=iqVyqkQ zM@k1qv~r_rW8Mo%D7ZeHP!a zdN9RO+x9Fge@XDBRO^lA1iC6|s9~NX?f5d~1?8JPycROf>E#^ZzFaikC%BjcyRwa( z`UIu>b6zXX?UvJgx#;T#p`FcZwzik-U(B4>a`EXzDIo(T(g>gOdN%5sTD^(M!xpwk z{@?NA4Zoso`@A;6^imNadh&vh*A+>Cv6OfZEqzNEMV0lZ|rMm6OJohMC!Tp{4NQtNZ3jt4o-3>_+gdQI*#(*|FtBuCb4y1F?1?A@oLYOqg@Oy>hZ!4K4&wDgX`7l zI@J-cpGUpO4nj~9MR8R|vEzt-ud3ZY&?Su zB@5ba_&nBT_b}zds!)Qylj8NB?e+FpQzt`RGa71~xFC=#pJwofw;}&$I;D< z^u{g1RTY=aQ{2n9b;U~+b(1BO?>sD#W(Uh(^4HjC&SGqKqxCeK@Yy%B(`jyNGqSn3 zW?ZfXD5#0WdAp(R5^#KOr4|_*aaal?Yg?yHqy6PXUa~P%XptGcDWIe};w}x?8BU={ z_k-sL*Q_NfdyijMIv#~~cldyk^D-0$rPcGCjMuZ`}0))s6$ZZV1Y1`M+r`b4^;SHi7%94=`7!yq7PZXVHd zjd9TMVWS{&*mU5lT6oraj!~3O{g(aV5bjZ}BYN(%!}{)xx-*l@m+ybq zpCw|!`%!t!+HxhNx}pARlZv-2Ouu{=k^ED^JSL>}s?(*u`5STDUE9P?77QgmHHAMZ zL&G%-2OISn3L05(Q`7s3cm5v%0R?&5KaB_SGlJ&(2ZRCVH35vNuL?`oW;8xc!gn*) zUlY@JF#=Zy1`ulZ7X8^jLE5PQ8q`OoeK z96hvlL=vN~I@Wkn?%)?6oF&%XZcw!&3~x8LAbjwe0F?$`r>FlWYFJsc=366yPS@8x z;?yuVDW~0sE8`K1Es<-VFo$CoBGHx{2&7yjZRWVu>tl8f);ax4vU0E9UJ=TKDnIN{ z#3*j^lr-#ib_BzKNNLr#&*kLg01O;dS4T!;>4@my{6CTG>=lwXPe`@~p;N_aOSC)` zg=K{#k1kWh$IQNEXZ?9tXfX#)V|935<6F#+s2Ro^e>$A`1#w?X@2)SJ$REe!1{G)Q ze+bLT!2{aG(4&q=vPOsB0h;^Uu}hat;;^9-k> zc-vrFV>T5Q=k!fk0_xJoXn_ga)izrRXGwt51NK6AXZGw12m*o{6>INr+Xj7XeM-pr zyZJY*+eJthp3nKEru?7SdifmgT5~10)O41--N}+qfM{Wlyt{^Ht>w()`f(di;mS1v zn$`O-uPL4SJAU#&bI;yLlZTqxuOTTZ1Qitr*us7sen&?=*@LNGk96#JqRzqrSGSmI zUng<=eOQbAzLUHqeZF#)TfWcy!*~+TEMnKB?`&FtEG??ORi?(xi{qxc2_cq&QvYRq z_imsx-D`d-7>sLBam1JzqO$BRZT@HKFAC+g zI?NuIA@x_9$zYbv-pOAq0jCo-Q->U> ztFO+)bzD>useT`{dmDbLYd3Kv55cfwAPujcziii!;C5k>E1Z5sOzWUN(p-{5pYC@1q&x!DR4RlMxLtYf33@z|JCg z`m|=ny%%ehRz0JLtM1x38Os<&e?)3Tt+ktW{ci#Ef8E0zUjLjcdzB zx!`Ky`hA5SHE(3a_eNBh)=PkTbgk%7JEYJR=H(t9;o+GeL*47n59RVOE2W{-{_ykn zuS*WgpFXdQM9Jx-zYhs1RZ<8zA*h!;MAz3-0Yt`?lo#{@Q+MJQCbM7hlvrePcq;S* zTtXs=;U8#Bj1SV2WOwpP6h!!gg$6VLVuE@hW%>SCMCT^_ZzKN_E9Nm^!z&{3ivJ8YC?(K4yNF&i zR-1cK&-s?#c!c6hDcY&IOG@Pv<|~~CDw;rhkFPb8_lEEH9QPwH}gGaqF{Et zBu8m&Gk(>W;)n6l;^)wR!yngw^-$7s-%OIU-uaOn95yT>geYrO=mZn6Xw}529)&jr zeh^=byXxSj)0N@$>DMjAISpeoBsKf-u}i1Mm|a+eg2T&+Y$oxHv}E0h=@o&ehegT} z5667$g8(ffV?uY=n+{Z7y7{JE!LqcNli7M5o#u>?7_QM(xEz3-q69t16QZN12PYmq zV9LnY0Z{0Z`-`^1gmP!w0Qku&f`Zw`faBk9V&*=&czbirE$Y|Cy|GovDCz!jeX<5A z9k%vH6y<37ff%M?(G~IlI%5+kWYm+Ws@ha+?q%hh3tq&>NGsK&-_P(D)5Z!H<%)~7 zipHWMXI=}#otpA?!pR8|*!qdXNNE6U01uirq0|GM56l!DYh@4^$VWWZ(6SVi&_-UE zx~mXPQi*C_e;@$UX||!90`A_PC3;HB*-xK`G=xapISVo2bplvEmTWat(lmveRsq`K*wn{%2r^gT?V~rFqJ$iNf~;3xV4)`rCz48nU;?)ILfYA?vXB`Npj9mBMn=? zBfWHlH1hFX?e4!QCFu8uGQ_+8*@_?e{L&P_%R2RYSToL_ngN+SLhO5dJxd?3ha&1K z)CiCag-$xa2gl3lm#ExQSzgVVI{!gQV5^J^F(l%ZbS{UVotY5Q+p2X~&M@5`Ql0yL zO`ggw)-9yew!uSQRUy~cT>Wv}^aFRxeGV3|XJZ=pwqVYww6%(8ceBw+-Opojjmz|D?SfBjG8UXC9E8Z3x@!26x8R^0#Nk)HZo4W|X{?Z-xP z9T{35MlmBKG&J>3pMOoV`sFgJ(upZy=IKCUQL!VBtq<$1CYlpOn5UR0%#9Ida8Q(E z$*)PnpfpdKg0Eckgs=9-gg%bqmkga;Rv;%3l}`kknF&0b{2+2_3Pc1`8U1v{Gqh)h z(UG$-$AHk1j)nKUKLX~Xn%-(@}z(sM)o88d7*Sly?d^-eM{tFxqgz zfn|ep3jZNb$JhU@#3!9-YQB=ZimmPOD#W{DRae=^YQ)2m<^u0XyoJDnxD5?K+%f#_ zh3RB>;Q|@3|Je8DO%DSf_mP8hTcZBn^mPa8O~@_}j-^eQHVUV@%cDv~ky2LAi{7Ni zMv#O^3vw$+F#`iKC{HZ<9YK%l9pUCCa4kpq_HLsYyL|mSS;vn)D8eSrmc0Z5` zV`!+Sop}=6syaH+0ry&yLYZVPjJQ$npwIeTW7Rz4-ADbpUAI7Qaq@x0ju5^k)z0-x4m9q$t!j5w>Rl&mNsj*|h0 zm0XAiAuf)On8%vHVOh?S;`yWkJ!TtK=ua}WvwJ}Z+`Tm+mE`VP@ut|PY}ffNGYd9O)I{RPY8XeD;NCxY9@gXZ9% zB~K>aC|9Fhhrd+C`Z*q+3<@I4I{_*EA7oAHUT~*bUx@-fr1d%T7UI}1!+9uWT{3Bl&DgI`N|>(CS^5TB9qLw-|^w)S6Lm-W#Rsy>Ua z7tilVoSettximu)34k=dMWNkt$4yF*+uo7O)3O7;!0OagJ}=p3Z8922H=YLN<^EOb zlHDJ;0So z-4pQ1-<4s-jm_xQ)DKQXBZr~hlx&NsT%sEp@HL z4&bo+FZnT?T@w#bRd^c|YNiww&#D9u_mwHX?ku<`Cm)^>4!9q)WD^Mcp~$dlJn=@s zfr})fR5Nypn&k_zrKRcI!sLaj-$!>D)LrU77gIzUrN2KJIX-V;JL^9@OdpI({u(Dy zpZ|Zy`*62i3xPQ4H%i#bL0HYNiAYh3a3y{#lisiU+pLPw>Q{evO+V;&P~_PMwTgY{ zep%~Zdy_-lo2eH~m?qktAVs8t3IU9)7F*^8&3bz=Z`~!#JTc{9>whXd=f^SwUFtQ~ z=b{FRfnTBJ%)^>Xdxc?Ory@+2mm#!Vxd}=^7f~hEq7-0Y=45}ex=@Wsh#iD?(iIS-G3?!a9jLZ zpe|4yG{5u=mb%W%#dbf#>2Q0Q<6_q0<(irr+w9zmE9ma73oq?bkfHUDbf~-8#6zUX zrcTJo!}74Hn)!4lx%ugf#Xg|1|KhrpXt=q@3#|oRO#U7=1_C!DT)<=WgGqjxcQs*( zg}*U<2`JHWZUq}kr}3hwFczlB07KK#m#(uUKVAO6fvEq*rlj0py1)?c`HpUG1Bvv* zUSk1gw%NQb;aJv33>JrgpMNX+2_Ms=qTltGyB2OtQtc)dehadT;pecO;h*#2Bjj8Z z+U)M8a(=68n5t2zaY+gh4?tSyf4#mO=d9Cl$G)X?R@JUx3C&JO)q-GQ0e#07$+AUqEjKE?E4NY@?Qi8<#_4KF4byRZ*wOdHci|3b{n(=@0<-CH-eXRsg z;lxq$j-v)n_hK7-r|Vbh-tsh$|}jJ zZAhryqy+}mS;5}Eh!=hon2mMhpLcaf_&K(_kMhapU;o<+^ z%tQXNt=jPa8w!L0DaCVgS$z9KV@h559pCRD)t+ZMuRX}y#k`)Wo#Tx@cT@zFUgKSt*nQXt(zvKJIVvuZ;n4Xj`DfdM%DWj-}01P<$ zX~6m-o?Rd1tgTCfMyGu~XxO|W61`Pq8y`un^FUu~QC=LC5)u5V;t{_HcsR2^N8;*S z?MBbDo0DQvowv<8vMGA#W7a()QpHkJLaAoGyGj4r<`v(ySUEl(SV+NN?h=_bXWQR3 zA!+et)*1Oa41$(e*$OeQrrW};a%6n6Z(j_i+TC6U8tA&GYbGu!-}?zh{qy=O&e~r# zLCm{ZpjIZRJT@*ju!IfG)}AKjg&S}_E8&y?*_yM3CiBW&9?q+*Z2LGGcZ=M%z5Z8O3da{W5FMe6wKZSP!KQcJLbx$5PB^&WbmM8>Q56>Z!-v(+l*pWeqTusKNbX*;;u0_ za?Af07XaaD@a{#1&#!33+VL4up+I2=>dUrKdQ*|AB;dS_eH8Xr^nFNB8e~t;`_Ckq zA3t^r!I#MZnX9g@)bVj{m2x{{Bzq|EkJQFlVN-;>i`WJKB{q&bQ9C_-m5}W)BGiv| za&|U#yDB#E4n!0{1re*dnFzw~iPuy4#a2AFm_%tMx!c43JfJ&(qO-;c=fOD3SWPl1F>VPQZ9RxJrNdM|bz~z{1e6;sJ zBIJmvB=wTN!JCjo*+^FX2NQ~j1Y0nb;*9v6eK5k-?U;8a0oH>3Fn9D*_)?W$+^KO4 z#8-BBJOQn6aU)SZeMf4!s*@ph;eh`o3sywwG%283J#kV0GltVX2YVA!T0lX-Zj*s! zP~xVe;t0>;EkBMSPawNEt+iQ$YQ4??tx*1ilYloDDxm5>sPR$3**ygPWhiBO*QSk6 zJb)Gus!;wr+7EhS(o}BMcxvEpD643f(zFDK;J{!-@oX$9ws)t)g5dVyPoGm$qx}Az zTxWo~ms%ySc=v!b!))A9alFY00iPia5Hj4>u1;FV+-bJA@He-9FiJv&mzw=?S(VckP4yeV?AKzl0A zrakS-3@uMhPDTqB7hjY)8C9ReEKf*_222vvilu_QL~43zVwJFD^ppR}+) z_30ytNnyR*^*ZIEO>V#8C)5T>{9!%_))+N?yF&1>H1vD$EihhEAyn zZGlF(aW9J-8sI3qHqk}+1RUJN8!%6K{mJrN5V_>`^<@Fn->#m}nNr%jp=3F~^r5kOjEzMN#p}1lAD1IAx3eb1^+Eb%(mJ3h?*Kr@XWIZz{2Z zc;urZ6Bt3g_gOTqo^LEY3yZBP-Cas@vOL~%lrl4o(nQ5U{3^Z-D!-9{H*DK`F;4Z~k>$jdKY`nr^OcPFS^?+G(yz z>DvB&FJP%5!BBbC>@Xh)L72%3W^>RSwRAee_7Xy0*iQdq3j(a%i2_jOLfn>StlSD; zO2&gul%bmf;5tAD_m(p-z&tp3MU$vg8wbsH@|QrWavTIf;CDpkDcP*nHdZvOhf!qf z_BUB|-}n$9q$Sc`FKKAV0s^Ko!1e`icB;9%kSkLUJKo>yi00gdb6)_dZ()HPVx394 zo^^Faesu+qkNgxT~^@Jom z^bZJ}Bwqry+=Od7`%R@IdXYw`SpP~-l=lgvY%ct!#oSzSW9h_S#4u&%)SX;HUg#eH zmr0f^E$Er8r84YY$5NeACDZ;ZenK=Y!DawulTTT5R5PYs}N`OD6c=fVF_p%|! zhc;M%_nJ$B#4hs!w|i+RtRL|HqvFSq04ygSi3!I4CsrH<0zbofmJQm9jNH8V4$db; z(AP%;X>Y^}xSa~RgfvMYT8#xDF7QhiqHe}zaVZ3cO5#^A2Haz9(AEAwmw^1(QS$Fk z>E4>wC#MgLS*o?Bb%$~{|H+A9Jslj4(3A8vcGl82e_*zqQ6bfA^^@<@G^tgO3%wuv z`mMN1xtsmuWWIjjCAiiwCyXBv+F6~37|`}YwpjzTa^!Np3e^$dZIt}tTy+eNX?2%; zmm53(JZF58JZz5;1fyxfMs=`VyKjTBsp}UPuO$DD=0gu@z`6l*aV*_8Ne)(RqyuI|2{p7%T19BNWBr=A@C?gciQ9c=ubnM=0*_ap+Gh_NpH_jKNKyo|V>9+tInS|va;L7l{ut3~GUg=PY)ug_v|h&jJX8R`~k z>5m&~#)h+*^0vyFx9izkD>RxD?h4j2@QE&G@vk;=l&MrpO0M z@>hAXket8ajTadW?%vJ}DXGBLd};|4!viF3z+(k+=*TW`1JkKwE?&UMd#+mrGRR6@ z{m*caSarIeB3=nF>DWwa+=;Rl(_tr9d8Dd`Or&bIZ`NGnIPbFF)8L?aX$5Mg?%y$Y=joqz0v4eLPYb znn6NuD@i9HAfUn;LzpY6=-%6J8N4Y_u1Z&!KA}PZMWKl$#7lavzo^B*rPdaZ8D@*)Eb6Gt4-hki(Qi{;ru=yeaZsvr{?LNko)Z z^E}JCAz<68DgRd+fiu_U#N*T45MGu@av*YJe0M5_qkb1cq}GDmzSBM@q26MXa&{(+ zkDuJx6N<~LnMS4`vNVUA*JCY6dZhqb?qI{o3a734*&=aqaU~=+QPAnf_FnYLRI85} zn-D$Md3cU^Mi$O`x~@~Z&(qBwVcH`p5!QamU`a73tw~yJbT|iik9V)J9d{}Q!mjfM zEg*CL(wXd7?^7(E%mC`{z%UJr$G* zFO34}dSzW)OjZ(@!~a9uUq@xVh3%s711KTg-O}A1(%pz44bmyy-6aAd-Q6Oc($bB9 zv;u;3_nD7x>^;VQ_cy-t#~EWemSe5wS99KdUGu)<@z|S=LMdUsMV58iS;%t-!-nS; zWD$=36*93BXU|tWE>&1TSVm(TG`>o`_YLgnnqRn zQdG1;Lpa=Mx|1;fi6x2$lfWp7l#!cE^J#2C9duolDurjx*sjmaAZ^RgerP0*mJTQia{NBg5(U)ZYb^=AwM7#c_}%EIde+3vVbL}A>pQq7=UA2Zg08l)Oe_T;R-rLnNjw<|S>$IlM! zjt7H3oBVjsN;E~MQ{eJLDOT4VTu$*P3cd3YBEqy^mE&(<`Pn&A<-O$2rQn3!CQ8+Y zm1EE#(=`Jn8>57}I%ahAX(F!6i;Nuy@$-Gh+$M*9FF0P+i0eUTE6byB(Sj1Q#ZP|C z9}Pt$%MV&>)-AGf7O3yRN}r=DiQWkMi?-v1R7yi|cmhN#n2)t*JqSz$Vb`SnA~v{D zQ+5`UtmilE{CXhJ87q8xixHUnVjg z%vd7=gFZ z|E9LXlT@I?YdtzCnNz$YmGv8sx1`VcnaXDIhcDra(Lz8E?S+eJc)0!IY_3#s<$mi5 z9s85Jo3G(1#`cU2B!i=g&$ehGsjB?mZtu?bg>CaTJfu4~IGD%-!&*alg3IGd^+!#Y zA&wx+!?~kiR-~RAT3f{&!_De~XhJ}=_g;SZoBlusw?!Nh? z-bY~e{uALP;TdPu>v(G;Jc5!+L5IvVbYw4r0lcq{gWK5*-kaVrsuLER)Z};?p4nrz z``>6Cx`s5Oy#_u9e~VTv%AmEzoNHdOTiq#ihqdsf>P+zyI|JzR&=2f!Y z7aWk|#i3ER;Ea(i8@8wzp`~9I6fp=C?%{1Q&E=I}3zI(oepyZARwm|2tij2Z_>h0G zk7d~`(6?^!tG=TdXJNr?mWiwG=&`^;$&WmAh>*a{I5y%7KX%iTel!ekf`7-2R_KEl znY;qr*F#~9N0+W{HcL~Cj(uGHH?2q}zugQx7&Z28+abB<+!7Aw{mG&y*A6QtTH$k* zIp~;53d3;1zHbzGZ1(n~bAmECl$6OX1~H;2He*dp^$*-GTzFiK#u3Ax%hvT=X?u2X z!je05g#O%{KulyIIgrvGbcWKZOJVyL*@9>^3L0(=JS=UNVkO&v7ZsXBgxbT7rTxG9(pvKteV+)?? zgfNS#t8q{@2#AqWeJ(AH#tc0?{K^=l=e=QR%thZ7h>P7B_V^PcQ`F;GfZYwcpy-rz zC>$8$recRqm(kYz{^7eoxWds-sjsk*oRC6c^!B#jFX3E{<{5VSd2Lls$JDd&kQW8zI|Ti zVmBU!Cu#OXm}(lQFdx%Wy4`~rsJup8Ar`cFTf%q$!0#*M#W){fDD$gBs!v}avf-(T zj8GJNO13F}|1u}01$+Ox9TLbDmSnQZ9|`a{9TE4fY=>j3e(F9Ec6}N8XtNx1^kvNw-SoizZQbie(jV&rZMs?< z6)kMK&fLgorSv01Jt-Zhm#^Jvp47=>ORj4ET(_=T#xl6{{Mf!i_)^XKX>{n#u(^m# zT^N|5^r7bI2VF8vtz?d>#cFo-==4yiyn#<0M^1QcTR&>^VXJ6O$%K(>Hp{O0us3tp zz%MsH(P+fWF(-Tr)(3Q<$w+^jTv40g44!?R?W3ovNs|xwQ(6<@mBHCa3mfgVFXzIWgXK6&Xa$9H<*c(n75zj50Yt-{x}Jb&r7)H#;pHtAC-4~U8(;&O74-H9Kz2b@WOVFZ~! zlPkTR?a&AD^Mn2HcOx=Lq%SCm`o|quJ0IK`W#a!{_T9~%%Y$I_m1j03D{IWQ8g=1w z^?%{%tB)TK3!0l_KgCo1_kYUI=j?VS`4_|f=Z~nUG^UE{Omx3{u)*pmCrYG}4vcOu%48^g$a!1pv+B9g*;!JuX>XJVv)LBg+ja?*Jjm}jMB!ZClYkaJtN z{P{DWM$b<`KyPBKh6V@sT#73Fy?Vw9h#a#mL3AdE{4Zqyr?>MYF-ChM1c%0XgF7B1 z35a-CsNCo0`w4=g^g6g*M%bdZLKGX^qDD)CCA|i(1vv0ol&g`38Y(3Lo#K3%k4q6r=E-v!k z2uCSzZ&An4sdCsLSHnCQL&W- zauir)Tc%N=rEGfzGLb}W&eTW{r@uc)^*hpk6uw*j@l`@@2<3AIu>_UZeW@D#b@@wF zNU{Q%ynGA4J2UK>p9j&|_VbO~i$dDCFhn*^&bZqWOezRSLew=CXcBgJl^}sqR6VD^ z19)!)GP9~MusGpvZ(A{9_WkwQUt=Z}6g>C!^WpPimU`oHWC60JP{cqi9*J2kJ3GAL zVH^mfO-r?*a(9`gN5;MI!O|jVV~UEhw{xosaADg!{0@{57I<&?H)FnWOr4V&xV_Q&3L>KIzb9Cc>AsQyHm4Lv?i)*?6_TfER&2(LZ0MiGi6I zyF}5@~;b=lXtN z8anT%5r}z}O5K(KiH_Y=iZ4^J0b_suW@9wX>io}{7?{IRt7}HByfa^g^EsWU`}=nZ zXd0ye-P>@`Um#3E{VotD9xgii*Y)MH<`_`~P?H4J8tibUaRUF;ZX0HpQh zz9Qu?3vU`8^C>Ez9w?MIY<4o?u$UkVHS!lgXRAp8ggMVS;1V04XS&C-ZJ7BQpS6H# zlo0?1Vi{J6OlM$DmMr^qGOfsJwLFhkT|Eyf`ZuQ!{C?h)`UW6*uQQa9@&3%wOZ@oA zW;XIE=}pt2BbXiUHJUAgh)vtBb@X1l@Lh5W0|s_dR2o-D7+RQc$?*Xp1aic~3M(s- zjSm$q(D>6YG@{0Hvm-bdi`l4?90^IlCb3kTlaH@wv%mM`a=FHMYk>OAS1WY)zx*Ly zXW_=z$JMhxX={OU3x`*UIIeaha9y{L}u=k`Sn_CsYNCp~L0=B*}zm)an(p6{*OV2X}~V z9sz-~vj~7X#R8@YMimy`fk&O-ydVS3`@kdq^D+kq4RZ@Tt6%NrpzUFQBK29F+dj_E z)|6mC<1+geYz%tFz93B>hz8{q>#|^=4bPzZPb5K`6wDFsb2aNC{>qOL&-*BRrUc(~ zuDp)ln;X{9kO@fFH@yWBnu#MItGoOA0Qi>KRU1NP_gIK%Y3uwi_eIq6{X3SRplRHn zlGho-@-7n~a%piv*h)2G)lyDpN=-#3%^qm>;(AUhwDgK9uLj9&TVMQI>qk$VU^rfIr{7bAK^vcNyatb`UE z5D}{n(TO?fi|4w;TwIdOhQcJNY;66XIYesBzZ;$(b-`0oJ_YZjO>UIYWLtv8mMl?$ zE*Lj-ohdle8s=w9MaHJ53BUp3!4{X8_1`p-;@u7?B+Ynvc?)4^$_JpP1wBb`1AN9m z!~2SHN5f3X$Mz!$$tb{$IzjskGtlJH`1U-DK;S)gPtRs3nzB7uby!kT4j@{{P}7qD z7MnX#iB{U#nUIqUITTIWiHxkO&VE@7Y7(=v3Csq3;l#SCA|vH+1-Vl^?%WxdnwmnY zSy>R2BPXHa7cyk70hw%$ax{`kAhU-$s#mYbsn}`=B*UMXf@jOg4Pk;SrQwhe)k&dJ z_o}i=+1SP=x8Y%SZ@R|l?fruXq|qTOI5JYJ{c;KaO)UjMTG|Z|BMkyGZChWgi~lZp zQLsUs9CxgeMclRL0nyE(8i@{v^yKIzS}@QpCD741$jUFMW7HA&FRPRjAZpYw{7N@XV)yu&Gq7<#SL}_A zb3s%WiUIW+1Bu@Ytf)Qyn1Y(agm2a;+<`@wairlN-J3V+) zwYs@r38F|0Q9~EXsL}@InUnTz=FwOpnXm!zw;)xr{~uJ1oHb>OzO^_78eeQi22I= zOg0Ow|Kb7^aH+kam%Ta!5m{t;E^r~J1vNErLPA^$v+02u892+0%KdqgE};JqiqRU& z@!4{8247MbT9s~S1YJ+JI6fH}_lH0X?N?CEjg;}{t#Vk&tOdUH@0u9$yLT^8h#O%5 z9xrZg-a47bQ)avHak3}|?j_c(%_PqD;VsZvd_jQ3?=~f3plT(SPU+hySLv|f|6RVq zbU%88l$D{gTTSXI<#b}p%U^-V%7e#hJaMCL{nORbaIGw;OM(CR-6}eMdltwQi2x`0 z+a{H7Rc{$~7aV!;m=R^%-SZ~%M4CQ+8tP|JwOaUv=E`}x{?o7s zxWI4xZ-&J%#GvgHA`_Dt7*GUNxI!YRev1Pm&(1zsBvtjCkZ8|z0L3vhj3ub+X#^4F zzQkr)KTP6+Zma`1$L#EJ;MWknpi#ROMf}$KrfJxZHwv?Q>1k<{P>Be5G6?4|^EUqe zv14~F098Wb@%co>VPVTc^*=j=3B8V^Su?~c|+ z(^9sufB{V@t@7VWXkq;OJy?!wPjHD98rnA07m)~Easa7jhsIeXEl4IN&Jq!?X@o(` z>A^f(9a)fAD*x|J_}@KrbZkMiQ!4#LZ@<1VMFfOL+G>|%_fHgu#V8+Cc!0X+NlJQp zVgV^<=i$Ks;a?xfB`AD-!vEWFE6^t8x9dkGC+mY}%$@H}0i(%T0~cJA#0r49_t!%RCPn*g$g$c22Idx7=vi zmd(!8X|%00QqoYN3FqXPiqNu=fP0}uFsQAR?z1;5QTcW!Vy2`3Z2nU%2x5Ni;5W&k zfPN$N%*mj3M9HW?$*q)n1fOwo=Eh80j! zz6e8$z?kkCUHNlmxbjaclD=2MfT8K{X3UF2ttcm~8zmyd4Kd_W_36p!4 z%=K?IyU$jUlUJ*Km2iut3ccqQq#4#{}%jS;B<8CpE1X?@HI0a$}=l58#!%z~9gUE{9pC38f5+jP+ zCI3wd9Y=W4Z1d)m;#ltBpKqfB@VwqBLiCs?V-ojM?~tqQ$&o8$o8;#^h3x8EP1gB* z>fT?w{(ymG3(pS>kRdny>`fF!aBA^=8UBU+{v?%Yd*yQo<#cp#WtDH;>7A1P!blHVR+lN-*hk*uEq7)z@6ySc{D@85E&6WD?{Cdo7#lONT0x2<4Y z?o4-@c0%nWAuB?Z>vmq!x{9)SZAk)3 z%*#DK^N!7LPfIgPGS-M@NJ?VA1x-@LK3SP-e|-H4y+ceWL`dwmJHNW5K@KHR1Lip# z#iyS6d)~`K{%{}Zgo-k$aq^8fKj#O(tJyDTJhZOZP3hUZxbng$qvMi}IF8Q}Srs_1 z-T2+?A<_N(EWBTP`Jwbk^tI`g^J&s*?GX>TZ2irW*{D$DmB^~B)hqhdE6*+%z9oBRPEH?Oo5QCj+DC|V$F%!QBQ z_JVKnZPR8uOh$?1{TBb%dJoB*shK*v5m9~lnrsfnz0Oa=`>Xy0vRwqh?UR1ZdWO#C z8z;sjyaX|2s{^QPJK&`z?|#Ggfz`Oi=i6&fNH_)yGQ-Dy^K1Y5=2#Eq3*H>r79+AR z?ggpL=lE_9^);S#+OiUW|NR>HG}}e3ZV-!+f3nnM)aQS_Q8{VCO$cG8r!ReV=l`>l z_^o@#{S?#x1td5y`aeMeQ^`eX-mYFqBZItdL(Tn=>-Mf_f&sm))G?^;n{9(R!EK;1iO&z?^Z46z#GwJp{Z~;eb=xQp2kf0e(jM5r$4>7t#i)gzbQvc<{-Rg z4vzB*HFR&aA2Kicug^QIazTNo4*cPH?8bAqdnGK?NMQ&dXSg3r<0f}k5n^YebHGkL zH|Mmis!~@Ra}REFdDno4;4)F?>66RU2kEw?=2}2U zL96TVb;t%EKY5-{ulgsCXRijAj5mKdOj-|Fp7!l5d}y|5As1M{%+?+Bdloo7gV-{K zuX)?I)#etVe&fuu@23eD%MsXGTrQklbB(}+C+1TRjlPks&TvRI>bYOO)ZzWW@hfL7 zShdMWh655=X=0Wg`okx>`~erqS&lcUN8uTSDv~khBNda}0m9a@>!bR|zV02m&G{5@ zl=_c}KmHC8;@w+&nIK-d z){dxh2U~kD^{QWPal75oMqGD*V!lX8c`hYc>)w!nKv*b09JrmYfxL7!Ne^CjPy85k zTU;MJZ}^zg8*u2}$L1nH1Uopag^wTZ*_>YTBI|O<)_Sj^)gmQL?*BP71^;i64WHQ3 z{#)9$QsK%Cam7PByXltwF#tZgqYUUisHG_a6<5J>O>2NRbC~E3WFU50-z1e<6Abyl zqsj570)e1@liJmBm%uM;_4sP*_~2LB8**>L#49XJm){igk89rM*Gf|4EAaXwnz0Di z8*x1=pC8s-c6s^{RPqORY@7s8V=D&kINo9NDpzfZ!a^(|l5l7rFS$|YC*<>C! z5_f(A5mS^2%R#8w^%>H*_33vX zab@e*1EashGV3ogIXb@6IlYOtS3NSCIdSWlAkf?nts6T+H#aa~PD`vy{_Y)XiX1|% zOKJ2}r%JDA93h%B+Ad;{R+Na8)Ou-ZCW>m}5ku_60*+CACQUo+e)$^vM>fKJ(vFRi z0BUr_r#tlpKi^w@>7B)3mEy|5Q(GlNo!I}bxT}hg@7B*2B`iHQ75oTe16f1JEHwv5 z#3In%g&I1M`Z%*#>%$zZPz;E;mKOZ&l~D+oUnFyP=`Im**25n!siubE>*oh5F;)!! ztA;+y;yFs%++m^;Q(w_MY?T_ zvb;Js*YpK0Hui&MBQ(;%o19DO{`QRo(6A&TKn-Zn)fd) z{YtY>w!qG((Kl%Dh(?q6ib)3>?teh*N>B)+q4C}Xz$`*zpQ9=Hlzx|rgwlu zyS{F0xWx+%-mpM8BN1t%ApboqBt$xH8LGL8AaBOO8A{ADpogZ466FAWuGCAtftF43 zX+Tg6`Rd{9etM5nq*ptSMG5hs4A*$S6&5IQ#^p8Gc04@Zm{Kq5{iSvGb9)Jc>7eWIWb0uQ(0mA0dtCLcs;v zohPRwY`r5Rio5KQ@Xh`rgsiNuK@ea1A2*aX=PZ*^@>b-ro?~Cn5ped*{Xo6mlsL(O z!#866m`xh<%Y{VHGNBK$f3kZQMO`UG#52+|6rh@+7J`Wa4Dy#+@Z zK#>_UU)!8BT~T@FC)%*Ya6jz1(Vw4o@*uFwjq&_$DZA80>#sKy8I73D3rRhi5b zdD%8)8ghi?6`?@_bvW7KUuJ)oJl;jre-y<1-Os%)uFalJdA2S2!t(~MJ;)rQi1Sg4ZZ z!M5=P*ubJ4rym6_=wSSi*LF^+rENXl2kmV5%Ill$6++I45CP5^&7b0{P+ zj+NP*$3um#JcuKFYw*apI}pw75XxTC>zh===jAOX;>ZnzRJ9QnXlHzS>$E&1gMZ0J zxR6P}35nf!WrrlO7S&VsE{cAf)v@l!klB^WuUEW7B;5Qu4PjyZV3r|yZ@62vix^bS zIYFVXufOaGhg6E-U{E*Yq@l_2^`%jafGatl$Gb*j^JkDl*%S&fb+pu17C__nPVSCO zc2`%B07Nn0LJrM|2>&IYK$Rv2|IEFf)4Q)jVE-}|mRzi& zZVfVW5*%EChXB<2vt(OSCB;YK?{6TIOC*)t#)$8}Qx~&D4Oy zd!jL7Sq(XeikjBFwRT_o4pD+iINK5o-w_5d9U3qy-d82ijiOG{W*)CbQk1vG4JVS- zfAOu)5Wi6*_L~Ti7R5&=_OH`H1*u5YM?>N!Hf7zISoy7wxBIlFW?TRv*hgK;f%?B# z0Pvijznr}LuTz&ZF0kv#aVz;2|(lPqO%963Efj(7RueX<}LvLw&ZHN3R~o zkEG7C=IcTN=ysG>4F{#!_tEDE#*41%-r zr(wQ76BvSae8#$9Ur9!}@}n5C^>(uvP|W+?Yn%Sm!(Xj1_~0r?&gVXTP7p(CcvR7N=&NBUPvsdNKHKT;Ohp>iwk!6^s2<>nXZ^bWE;x1j$JW|dnVe|O z+G!AGez5-?3yQ~4@z#v$n%%53)I^4XT0SOu4rIY&HgwZUa=BYsqP#e%IeIJcRq?UWT`RD~ng|XmKVXxSG=}kq@G>80;o1391?mpbsu4Xi`oVgNGVXX1&$M_RmIfa&d)%q92V7W4sRM4_BVxJH+yf zmlFy|Oyb*d5xbAoalm%z0UXKX^6%PYNrKS*y|9-Iri@!aQm@A;yWCA{8%)g(5`m&6SXmqrdfz0&#nB*e3S$-`_Y-qVwvI_5h&;aC8J7d%Q2KC{(dZ=c3=8X&4Ri{RoDd}rgMnM( z(`|uDYQL3u(4In<9{qj(_D7XtqwNHhG4{kHWgTkQ%Ty|6_UGs`Bk7ONLcivk4IUb= zwy%5^m?1vuxYA4dqztu6m8Psbpc;q!ZiP|i7rEOC@&C!v%d@$d|MHSVPw>S`)~Jc; zBHn7ffA0#Gu+8}Sx5nNPjvr%qRYk>4IUX?DWg1hI?Pit<9%v%IU;flHBSn0QmEe;_ z{=Dqb^C8fSC>M_@1qA{C4bknjICY`Q_rj29Q2` z^&{`A%C0YwBd`0~5z#)A5szw}(7~@`jaU%14T;@HPb7P+Jwz{*u5JqY?R&)pD{S5A z39H|VlMsd7v@xf%YW>UN@@73 z=Keo%$q3Be;V<5!!Tl&M97GsNP_m3aJo^#W0}|!wkg8ZUExV!RURpVkAA=_EV(WYx zJ@Qfan|EI@nZVB#jmGWX>nXZab#a?T>uK->y6IM5kX3CG@lbT z%|AC9SNr%@5j!IuUsR|TEn7#dmx7PZGu|NjL+NI;1(qnBwLBfih&)RC7C?i~5ga8I zENH)YK};>1+k}ZICvDj8;dej=#6Nr*PqF)kSSj--s^Hv2za<#Ef^;~Z(jZ4NDl)iv z5LAt^;L;gxXxpK;=}oMug51);gpK)ak)CODe=Y6nXHe_!SqmVBN8O7&>Iy(;Z5`9; zRe(y#=)eF@aq%s8uK4o?n*sz#Gr57HESo5Tyce0L$B0;S5=qb+-S(zp4lchAnz;G% zvIk?|jPVeVa1&hLOZ{xciu~pcp$IPB`{M}f*p)|*xDu0;_lkeUne%>GG$l5&l7dH3 zQsT?$6fw%pPSg6#L8^Le>%@XN^fk3r&PH0^#s)MM=Iund*V@@mzNe#gdx3O=4_>!> zC~@WZVgZ{nk^4yO1=RMuXJwsFE-j;gLni%dQxFkr+iTXCI0573(Fk*-j7uK$1apLsffkb zT_b~3XdKjw*T67Qqe>$&7*l8DLiMrvQUyeHWG;*Q9$MukXjTGm`I`2NUlNt=V!63> zgxI?fk;>1BK@9arqVZJ%S-sc8WBpUi{Ko%5(fVK6;o!q~_U@_HXuOh#F;)eV-2~j@ z$@1J43pDFw9Oi0#Z~0((KTM@qj;}s)ldgoU?^rNmEo%9gG34)k;N5$BlxU%2SZxkC z30w#fkW0W}&^!N0V#fV52E)G5q!%+Z^gad|9}fi1UJ4F&NDA+9Yme-yTYHr(z zH`AVY4oiz{Q9A5>k15Dk8=v%=v_9sC4lZiTgJ3)QBR4K+)-Mcj0whUE5fXlO;)CVo zMo$#IOD1tduXNz`0c9el9y=v5M=QFXDG8&&=|2E=a)MlxP5&a zbKmmOk%*E|$bE!|dgyrL;L}38fyP5U66Rc<8NJL=!e3_( zN3<{0(V=J&R{SmPBsqSUbOQ-bcz(A-PWRWao?hQW(U2h^M#j)O*DNSjy~zDwJAra> z==dhr%>z60iHcCkhc)ACEi%3-hjDi*pvr{SfO&zy6Cy9o-atWV$`9WQBjfCUycd(= zkJcc&qg|E$MaJ^Sd;-Q#%(?Gj7fUK)6<;u&c96;1otY9BXQ2!y`QGHLdxclMEivwkbdZS9Vgh+Xs5ouK zoBZ%kA2s~4j~09K5*Xsy+9N=GC=oG3U%AHW4dr9dxN|ly~TGI4mWl zhG+P86@FSpD`W)=(0A$p!jD3Tg$VWm0e$?HaW47jC<=fq4Z(g%P+&Pbxi{t$@$lr? zG7n7FtmJ+;yS7xxe2vPk=HdJ#-2J;o<7CxA+Fl>`!Z7lr*Ml?y+^}@F#Qpl11!T{0 z#@m$%e2uNtV(KdL>CrwII>FQ~TN|79@u?PzAp9EG^a>9_sG(**CI@JraZf0iK6!`% zPG7trU2*}eJ`C7gD)lxGHsTl0(W64WrAv`V8sTg0DzajlDzLGAL|n7!rLR2RYHF;Y z035qJ$O*KN$EmAJBjCs<_P;+dXl^ZkqQHSlAA}LB0r18^y=CLC9gQo0=&V9^P4`$< z8ZlFH<~F3t}|w1xv#O)SwI>2lK(!r>t=0KLuseWE7_ z(E%}#(M*Bjy(*e3O8>5C+&0CG3>X@7e``wsC_8bLm9Xs>pXfkkJ*#}@Gc6QlgN3m3 z%tbUbAc308#sP~fcVRz!sexu@P}nnr;-&QgRl;M>5v=gnf)Wu@dUAStWZ+_EFyaJ~ zZFzhZKnSQ}@CXQFq_3dKW??jlihYIS?q_k-16F0{52!r-{z9Tw>y<;_p{MW*vXQ|p zv`S29F^h*z)SSI!I6NHtHfR55x9N>vu^z?5&i&0BKw1*GKbv5Aqeo=6JsR|xvj|;D znWrnD*qi$hTS6~XiMEJAkUO$7?b(Se`TE3nb-?TNvbd`<`tkwD1PH>z^0hj)O_O$` zCeI{=el-5&_%AMi)Pol}`sOc*2+bn;dJ>uzZX{<-fP8N4tWwtB{NL73!Uj812% zC=l_>15=U=a&*Hy!7zkih&=P7+@+BK%GzJVBg>{xcL{3c&{& z>@K+xeqwvVUTJIk1|<;%JTXIe$klbW;_^ybeTEJ!DzG+yJp$gfw@>PUHvHuTXWdNy z@xdYDT4IpmzGkA6F#5x%#&21;|5=|2u1~fkcWKuZHTV^L5W;C}HkmUqCdZBjRzsCe*gsGw!YCIOA_&PJ6 z?w|T?sf*BZjYiS?zS$0+#og(!PCM=}xzW5q*SGv#t1n7)UYgbzz4W9pN-2ebY!PlI zhy-Rw5%}SkO>}s87vcU~`-q3iak0!r!>U^K%Q@d{ud&H)1L!zq~n4hmfBIb_}@Zg3$m>`>9ScuZ$ z-D2Dy-NbIAJ<_o1NBT5U|#RnWYDu{chA(Lir)M}jU|}E<>jpk zMN_v2J{-|27)T4qaFIyit>G6j`{jhQjCfA#MJ;t`UQH;W>@19>^8tl-_=>v}SFA0} zSX8pJ(HA9mf3cvPDTEIfzjeGKL5OtaKmLt7mNj9FD>f+B5@E8|{H;1wK4w5c%gDM6HkGx1W45e~-|LhW zaJT`3DCY5D*Aya16D!wiZvs z$ihOD)iAcVKL(e_5`=G7bHf-9w=HI1!;f$G4|WBnM*r>ix8Y&XUMd{)n;2lK`3juX zbTA6DtFdt&+%nmKYCHK?Ap*rmE^?3Hqn_!l#b*g$Nyy1_ELg+<(~H$0daysHuGy7= z3~(_&$Vu%k&0%g0Tu41V9)R(~#OX2x|9JCW;T07;%2Th(ov0`(xYIszqxKR=Dk;%| z>jRQA`zb|4(7nB}K)+k~0$HEUqEvk-p%)O!!_ahW0ce2e1<9mX? zhSP5aSTbSy;JiFmLHDnNfZ_+0i>bCIrVB1jN>@5W$_WrVf%gK4CHQ+;ty(-F5jj72 zWA*f6W0GZu#>VV5umEUx;FBNK(yf0mgZ$@WPM1qk1 zy#k1pe6GGsRg+fT$jxH=5Cr9>C}K44P~}hmW_R8V^vA|q??PS;_R(~2Vp@S)oBwt^ zhB(0ALCf5PmzEZOeLf@7>_UeM%5Vj>YG{d(k{P_OcW1woId;sE0_tReB0hp1j5yps z&4R9RpD8BrlVDr-qE-gKEf&`Brsc$A- zO~1oiYMAu?ySOL=eG;kQk8gt|_=2vrl5Osdvl~W||JFY|JNp@k$|7S%fP0Y0R@EhV zydJ?la~S=GVJ$6VVgEZOWzBN)%N3dai}Qip;$hpDS?gVun%KCnyHv8iU}AkK>K~U4 zmF_@5qU6a>%=y)l^8X)w;*~UZehYddsbT!L!z>J^#`gTmqJqhl?^DUA`F^r^ zX{r2Yfyo-RreEVn`r5!M>7Y~1?g^|g)lPyFv%~(@%c{oHios2bn0XD&=83kzFT=sn zXd9$LKJ6~M8%aA=M@##yWD+*ea~Fj&pyafJ+u{ssVR+JWJA>JLIS9*7o)L}|gsBD# z8FsS2@O<`jH>O)tJyH-ivXgJy^gjJK`eo^VmQarTr32}lEJMWb`cQg5xqwD%Eks$p z7N(vgjqU*lizn*tr-k&f1g z2Pf`$1_HCnzswn1t8pyIY&A<=!oCdqOT2+uY$zt8v?4!-5vBXXzr@)2N5I%=e*9u% zbd&gJbjpvcO>Ms0_}cW7{~7(A+XJ1Qh8UfN)sIigs0!x8x5EK~pV~$2f@eegNL~*R zj9B{6fw4m|)qrk5kQBjA&ILUbSeFfbS5zJVbMZR-Y=%Eloh1i_ObMG`+ZJ(v#|>tM zgJTH!7XNuHaO{6N7RWk{h41n8`7JjPD@LO0>2FB~vKp+Uy|6{#HHIu90-@As+ zLh*39IDG>qJj;ZHl5N##{(o>k6M2W}|8yenj_H3pk*Dp?6;(;mKpyKj`hSbmEAEs9|KCo_t;2|?1!A|UP~>s4l|SnJ|2_u?^INRnGmw0h z{%73clSqW2rY|_E%U7y$q&&dl|afk?x0{m!Su~g zJLq6u#qhsXHSF0sNBna{A{(0Q`}G#xjYD?+TB!H`bv9!2y6`K|brP4>mBFk2n*w?! zFx~j}H0wVqF<79Lkw@svmg^( zxj5Q)Z<>jXkKqYvtV4yv;IT0z_Fm$}fX-53P>yWKtSU%5Wdruh9q|pnWy?>OZ}pKV z{dMKAt0#U5f1V;WG_%_jjG@8y51HiFw+vuF8FlNP(-fe^a+&1A-il*6oOF~%6%L&Z zg(`XnSZ7l+26bvw>UmsHqil3L?2Y1=0|lwhDwbG#x3~1160_)_j`P90rA6NP$k1K7 zi%Np1yS0GwoaN!KN=Mh`}zKp<56dC0VDQh!WvhS1Tt;tGuW4~FcR7*r7`(b zhNRc zGHE!o?`WsBnN@Xs)aB4chL*3SQO&rX2w#juElh0|;)z2@m|w|Uf=0rBctBsj8>RpzT_1N1x zT#pG_QvCo0gF&fM5B;}cU(0CPwi1%&>^`3NJZ7zI9#qRrh#av8WtWj``-iCaFS(TYbH~AlkqAn&}lxW`fHs zBw22ij3=6C+~TSZ_wDpc2LAHmR^k4TzMwC;r7-k~Lqlp{5`#V=p}=Z+DTe-;V_BcEc8azV6avocEA0c?gS8?Lx z4V@*OtmHq%{bBGu#pxh5>p6-Lg-S0MhbeUfo*P92gPS+h3Pi>n|8?p4IWwtfCJ+k9 zafvusa8nk&Um}kY9X8q%by;bGtvoZ!9FSxzX;kqj9xJCPSXdji+42vX3<7$Bl=3dO zj_Rh&ImBvnP8=|S8rJi%Okx$mf0J14GyUYc0zQ_fU--_tDK+OGzPNN}h7?JG2QdE3 z?_JW@b)fP8RBj|Hm$+i0S(0aBBgU?UCUzJGuO$uMtOyHylz_{;mk@k(?Pihr!Q)9Y zYnzxBDLl^yN0xCXm~zfXcsTkLutPL-&Rfhq~1Wl!zy(T{7j!z|W|NPEPy zI!KEtO^BeW1f&RP0AuP%RbgQP*iGcpnMqZiVAh^*ShBV&JbSDS+l{v3MfqUcQ?|z> z&FdHWRSzb{OFH1=iAygt#o@FV!Cq*TX^*I)5*tdWp9KRAI-e1{vRU?3_2G((XZF+O z$fCy45)#j|cbIZ9BL8qV`Zu#fkNr}`028w?aQ*cj$33?Fcdf^bQ3B;Bi(u~tM9tpG zR-2nXh2NQ8Yk!`5*Q%R|G_TJtMu@sx+I&0nC^z#IdCucdlOa23?ejX1Uz!CyP!{?n z&>bfgqPM|U98fQL-JV?eqYW$N%SN)z^E<9Hoi3zi2P@O7qv-0JJ&&d2%u-c^qCY90qx24w z&1-5V2RgV9a^DUR5SslGO)OlSS9#4AApd2=u(lL(vFj0|;?JWK(-l4U#r?|KxWa|? z?CXM#)jG_9yr@eXUI8{!vCU{K&#>Cb2;4d$(DO1LNB`}Ozh#Ch8h&nM^Kv?&e40c_IMuN6?6mi$%mkgOBp3Z3PwVARI~1-i6lan*G#l&|C`o^uSJ7VV=P#Gs zKMwZ8ht2+3Reef&Op|GE*4J4jFNkyru)Q`cx`S`!*(&?4*Uls@Z!0?G(mQA~mAG`O z^S|E0T0`~mQIzEID`U<$(aC#Nd+#q5=?30uhh9vY=*m8NIyZ73bMkW@-mrxR6qy*j zEt_)-nBg-q!xj4@GuJx#rolmNZTbEGQ{9<|v$?hV|53Z`+ktMap+$MyYEebeP;8=9 zQ);f+CRzj`w1_FD-Bz{6)=X+BB@uJYQ?*rU4iZu#wB{hRh#`jj9zFYa-s?Ko-se5% z&vRY=i0jE(&sxuYulxIX?v=Gx)#{g+dUmf-M(Ec;!+wYRkUH9VwK0e;!xM||u^k&& zG-j-D2lH3_24oIL%e7I@0j6rShUT11HL7cODit(`u1dAkohqTt&Qe9c=z~Vr*1;fg zN=8BgON#KSTnrcMq1RYZ-%ZiEfymDcWgt<<(ec^4?by|5-OJl=?g%-HnoQsd2s~4{ zB@Q3?&=zGi4jg6I!Du4?Jo@E(7TmW`*u`!=ZaZ#(2Mg8wEVeq`$6$0 zH?;Z;Km=u{Q%qjoR9RVuLG{y1vFpryofE|DQ_T2+&Ewus>~q=(@2ugUeZwK4ykE6z z|9R8+N;iwk+Qp|s19F}pzz!Mp1P0L#NT{thaY`iAqunlFujLlt_5YRMHX{B|cK7}r z!0649?X@pq!&y!Eyk+9hL^;OC3tl}dz^QSj3@W0L2JRf-@?)ZBEcRi)Q@(Q5w} zsqE`qGVS5s<0K&aJjf`CR*sJNXt|LlRkO1y*M9iE(w*#ujPPa=xR&$U8S?cz9}XeM zp{DAP>zH3Orhne!*)#hsmP)1f>^Gz>*nps#d z^7mI`jHb;qB$7H2DNFuPT}9t)j@tIk5e_4n&}1p7q$|+)N2v%f4GNEmbmT}uqOd0n z2wUB6R#%!DvhB1dOfrEK@ydGre*FFA+vL}9LyRgn@G5*CBkq6=mzVeQ0lN!v_kUh9 znP|D*@jL2OM$RY0yVIg`xo%lp7B1V?;KKo&UxN=PrMASfX;= zJ)3(YqO-KRg<1||-`+0(%0rHALs4iHH@jXvGUU2mif_YB$ih}2*k1pA1@`E{T4dPx zRDz^Xa{x>6RjJd1!t`zLwN;^Qr%|(2^K-z1eI)U6 z1HH?mraw~+*7$a(`&x>5Q@!ECrc+6kYqbV>*PG%wfy;uk`xPO2G#zWGpndLXYeO1c zy3l|603xq_$?fheOt7FO+h{l#B_PcSm|ohiy3n}AB1Z6_UF9lyR3;a-8jGY=KK4S) z5K!a4+Ws)o+8UZL7Xkaif}QSf^Q(FZ;u?SLIPax^pcRQmKMRQ%EkdFj63^TI=hg-$*S~5$HHovv?4d9 zSQB=N(o_-OtbR#C#^b-D>pgR;YTyescf5Yob; zuVrEH^34o%T6I_g+05YU`pNvU|pR8O@V#UTltd;2z(>ytYT@ zn|W?-jOdFtL%^R>PfyBQ;VM=ruTul8eq6eAwe6F0lD+MMo!h15Zn*EQBD(iXaNe&% zLT;PszkJmP35amgFLE7s3-3fyXsB~P8o5+_*aImOAy#)6Eg`Kboxb~!RbW_=Tz^ek zJAxK3tUvfRE!Vz?6C>c}|3nLnQs5sXP@nQnDS=V%mGnk{8VgMi~LWQQr|^izQ)!nXIwm| zmf5(Bj_)udybU>ehs0ffEE7flPXs!l?Bz$V5EmU>gC7;Wvv&83SqASz){}vlh#$dm zF3Ue8)UGjAQMv|X+~a{Y-R_&xe!5-)3d=>PZ?3ke39Ai&pb{x)l=SzoLd**F40WAJ zkfm>*jX?WvZ=|n%!pL(j4JN%4I9&)&&p)0;aBASDzt8uC6u<>&>eCyIr#8GdT>4>A zm9u){SAJt)k`Ap`xQ+xrX0j~YDg*rDt4lLVEh3sq5>s!~w-H-5muRd9?Hc-)Wo8Ai zIQpmO$DOvfx`>wwY6E7cWPj8j&@h{(T_^>jC0mt2l}f0ieS$u$a1}78kPF5KMmKBX zdS<#cR~4#L4Pk57P#DQDxO6n%yewYiAIMZaFd=M z)eYvX!R(^kF}qsg+A|N2M{b8x`(`ZCF>Rl)(q}H7fl`Dw5z%x$vvG2X73JEyoVb7h zI!{8))O~Qczkah2_!=$C(QC~46{YB)=R`|Csc~f3U9q*Tjo>-{4t)L6oS2vZ*MUQS zM&9ddM*zUy7?dsmhyrCD04#a`GTw$Aby~^N1ON#r7)Os*g#^bBm5whkP6I~L4_a*A zA8;R>d!2}0@J$fQ_^s|!q4MRE@C2Z-^)ro6{j@HADwrl8=nD@?S@(kOZ? zmJ=`&0ZBQ$z1P=uZzsk}#e3Rk1_^%Z?DPs$|K(xzJ- z0i&vYouN|T?8_;Mh)_iU;60{u^M+|x@EFnCo5osd7;k*>4}frZUqZ18&Zw744E@`d zn3p6#gLwm#d>L3==0Il>b=o(p8P>y4w661NFu6-=dT|^esP7j_Q}TTLW+GF=p0u+i zBx^1V;LZ1m@S=JMs+{=Iry*uyl8xax#ql52A-31glG3LZS6+1rTN; zsNz#C=E_?8U}tauFcXbX2Yuj5WX_@gnOpoR!~X}0sE=_2mNbG{VdAS-i;UA|ZD}Yz z0fE_RF*BIIe{H=FeFAjmEA5DAxiM}IODjFSXb}Dy&*pZ1|4|^T<5d^yudFlJk24f) z{rnls_W;N4#|au8*g3E5^!)krAHKf;{B6pAi75Z^Y)rLEAVfk{slFoh;NE66X?4Li zsp9M6FHEla!Y7N7LM^X!$2MYG|-U&GwzQTX^3lT~^_;OL4<3THa9XQ9+{c;0}+Uni!V1aSb~nO&F(ygzxHCY(-b*PP!Ngd#)+(nXH20=!Nz*9vP} z`S5d0aLw^VpSV%~|AK$MRsVbb`Bpa|QX++1^!C0IX*QnSz#M^H@Bw$IpNG(k4kL>D z-*)Wso)vjh&n08QrZ-D%j~@RCf3UmF{sv7W*Nlu>TxjeM{L{DNM^!2v<5_mYdLPj9 z_>eB4wHiae_5hDtF#N|yA(YXLkiI2S=qQ#tw)SwhY&8R_YyFbiG1oqj!beipyivu; zJ2Jzsw!!46o4z+zM}7N+ScFIa61I|y=iuwi>$!VquDr^2jWuwyIBT^seeZkOAw2`r z5-~~Gf;f{h7ehg=#21g$JH9QUUDw@(kGS{EeSTUOIi0*44W!cC)`1q=*I?Q%i%jpeP!_Nw$Xc76&H{cz^y*FY5O^k>p@5 zTIDgSNf}i$oy-p@sXBbDrvLs>>wiOPn2Wy!A+(Dw0H(iiW?Kfc*1)AZYm&oJ-sWkz z5ua<5ArEKR?@_=z^HaauiNpeW)TDD$vMNK4NXDmRpdNZNtMOqDHlR=kMKc< zvtJr4TP_G6v~VAqgV=6!pEV&g?EJJax6a!^V_Miw#X7@x7=`9F!u9zWca=v-Hok27 ziat2IOGOqAb%dvX*$70_0~Zf(i0GsvYNF-j z+uDQA>ogZ<6xmHTNxYx@67H24rC)svA~36~FML%Wa;w#izOoE)o`(-EX-2qv{|zvr zf2id&ea>C$BQIAyo78PF0OccGz||R#Yc}Hh2aO!J}XX{c`-WS-oerjY4L6 zQEP)qV&%*!HKm{;{<8(r?47NR^%R8qR{Xp1hn5jFp`|*8jp7Pl?QH3oKgwBouASct ztg9DZaJ#e26Ikee#@!I2DtLra9Di`-ZA`DvM{k_k^c9cAPQ=^9G*n8QR%g$bLQ!}| zN!~CHP3Sww>FmY5=uE2IKD59r9dcP+5<|gN;icRdTS>XcJ~3Gl=!eTg5n6|kA0HL# zss-wa8#qc(iSQ7`{Z|}ut>;h$0B_F=$=2MG4Ad*SRAckzbHlBIUDT9SN8onZ+W<$>^M`b;!*^i6m7;v;&u9*$pjY@+ohV8r}+1+1mR z!;e=_RalWb^nix)Pu48BJ8WHh)wr&%?jY2=Zj`mRJ&s;+OcqGs&=}lLS$n`kcME@) z*$99Vd(aCF%OR_pATEpSLnEs9Rh9PGuh-ArV`v+20)vOaCs!w|7N{#_;gLcO-V=e; zP+g`w8M^xV8=CR}p0!`dX{?beJ`!`_5B=3y&qhmdJ7nvhnX=8zs>@3{J{~p3K|7(c z_rZIp?|D(BhgeuSR@~BjhXAfsGk7Rcz%Z}&Yia9`3fil+U zjo7iF5(fOcLIbU2x~rxjlwBwrcniRHy64wA@B>D=S`od;V)|L?U%GUF?D@$)@&7we z37Y=jyf^);FP-4KP#EE#GBUkX9zyigl%tM&#Q=D0c`29&ER(>>wfU?5VvknD_JEg< zi)OLn#ZnfYr6ic14dUXIIEo>MofL$IG}eQ=5;9KXZzW%`%6WcDJaC^x_dWBko6*|( ziv|Q?fTBD~TXx+WVd$#Qo6{~a$f)9~Zsr-{Zqz z1;mbF7*-kILt%!trzE<@d_KJ*6KdM#A9t&+ZAQfvI+bbR*4g=<;}|VsMp2$?9IVjX z=}8R?@1|#={h){=OxuVYhU_SQLmVG`JCnP%lt5XC-!UQ04J02`UoXqt+!0qJPx~IU zsVb;bbR8z%n^&!fD>>eM?2NyTlG>V2x?-FiLBAzuuulG6lW-4tau1Po^(v6arOkzR zDQU4*+vaN8pn0lHahoqJJ%&tt^FU6dK%tl{eqxYTg#c=ZCmfI3_#n7vqy#CK9sGph zmtt+@Tdxn9Krn$%pH}IU=Gho6h30LuZ3WK3`dK){>-Gul&4ry7pK#pS?aKR3`Snm= z{Tn)6lZ8W}!CInkRC(>CbTYN)H}z_hiI&;Y^mFxy_SL}okPH08!w1`sxw-krT?#dMw6QIa zQkoht>p_x72?6-)i(e04HZ6%iY1b!YL#2Cqb`Lbj9ye-1m(I7=s(FF&e`K%YSRe*= zmZ@3CL2_5E2HD((dP_zoSPBPw9u21l-$$Sr}|ahddCF6w$hAzN9T&c zCgI(6yl&ECzxhdYzHFZRNUA$rx%|KZ(y+EOV!wLA)MXdgO1er^60$~4sj_i3qOOE- z#3h&9JMnG_>LCo9!Fe@f1@(+#$|0q`751mg{brBkj(HY>^O!t&sXR4Zdp-WNapxBz zLaJ63?{;)-;#BUe?@g@mVVlb2J;3g1fTDQ5u6my8SuyD50=4DgFDk26gG>!O`&eLi zD#mR=GCZG4eabaprvHeSJf+Je=!+eN%8<=d#9&%9R{Mo|dgSf!O?Q&g_||+Z%)_Fg zPvf9cvz?ace111yS7pn^jxi&PwMI=Y;*PYs+ekagJ(GB2HFXv|lGM9NkaE=M6Bh+< zW?pYF4P~@nx_~1|XIV4(hJzCkjT_C#g}Y#XP=z@ZV*Y!nCCZxjxB3LzIb=*bF>&n3!+SF)Ju;Q-qSAMtzRhCj4B(PFF2KX^pD)vf)R_P60wwC z)IaM~Cm>5Pob}ULEofVP!+=M8UNbipF|Q|PN#>8)Ogz6>_dr5L{1l}+<^IwF4r|Q{ zwEL_{CA2fWMf>xoB?;qsO`2Fglen1-@`afjTw8Q>OrT$^B0AWV5s7KeO$};wlI@;! zHv3e~5q1)Gt8E`Xm9A@#q3upB3@s-={vF85`rY76mu7)7eGna=vE7FX$^RFDxDu>pnyFeT~E{uvH5f@lC= zCrtWq45cj1bFSwzlzh%Yt?J#wCvBgu^{_2o##wU-;$Y5=1?=c&gFJ&4SfL2lo%iM| zgCABu3vT+UU0nsUL_f~xcGTUJZWt>)qNUOakN2uUj$!YRi*5D-Txa#D2UHe*D8Yvs z&nPhWpwNN6N#DU^o;VMp-cS?e@U$pFNJC=s5wmSC*%mHwE z_|@J~fBTBzYau)S=!Kyks0jm4<0qQV9sqAQyUk7~@QRtB S`5%D)0Xo_SH%m0_AN@bVvRX6% diff --git a/docs/html/classcore_1_1_e_poll-members.html b/docs/html/classcore_1_1_e_poll-members.html index 66be75c..3c1f4ce 100644 --- a/docs/html/classcore_1_1_e_poll-members.html +++ b/docs/html/classcore_1_1_e_poll-members.html @@ -58,7 +58,7 @@ $(function() {
@@ -77,7 +77,7 @@ $(function() {
isStopping()core::EPoll
maxSocketscore::EPoll
output(Session *session)core::Commandvirtual
processCommand(std::string command, Session *session) overridecore::EPollvirtual
processCommand(std::string command, Session *session, std::stringstream &data) overridecore::EPollvirtual
registerSocket(Socket *socket)core::EPoll
setName(std::string name)core::Command
start(int numberOfThreads, int maxSockets)core::EPoll
void eventReceived (struct epoll_event event)
 Dispatch event to appropriate socket. More...
 
int processCommand (std::string command, Session *session) override
 Output the threads array to the console. More...
 
int processCommand (std::string command, Session *session, std::stringstream &data) override
 Output the threads array to the console. More...
 
- Public Member Functions inherited from core::Command
virtual bool check (std::string request)
 
tag tag Sessionsession session,
std::stringstream & data 
tag
@@ -294,7 +300,7 @@ std::string  -

Implements core::Command.

+

Reimplemented from core::Command.

@@ -437,8 +443,8 @@ std::string 
The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/EPoll.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/EPoll.cpp
  • +
  • /home/bradarant/barant/ServerCore/EPoll.h
  • +
  • /home/bradarant/barant/ServerCore/EPoll.cpp
diff --git a/docs/html/classcore_1_1_exception.html b/docs/html/classcore_1_1_exception.html index 0c50be9..c6dc039 100644 --- a/docs/html/classcore_1_1_exception.html +++ b/docs/html/classcore_1_1_exception.html @@ -96,8 +96,8 @@ int 
sessionthe session to write the requested data to.
tag tag errorNumber 

The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/Exception.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/Exception.cpp
  • +
  • /home/bradarant/barant/ServerCore/Exception.h
  • +
  • /home/bradarant/barant/ServerCore/Exception.cpp
diff --git a/docs/html/classcore_1_1_file.html b/docs/html/classcore_1_1_file.html index a146d1e..28477e0 100644 --- a/docs/html/classcore_1_1_file.html +++ b/docs/html/classcore_1_1_file.html @@ -99,8 +99,8 @@ std::string fileName 
The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/File.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/File.cpp
  • +
  • /home/bradarant/barant/ServerCore/File.h
  • +
  • /home/bradarant/barant/ServerCore/File.cpp
diff --git a/docs/html/classcore_1_1_i_p_address-members.html b/docs/html/classcore_1_1_i_p_address-members.html index 922abda..28812bd 100644 --- a/docs/html/classcore_1_1_i_p_address-members.html +++ b/docs/html/classcore_1_1_i_p_address-members.html @@ -58,7 +58,7 @@ $(function() {
diff --git a/docs/html/classcore_1_1_i_p_address.html b/docs/html/classcore_1_1_i_p_address.html index 7efb72a..a542616 100644 --- a/docs/html/classcore_1_1_i_p_address.html +++ b/docs/html/classcore_1_1_i_p_address.html @@ -58,7 +58,7 @@ $(function() {
@@ -128,8 +128,8 @@ std::string tag 
The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/IPAddress.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/IPAddress.cpp
  • +
  • /home/bradarant/barant/ServerCore/IPAddress.h
  • +
  • /home/bradarant/barant/ServerCore/IPAddress.cpp
diff --git a/docs/html/classcore_1_1_i_p_address_list-members.html b/docs/html/classcore_1_1_i_p_address_list-members.html new file mode 100644 index 0000000..2c10d47 --- /dev/null +++ b/docs/html/classcore_1_1_i_p_address_list-members.html @@ -0,0 +1,85 @@ + + + + + + + +BMA Server Framework: Member List + + + + + + + + + +
+
+ + + + + + +
+
BMA Server Framework +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
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/docs/html/classcore_1_1_i_p_address_list.html b/docs/html/classcore_1_1_i_p_address_list.html new file mode 100644 index 0000000..12842ec --- /dev/null +++ b/docs/html/classcore_1_1_i_p_address_list.html @@ -0,0 +1,100 @@ + + + + + + + +BMA Server Framework: core::IPAddressList Class Reference + + + + + + + + + +
+
+ + + + + + +
+
BMA Server Framework +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
core::IPAddressList Class Reference
+
+
+ + + + + + + + + + +

+Public Member Functions

+std::map< std::string, IPAddressgetList ()
 
+bool add (IPAddress ipAddress)
 
+bool remove (IPAddress ipAddress)
 
+bool contains (std::string ipAddress)
 
+
The documentation for this class was generated from the following files:
    +
  • /home/bradarant/barant/ServerCore/IPAddressList.h
  • +
  • /home/bradarant/barant/ServerCore/IPAddressList.cpp
  • +
+
+ + + + diff --git a/docs/html/classcore_1_1_log.html b/docs/html/classcore_1_1_log.html index 17a05fe..296b331 100644 --- a/docs/html/classcore_1_1_log.html +++ b/docs/html/classcore_1_1_log.html @@ -87,16 +87,17 @@ Collaboration diagram for core::Log:
Collaboration graph
- - - - - - - - + + + + + + + + - + +
[legend]
@@ -296,8 +297,8 @@ Static Public Attributes
The documentation for this class was generated from the following files:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/Log.h
  • -
  • /home/barant/Development/BMA/server_core/ServerCore/Log.cpp
  • +
  • /home/bradarant/barant/ServerCore/Log.h
  • +
  • /home/bradarant/barant/ServerCore/Log.cpp
diff --git a/docs/html/classcore_1_1_log__coll__graph.map b/docs/html/classcore_1_1_log__coll__graph.map index 18f2c19..63b0183 100644 --- a/docs/html/classcore_1_1_log__coll__graph.map +++ b/docs/html/classcore_1_1_log__coll__graph.map @@ -1,13 +1,14 @@ - - - - - - - - + + + + + + + + - + + diff --git a/docs/html/classcore_1_1_log__coll__graph.md5 b/docs/html/classcore_1_1_log__coll__graph.md5 index 28e2d8f..86d0017 100644 --- a/docs/html/classcore_1_1_log__coll__graph.md5 +++ b/docs/html/classcore_1_1_log__coll__graph.md5 @@ -1 +1 @@ -1a250fefb075346819f7ae51a8b8368d \ No newline at end of file +aac9a10bfd8e32ce84345490e62eccf4 \ No newline at end of file diff --git a/docs/html/classcore_1_1_log__coll__graph.png b/docs/html/classcore_1_1_log__coll__graph.png index c1bfb0f6bf7bd378ff314566eebf88e680a97efb..c865f53b78851f9249e38a6ef5759f5a2ae909d0 100644 GIT binary patch literal 70171 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 K2$u=!`u#t!wbqLO literal 62914 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 diff --git a/docs/html/classcore_1_1_object-members.html b/docs/html/classcore_1_1_object-members.html index 13447d3..4ee4be5 100644 --- a/docs/html/classcore_1_1_object-members.html +++ b/docs/html/classcore_1_1_object-members.html @@ -58,7 +58,7 @@ $(function() {

diff --git a/docs/html/classcore_1_1_object.html b/docs/html/classcore_1_1_object.html index 1f1cfd1..aca1893 100644 --- a/docs/html/classcore_1_1_object.html +++ b/docs/html/classcore_1_1_object.html @@ -58,7 +58,7 @@ $(function() {
@@ -74,29 +74,27 @@ Inheritance diagram for core::Object:
Inheritance graph
- - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + +
[legend]
@@ -110,7 +108,7 @@ std::string 
tag 

The documentation for this class was generated from the following file:
    -
  • /home/barant/Development/BMA/server_core/ServerCore/Object.h
  • +
  • /home/bradarant/barant/ServerCore/Object.h
diff --git a/docs/html/classcore_1_1_object__inherit__graph.map b/docs/html/classcore_1_1_object__inherit__graph.map index 4704984..f1b9d7f 100644 --- a/docs/html/classcore_1_1_object__inherit__graph.map +++ b/docs/html/classcore_1_1_object__inherit__graph.map @@ -1,25 +1,23 @@ - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/docs/html/classcore_1_1_object__inherit__graph.md5 b/docs/html/classcore_1_1_object__inherit__graph.md5 index 0310b33..d25b891 100644 --- a/docs/html/classcore_1_1_object__inherit__graph.md5 +++ b/docs/html/classcore_1_1_object__inherit__graph.md5 @@ -1 +1 @@ -cba9519af2137d493cc5b8b8493d7645 \ No newline at end of file +7810715991cd86866c9fed13ffb7c6c2 \ No newline at end of file diff --git a/docs/html/classcore_1_1_object__inherit__graph.png b/docs/html/classcore_1_1_object__inherit__graph.png index 060153346326976da56833ebe257a20f3bd90fac..1401496050cb4efb8f1a2eb256c4893056cd5002 100644 GIT binary patch literal 50575 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 Z0jBy-(OUrxBlpK|Nr}mcmI&+m{14P~TW0_O literal 63259 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�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 OAS +
@@ -69,15 +69,18 @@ $(function() {

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

- - - - - + + + + + + + - + +
commandscore::Service
init(TCPServerSocket *server) (defined in core::Service)core::Servicevirtual
name (defined in core::Object)core::Object
removeFromSessionList(Session *session) (defined in core::Service)core::Service
servercore::Service
check(std::string request)core::Commandvirtual
commandscore::Service
getName() (defined in core::Command)core::Command
getSocketAccept(EPoll &epoll)core::Servicevirtual
output(Session *session) overridecore::Servicevirtual
processCommand(std::string request, Session *session, std::stringstream &data)core::Commandvirtual
removeFromSessionList(Session *session) (defined in core::Service)core::Service
Service()core::Service
sessionErrorHandler(std::string errorString, Session *session) (defined in core::Service)core::Servicevirtual
sessionscore::Service
tag (defined in core::Object)core::Object
setName(std::string name)core::Command
tag (defined in core::Object)core::Object