void handle_server_request( const MemInfo &in_msg ) { const MessageHeader *header = reinterpret_cast<const MessageHeader *>( in_msg.get_data() ); switch( header->m_type ) { case MessageType::MESSAGE_DATA: { const MessageData *data = reinterpret_cast<const MessageData *>( in_msg.get_data()); std::ostringstream sout; sout<<"AGENT("<<getpid()<<"): "<<data->msg; m_logger->log(sout.str()); m_logger->disconnect(); MessageCompleted completed; m_client->send_message( completed ); std::lock_guard<std::mutex> l(g_mutex); g_stop = true; g_event.notify_one(); break; } default: { } } return; }
void NameServiceClient::on_data_received( const SocketPtr &in_socket, const MemInfo &in_msg ) { std::unique_lock<std::mutex> l( m_mutex ); const DataServiceMessage *pMsg = reinterpret_cast<const DataServiceMessage *>( in_msg.get_data()); m_status = pMsg->m_status; switch( pMsg->m_header.m_type ) { case DataMessageType::DATA_SERVICE_INFO_REPLY: { std::string data(pMsg->m_data); std::istringstream sin( data ); boost::archive::text_iarchive ia( sin ); ia & m_info; break; } default: { } } m_response_ready = true; m_response_ready_cond.notify_one(); return; }
void RemoteLogServer::on_log_received( const SocketPtr &in_socket, const MemInfo &in_info ) { std::string message( in_info.get_data() ); m_signal_log_message_received( message ); return; }
void handle_server_commands( const MemInfo &in_msg ) { const MessageHeader *header = reinterpret_cast<const MessageHeader *>( in_msg.get_data() ); switch( header->m_type ) { case MESSAGE_LOGD_SHUTDOWN: { std::lock_guard<std::mutex> l( m_log_mutex ); m_stop = true; m_log_event.notify_one(); break; } default: { } } }
void DataServer::on_data_received( const SocketPtr &in_socket, const MemInfo &in_msg ) { const DataServiceMessage *pMsg = reinterpret_cast<const DataServiceMessage *>( in_msg.get_data()); DataServiceMessage reply( DATA_SERVICE_GENERAL_REPLY ); bool status = false; switch( pMsg->m_header.m_type ) { case DataMessageType::DATA_SERVICE_REGISTER: { std::string buf = pMsg->m_data; std::istringstream ifs( buf ); boost::archive::text_iarchive ia( ifs ); ServiceRequestData data; ia & data; status = on_service_register_request( data.m_service_name, data.m_hostname, data.m_port ); break; } case DataMessageType::DATA_SERVICE_UNREGISTER: { std::string buf = pMsg->m_data; std::istringstream ifs( buf ); boost::archive::text_iarchive ia( ifs ); ServiceRequestData data; ia & data; status = on_service_unregister_request( data.m_service_name, data.m_hostname, data.m_port ); break; } case DataMessageType::DATA_SERVICE_INFO_REQUEST: { std::string buf = pMsg->m_data; std::istringstream ifs( buf ); boost::archive::text_iarchive ia( ifs ); ServiceRequestData data; ia & data; ServiceInfoPtr info; status = on_service_info_request( data.m_service_name, info ); if( info ) { std::ostringstream sout; boost::archive::text_oarchive oa(sout); oa & info; std::strncpy( reply.m_data, sout.str().c_str(), sout.str().size()); } reply.m_header.m_type = DATA_SERVICE_INFO_REPLY; break; } default: { } } reply.m_status = status; MemInfo replyMsg( reinterpret_cast<char *>( &reply ), sizeof( DataServiceMessage ) ); in_socket->send_data( replyMsg ); }
void handle_data( const SocketPtr &in_socket, const MemInfo &in_data ) { std::string msg = in_data.get_data(); std::cout<<"From server: "<<msg<<std::endl; return; }