From 75b9e062dd64c3caf16150a76609989215c32b45 Mon Sep 17 00:00:00 2001 From: skywb Date: Mon, 20 May 2019 20:56:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=9B=B4=E6=8D=A2=E4=B8=BApr?= =?UTF-8?q?otobuf=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 1 + IM/CMakeLists.txt | 2 + IM/IMProtocol.cpp | 282 ------ IM/IMProtocol.h | 174 ---- IM/IMProtocol.pb.cc | 1102 ++++++++++++++++------- IM/IMProtocol.pb.h | 626 +++++++++---- IM/User.h | 4 +- IM/login_server.cpp | 94 -- IM/login_server.h | 62 -- IM/IMProtocol.proto => IMProtocol.proto | 16 + reactor/Connecter.cpp | 278 +++--- reactor/Connecter.h | 78 +- reactor/IMReactor.cpp | 5 +- reactor/IMReactor.h | 4 +- reactor/task.cpp | 108 +-- reactor/task.h | 17 +- server.cpp | 19 - server/CMakeLists.txt | 13 + server/loginTask.cpp | 69 ++ server/loginTask.h | 86 ++ test/CMakeLists.txt | 12 +- test/ProtocolClient.cpp | 7 +- test/testProtobufLogin.cpp | 103 +++ workspace.vim | 10 + 24 files changed, 1798 insertions(+), 1374 deletions(-) delete mode 100644 IM/IMProtocol.cpp delete mode 100644 IM/IMProtocol.h delete mode 100644 IM/login_server.cpp delete mode 100644 IM/login_server.h rename IM/IMProtocol.proto => IMProtocol.proto (85%) delete mode 100644 server.cpp create mode 100644 server/CMakeLists.txt create mode 100644 server/loginTask.cpp create mode 100644 server/loginTask.h create mode 100644 test/testProtobufLogin.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 93c86c4..28f05f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ add_subdirectory(IM) add_subdirectory(reactor) add_subdirectory(util) add_subdirectory(dao) +add_subdirectory(server) add_subdirectory(test) diff --git a/IM/CMakeLists.txt b/IM/CMakeLists.txt index 5057be7..086c55e 100644 --- a/IM/CMakeLists.txt +++ b/IM/CMakeLists.txt @@ -8,6 +8,8 @@ aux_source_directory(. DIR_LIB_SRCS) #add_library(IM ${DIR_LIB_SRCS}) add_library(IM SHARED ${DIR_LIB_SRCS}) +target_link_libraries(IM protobuf) + SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) diff --git a/IM/IMProtocol.cpp b/IM/IMProtocol.cpp deleted file mode 100644 index 4714377..0000000 --- a/IM/IMProtocol.cpp +++ /dev/null @@ -1,282 +0,0 @@ -#include - -#include "IMProtocol.h" -#include "util/UtilPdu.h" -#include "util/Log.h" - - -const uint16_t IM::HEADER_BEGIN = 0x1fff; - -using namespace IM; - -//从Connecter中读取, 解析协议, 返回一个IMPdu的智能指针 -std::shared_ptr IM::makeIMPdu(std::shared_ptr connecter_ptr) { - - char buf[BUFSIZ]; - size_t len = 0; - size_t p = 0; - IMPduCMD cmd = INVALID; - connecter_ptr->startTryRecive(IM::IMPdu::getPduMinLength()); - try { - //最小协议头包括开头信息,协议头长度, 以及cmd - size_t re = connecter_ptr->tryRecive(buf, IMPdu::getPduMinLength()); - - //不足最小协议头或者不符合协议格式 - if(re == 0 || - 0 != ::memcmp(buf, &HEADER_BEGIN, sizeof(HEADER_BEGIN))) - { - connecter_ptr->rollback_tryRecive(); - return nullptr; - } - - p += sizeof(HEADER_BEGIN); - //获取协议头长度 - len = *(size_t*)(buf+p); - p += sizeof(size_t); - - cmd = *(IMPduCMD*)(buf+p); - p += sizeof(IMPduCMD); - - //读取剩余部分 - if(len - p > 0) { - re = connecter_ptr->tryRecive(buf+p, len-p); - if(re == 0 || re < 0) { - connecter_ptr->rollback_tryRecive(); - return nullptr; - } - } - - //校验长度 - if(p+re != len) { - connecter_ptr->rollback_tryRecive(); - return nullptr; - } - - }catch(TryReciveException &e) { - connecter_ptr->rollback_tryRecive(); - char msg[BUFSIZ]; - sprintf(msg, "file %s : line %d: %s", __FILE__, __LINE__, e.what()); - Log::log(Log::ERROR, msg); - throw; - } - - std::shared_ptr pdu; - - switch (cmd) { - case LOGIN: - pdu = std::make_shared (buf+IMPdu::getPduMinLength(), len-p); - break; - case LOGOUT: - pdu = std::make_shared (buf+p, len-p); - break; - case SENDMSG: - pdu = std::make_shared (buf+p, len-p); - break; - case INVALID: - default: - return nullptr; - break; - } - - if(IMPduCMD::INVALID == pdu->getCommand()) - { - connecter_ptr->rollback_tryRecive(); - pdu = nullptr; - } else { - connecter_ptr->commit_tryRecive(); - } - pdu->setPduLength(len); - return pdu; -} - - -std::shared_ptr makeIMPdu(const char* buf) { - - size_t p = 0; - size_t len = 0; - IMPduCMD cmd = INVALID; - //不足最小协议头或者不符合协议格式 - if(0 != ::memcmp(buf, &HEADER_BEGIN, sizeof(HEADER_BEGIN))) - { - return nullptr; - } - - p += sizeof(size_t); - //获取协议头长度 - len = *(size_t*)(buf+p); - p += sizeof(size_t); - - cmd = *(IMPduCMD*)(buf+p); - p += sizeof(IMPduCMD); - - std::shared_ptr pdu; - - switch (cmd) { - case LOGIN: - pdu = std::make_shared (buf+p, len-p); - break; - case LOGOUT: - pdu = std::make_shared (buf+p, len-p); - break; - case SENDMSG: - pdu = std::make_shared (buf+p, len-p); - break; - case INVALID: - default: - return nullptr; - break; - } - - if(IMPduCMD::INVALID == pdu->getCommand()) - { - pdu = nullptr; - } - pdu->setPduLength(len); - return pdu; -} - - -size_t IM::IMPduToSerivlization(char* buf, std::shared_ptr pdu) { - - size_t cur = 0; - - ::memcpy(buf, &HEADER_BEGIN, sizeof(HEADER_BEGIN)); - cur += sizeof(HEADER_BEGIN); - - cur += sizeof(size_t); - - IMPduCMD cmd = pdu->getCommand(); - ::memcpy(buf+cur, &cmd, sizeof(IMPduCMD)); - cur += sizeof(IMPduCMD); - - cur += pdu->serialization(buf+cur); - - ::memcpy(buf+sizeof(HEADER_BEGIN), &cur, sizeof(size_t)); - pdu->setPduLength(cur); - return cur; -} - -LoginPdu::LoginPdu() { - setCommand(LOGIN); -} - -LoginPdu::LoginPdu(const char* buf, size_t headerLen) { - setCommand(LOGIN); - size_t p = 0; - ::memcpy(&userId, buf, sizeof(UserId)); - p += sizeof(UserId); - ::memcpy(password, buf+p, headerLen-p); -} - - - -size_t LoginPdu::serialization(char* buf) { - size_t p = 0; - ::memcpy(buf, &userId, sizeof(UserId)); - p += sizeof(UserId); - size_t len = strlen(password); - ::strncpy(buf+p, password, len); - p += len; - return p; -} - - -void LoginPdu::setPassword(const char* pwd) { - ::strncpy(password, pwd, BUFSIZ); -} - -const char* LoginPdu::getPassword() { - return password; -} - - -Logout::Logout() { - setCommand(LOGOUT); -} - - -Logout::Logout(const char* buf, size_t len) { - setCommand(LOGOUT); - userId = *(UserId*)(buf); -} - - -size_t Logout::serialization(char* buf) { - size_t p = 0; - ::memcpy(buf, &userId, sizeof(UserId)); - p += sizeof(UserId); - return p; -} - -SendMsgPdu::SendMsgPdu() { - setCommand(SENDMSG); -} - - -SendMsgPdu::SendMsgPdu (const char* buf, size_t len) { - setCommand(SENDMSG); - size_t p = 0; - ::memcpy(&userId, buf, sizeof(UserId)); - userId = *(UserId*) buf; - p += sizeof(UserId); - objID = *(UserId*) (buf+p); - p += sizeof(UserId); - - bodyLength = *(BodyLength*)(buf+p); - p += sizeof(BodyLength); - if(p + bodyLength != len || bodyLength > MSG_MAX_LENGTH) { - setCommand(INVALID); - } - - if(nullptr == ::strncpy(m_msg, buf+p, bodyLength)) { - std::cout << "strncpy error" << std::endl; - } -} - - -size_t SendMsgPdu::serialization (char* buf) { - size_t p = 0; - ::memcpy(buf+p, &userId, sizeof(UserId)); - p += sizeof(UserId); - ::memcpy(buf+p, &objID, sizeof(UserId)); - p += sizeof(UserId); - - ::memcpy(buf+p, &bodyLength, sizeof(BodyLength)); - p += sizeof(BodyLength); - - ::memcpy(buf+p, m_msg, bodyLength); - - return p+bodyLength; - -} -const char* SendMsgPdu::getBodyMsg (char* buf) { - ::strncpy(buf, m_msg, bodyLength); - return buf; -} - - -void SendMsgPdu::setBodyMsg(const char* msg, size_t len) { - ::strncpy(m_msg, msg, len); - bodyLength = std::min(::strlen(m_msg), len); -} -void SendMsgPdu::setBodyMsg(const std::string msg, size_t len) { - ::strncpy(m_msg, msg.c_str(), len); - bodyLength = std::min(::strlen(m_msg), len); -} - - -ResponseLoginPdu::ResponseLoginPdu (const char* buf, size_t len) { - command = RESPONSE_LOGIN; - -} -ResponseLoginPdu::~ResponseLoginPdu () { - -} - -size_t ResponseLoginPdu::serialization (char* buf) { - -} - - - - diff --git a/IM/IMProtocol.h b/IM/IMProtocol.h deleted file mode 100644 index 2c4ba09..0000000 --- a/IM/IMProtocol.h +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef IMPROTOCOL_H_RYFKP0LD -#define IMPROTOCOL_H_RYFKP0LD - -#include -#include -#include -#include -#include - -#include "reactor/Connecter.h" - -namespace IM { - -extern const uint16_t HEADER_BEGIN; - -enum IMPduCMD { - LOGIN, LOGOUT, - - SENDMSG, - - - //响应 - RESPONSE_LOGIN, - - - - INVALID -}; - - -class IMPdu { -public: - typedef uint64_t UserId; - typedef uint32_t BodyLength; - static const BodyLength BODY_MAX_LENGTH = BUFSIZ; - static const size_t MIN_PDU_LENGTH = - sizeof(HEADER_BEGIN) + sizeof(size_t) + sizeof(IMPduCMD); - -public: - IMPdu () : headerLength(0), command(IMPduCMD::INVALID) { } - virtual ~IMPdu() { } - - //get/set method /*{{{*/ - size_t getHeaderLenth() { return headerLength; } - - void setPduLength(size_t len) { headerLength = len; } - - UserId getUserId () { return userId; } - - void setUserId (UserId id) { userId = id; } - - IM::IMPduCMD getCommand () { return command; } - - void setCommand (IMPduCMD cmd) { command = cmd; } - -/*}}}*/ - - //序列化协议头信息, buf必须是可用的并且足够长的缓冲区 - virtual size_t serialization (char* buf) = 0; - - //协议头最小长度 - static uint32_t getPduMinLength () { - return MIN_PDU_LENGTH; - } - - //协议体最大长度 - static size_t getBodyMaxLength () { - return BODY_MAX_LENGTH; - } - - -protected: - //用户ID - size_t headerLength; - //操作 - IMPduCMD command; - - UserId userId; -}; - - -class LoginPdu : public IMPdu -{ -public: - LoginPdu (); - LoginPdu (const char* buf, size_t headerLen); - virtual ~LoginPdu () { } - - size_t serialization (char* buf) override; - - void setPassword(const char* pwd); - const char* getPassword(); - -private: - char password[BUFSIZ]; - -}; - -class Logout : public IMPdu -{ -public: - Logout (); - Logout (const char * buf, size_t len); - virtual ~Logout () { } - - size_t serialization (char* buf) override; - -}; - - - -class SendMsgPdu : public IMPdu -{ -public: - static const size_t MSG_MAX_LENGTH = BUFSIZ; - SendMsgPdu (); - SendMsgPdu (const char* buf, size_t len); - virtual ~SendMsgPdu () { } - - size_t serialization (char* buf) override; - const char* getBodyMsg (char* buf); - - void setBodyMsg(const char* msg, size_t len); - void setBodyMsg(const std::string msg, size_t len); - - void setObjID(UserId id) { objID = id; } - UserId getObjID() { return objID; } - -private: - UserId objID; - BodyLength bodyLength; - char m_msg[MSG_MAX_LENGTH]; - -}; - -class ResponseLoginPdu : public IMPdu -{ -public: - enum STAT { - SUCCEED, - FAILD - }; - - ResponseLoginPdu () : m_stat(SUCCEED){ - command = RESPONSE_LOGIN; - } - ResponseLoginPdu (STAT stat, const std::string msg) : m_stat(stat), m_msg(msg){ - command = RESPONSE_LOGIN; - } - ResponseLoginPdu (const char* buf, size_t len); - virtual ~ResponseLoginPdu (); - - size_t serialization (char* buf) override; - - -protected: - STAT m_stat; - std::string m_msg; -}; - - - - -/* 读取一个协议 - * 调用此函数之前必须保证connecter是一个已经开始了事务的连接 - * 即 已经调用了start_tryRecive方法 - */ -std::shared_ptr makeIMPdu(std::shared_ptr connecter_ptr); -std::shared_ptr makeIMPdu(const char* buf); - -size_t IMPduToSerivlization(char* buf, std::shared_ptr pdu); - -} -#endif /* end of include guard: IMPROTOCOL_H_RYFKP0LD */ diff --git a/IM/IMProtocol.pb.cc b/IM/IMProtocol.pb.cc index f8d1d3c..488e406 100644 --- a/IM/IMProtocol.pb.cc +++ b/IM/IMProtocol.pb.cc @@ -15,23 +15,26 @@ #include // @@protoc_insertion_point(includes) #include +extern PROTOBUF_INTERNAL_EXPORT_IMProtocol_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Message_IMProtocol_2eproto; extern PROTOBUF_INTERNAL_EXPORT_IMProtocol_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Request_login_IMProtocol_2eproto; extern PROTOBUF_INTERNAL_EXPORT_IMProtocol_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Request_logout_IMProtocol_2eproto; extern PROTOBUF_INTERNAL_EXPORT_IMProtocol_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Request_sendmsg_IMProtocol_2eproto; extern PROTOBUF_INTERNAL_EXPORT_IMProtocol_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Response_login_IMProtocol_2eproto; extern PROTOBUF_INTERNAL_EXPORT_IMProtocol_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Response_sendmsg_IMProtocol_2eproto; +namespace Proto { class RequestDefaultTypeInternal { public: ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; - const ::Request_login* request_login_; - const ::Request_logout* request_logout_; - const ::Request_sendmsg* request_sendmsg_; + const ::Proto::Request_login* request_login_; + const ::Proto::Request_logout* request_logout_; + const ::Proto::Request_sendmsg* request_sendmsg_; } _Request_default_instance_; class ResponseDefaultTypeInternal { public: ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; - const ::Response_login* response_login_; - const ::Response_sendmsg* response_sendmsg_; + const ::Proto::Response_login* response_login_; + const ::Proto::Response_sendmsg* response_sendmsg_; + const ::Proto::Message* msg_; } _Response_default_instance_; class Request_loginDefaultTypeInternal { public: @@ -53,15 +56,34 @@ class Response_sendmsgDefaultTypeInternal { public: ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; } _Response_sendmsg_default_instance_; +class MessageDefaultTypeInternal { + public: + ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; +} _Message_default_instance_; +} // namespace Proto +static void InitDefaultsscc_info_Message_IMProtocol_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::Proto::_Message_default_instance_; + new (ptr) ::Proto::Message(); + ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); + } + ::Proto::Message::InitAsDefaultInstance(); +} + +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Message_IMProtocol_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Message_IMProtocol_2eproto}, {}}; + static void InitDefaultsscc_info_Request_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Request_default_instance_; - new (ptr) ::Request(); + void* ptr = &::Proto::_Request_default_instance_; + new (ptr) ::Proto::Request(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Request::InitAsDefaultInstance(); + ::Proto::Request::InitAsDefaultInstance(); } ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Request_IMProtocol_2eproto = @@ -74,11 +96,11 @@ static void InitDefaultsscc_info_Request_login_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Request_login_default_instance_; - new (ptr) ::Request_login(); + void* ptr = &::Proto::_Request_login_default_instance_; + new (ptr) ::Proto::Request_login(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Request_login::InitAsDefaultInstance(); + ::Proto::Request_login::InitAsDefaultInstance(); } ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Request_login_IMProtocol_2eproto = @@ -88,11 +110,11 @@ static void InitDefaultsscc_info_Request_logout_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Request_logout_default_instance_; - new (ptr) ::Request_logout(); + void* ptr = &::Proto::_Request_logout_default_instance_; + new (ptr) ::Proto::Request_logout(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Request_logout::InitAsDefaultInstance(); + ::Proto::Request_logout::InitAsDefaultInstance(); } ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Request_logout_IMProtocol_2eproto = @@ -102,11 +124,11 @@ static void InitDefaultsscc_info_Request_sendmsg_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Request_sendmsg_default_instance_; - new (ptr) ::Request_sendmsg(); + void* ptr = &::Proto::_Request_sendmsg_default_instance_; + new (ptr) ::Proto::Request_sendmsg(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Request_sendmsg::InitAsDefaultInstance(); + ::Proto::Request_sendmsg::InitAsDefaultInstance(); } ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Request_sendmsg_IMProtocol_2eproto = @@ -116,27 +138,28 @@ static void InitDefaultsscc_info_Response_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Response_default_instance_; - new (ptr) ::Response(); + void* ptr = &::Proto::_Response_default_instance_; + new (ptr) ::Proto::Response(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Response::InitAsDefaultInstance(); + ::Proto::Response::InitAsDefaultInstance(); } -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_Response_IMProtocol_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsscc_info_Response_IMProtocol_2eproto}, { +::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Response_IMProtocol_2eproto = + {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsscc_info_Response_IMProtocol_2eproto}, { &scc_info_Response_login_IMProtocol_2eproto.base, - &scc_info_Response_sendmsg_IMProtocol_2eproto.base,}}; + &scc_info_Response_sendmsg_IMProtocol_2eproto.base, + &scc_info_Message_IMProtocol_2eproto.base,}}; static void InitDefaultsscc_info_Response_login_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Response_login_default_instance_; - new (ptr) ::Response_login(); + void* ptr = &::Proto::_Response_login_default_instance_; + new (ptr) ::Proto::Response_login(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Response_login::InitAsDefaultInstance(); + ::Proto::Response_login::InitAsDefaultInstance(); } ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Response_login_IMProtocol_2eproto = @@ -146,121 +169,135 @@ static void InitDefaultsscc_info_Response_sendmsg_IMProtocol_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; { - void* ptr = &::_Response_sendmsg_default_instance_; - new (ptr) ::Response_sendmsg(); + void* ptr = &::Proto::_Response_sendmsg_default_instance_; + new (ptr) ::Proto::Response_sendmsg(); ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); } - ::Response_sendmsg::InitAsDefaultInstance(); + ::Proto::Response_sendmsg::InitAsDefaultInstance(); } ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Response_sendmsg_IMProtocol_2eproto = {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Response_sendmsg_IMProtocol_2eproto}, {}}; -static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_IMProtocol_2eproto[7]; +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_IMProtocol_2eproto[8]; static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_IMProtocol_2eproto[3]; static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_IMProtocol_2eproto = nullptr; const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_IMProtocol_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Request, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Request, _internal_metadata_), ~0u, // no _extensions_ - PROTOBUF_FIELD_OFFSET(::Request, _oneof_case_[0]), + PROTOBUF_FIELD_OFFSET(::Proto::Request, _oneof_case_[0]), ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Request, type_), - offsetof(::RequestDefaultTypeInternal, request_login_), - offsetof(::RequestDefaultTypeInternal, request_logout_), - offsetof(::RequestDefaultTypeInternal, request_sendmsg_), - PROTOBUF_FIELD_OFFSET(::Request, pdu_), + PROTOBUF_FIELD_OFFSET(::Proto::Request, type_), + offsetof(::Proto::RequestDefaultTypeInternal, request_login_), + offsetof(::Proto::RequestDefaultTypeInternal, request_logout_), + offsetof(::Proto::RequestDefaultTypeInternal, request_sendmsg_), + PROTOBUF_FIELD_OFFSET(::Proto::Request, pdu_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Response, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Response, _internal_metadata_), ~0u, // no _extensions_ - PROTOBUF_FIELD_OFFSET(::Response, _oneof_case_[0]), + PROTOBUF_FIELD_OFFSET(::Proto::Response, _oneof_case_[0]), ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Response, type_), - offsetof(::ResponseDefaultTypeInternal, response_login_), - offsetof(::ResponseDefaultTypeInternal, response_sendmsg_), - PROTOBUF_FIELD_OFFSET(::Response, pdu_), + PROTOBUF_FIELD_OFFSET(::Proto::Response, type_), + offsetof(::Proto::ResponseDefaultTypeInternal, response_login_), + offsetof(::Proto::ResponseDefaultTypeInternal, response_sendmsg_), + offsetof(::Proto::ResponseDefaultTypeInternal, msg_), + PROTOBUF_FIELD_OFFSET(::Proto::Response, pdu_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Request_login, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_login, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Request_login, id_), - PROTOBUF_FIELD_OFFSET(::Request_login, password_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_login, id_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_login, password_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Response_login, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Response_login, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Response_login, stat_), + PROTOBUF_FIELD_OFFSET(::Proto::Response_login, stat_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Request_logout, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_logout, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Request_logout, id_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_logout, id_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Request_sendmsg, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_sendmsg, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Request_sendmsg, msgid_), - PROTOBUF_FIELD_OFFSET(::Request_sendmsg, id_), - PROTOBUF_FIELD_OFFSET(::Request_sendmsg, objid_), - PROTOBUF_FIELD_OFFSET(::Request_sendmsg, msg_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_sendmsg, msgid_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_sendmsg, id_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_sendmsg, objid_), + PROTOBUF_FIELD_OFFSET(::Proto::Request_sendmsg, msg_), ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::Response_sendmsg, _internal_metadata_), + PROTOBUF_FIELD_OFFSET(::Proto::Response_sendmsg, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::Response_sendmsg, msgid_), - PROTOBUF_FIELD_OFFSET(::Response_sendmsg, stat_), + PROTOBUF_FIELD_OFFSET(::Proto::Response_sendmsg, msgid_), + PROTOBUF_FIELD_OFFSET(::Proto::Response_sendmsg, stat_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::Proto::Message, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::Proto::Message, fromid_), + PROTOBUF_FIELD_OFFSET(::Proto::Message, msg_), }; static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, sizeof(::Request)}, - { 10, -1, sizeof(::Response)}, - { 19, -1, sizeof(::Request_login)}, - { 26, -1, sizeof(::Response_login)}, - { 32, -1, sizeof(::Request_logout)}, - { 38, -1, sizeof(::Request_sendmsg)}, - { 47, -1, sizeof(::Response_sendmsg)}, + { 0, -1, sizeof(::Proto::Request)}, + { 10, -1, sizeof(::Proto::Response)}, + { 20, -1, sizeof(::Proto::Request_login)}, + { 27, -1, sizeof(::Proto::Response_login)}, + { 33, -1, sizeof(::Proto::Request_logout)}, + { 39, -1, sizeof(::Proto::Request_sendmsg)}, + { 48, -1, sizeof(::Proto::Response_sendmsg)}, + { 55, -1, sizeof(::Proto::Message)}, }; static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { - reinterpret_cast(&::_Request_default_instance_), - reinterpret_cast(&::_Response_default_instance_), - reinterpret_cast(&::_Request_login_default_instance_), - reinterpret_cast(&::_Response_login_default_instance_), - reinterpret_cast(&::_Request_logout_default_instance_), - reinterpret_cast(&::_Request_sendmsg_default_instance_), - reinterpret_cast(&::_Response_sendmsg_default_instance_), + reinterpret_cast(&::Proto::_Request_default_instance_), + reinterpret_cast(&::Proto::_Response_default_instance_), + reinterpret_cast(&::Proto::_Request_login_default_instance_), + reinterpret_cast(&::Proto::_Response_login_default_instance_), + reinterpret_cast(&::Proto::_Request_logout_default_instance_), + reinterpret_cast(&::Proto::_Request_sendmsg_default_instance_), + reinterpret_cast(&::Proto::_Response_sendmsg_default_instance_), + reinterpret_cast(&::Proto::_Message_default_instance_), }; const char descriptor_table_protodef_IMProtocol_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = - "\n\020IMProtocol.proto\"\332\001\n\007Request\022\033\n\004type\030\001" - " \001(\0162\r.Request.Type\022\'\n\rrequest_login\030\013 \001" - "(\0132\016.Request_loginH\000\022)\n\016request_logout\030\014" - " \001(\0132\017.Request_logoutH\000\022+\n\017request_sendm" - "sg\030\r \001(\0132\020.Request_sendmsgH\000\"*\n\004Type\022\t\n\005" - "LOGIN\020\000\022\n\n\006LOGOUT\020\001\022\013\n\007SENDMSG\020\002B\005\n\003pdu\"" - "\265\001\n\010Response\022\034\n\004type\030\001 \001(\0162\016.Response.Ty" - "pe\022)\n\016response_login\030\013 \001(\0132\017.Response_lo" - "ginH\000\022-\n\020response_sendmsg\030\r \001(\0132\021.Respon" - "se_sendmsgH\000\"*\n\004Type\022\t\n\005LOGIN\020\000\022\n\n\006LOGOU" - "T\020\001\022\013\n\007SENDMSG\020\002B\005\n\003pdu\"-\n\rRequest_login" - "\022\n\n\002ID\030\001 \001(\004\022\020\n\010password\030\002 \001(\t\"\214\001\n\016Respo" - "nse_login\022\"\n\004stat\030\001 \001(\0162\024.Response_login" - ".STAT\"V\n\004STAT\022\013\n\007SUCCESS\020\000\022\020\n\014ACCOUNT_NU" - "LL\020\001\022\020\n\014ACCOUNT_LOCK\020\002\022\022\n\016PASSWORD_ERROR" - "\020\003\022\t\n\005ERROR\020\n\"\034\n\016Request_logout\022\n\n\002ID\030\001 " - "\001(\004\"H\n\017Request_sendmsg\022\r\n\005msgID\030\001 \001(\r\022\n\n" - "\002ID\030\002 \001(\004\022\r\n\005objID\030\003 \001(\004\022\013\n\003msg\030\004 \001(\t\"/\n" - "\020Response_sendmsg\022\r\n\005msgID\030\001 \001(\r\022\014\n\004stat" - "\030\002 \001(\010b\006proto3" + "\n\020IMProtocol.proto\022\005Proto\"\362\001\n\007Request\022!\n" + "\004type\030\001 \001(\0162\023.Proto.Request.Type\022-\n\rrequ" + "est_login\030\013 \001(\0132\024.Proto.Request_loginH\000\022" + "/\n\016request_logout\030\014 \001(\0132\025.Proto.Request_" + "logoutH\000\0221\n\017request_sendmsg\030\r \001(\0132\026.Prot" + "o.Request_sendmsgH\000\"*\n\004Type\022\t\n\005LOGIN\020\000\022\n" + "\n\006LOGOUT\020\001\022\013\n\007SENDMSG\020\002B\005\n\003pdu\"\363\001\n\010Respo" + "nse\022\"\n\004type\030\001 \001(\0162\024.Proto.Response.Type\022" + "/\n\016response_login\030\013 \001(\0132\025.Proto.Response" + "_loginH\000\0223\n\020response_sendmsg\030\r \001(\0132\027.Pro" + "to.Response_sendmsgH\000\022\035\n\003msg\030\016 \001(\0132\016.Pro" + "to.MessageH\000\"7\n\004Type\022\t\n\005LOGIN\020\000\022\n\n\006LOGOU" + "T\020\001\022\013\n\007SENDMSG\020\002\022\013\n\007MESSAGE\020\003B\005\n\003pdu\"-\n\r" + "Request_login\022\n\n\002ID\030\001 \001(\004\022\020\n\010password\030\002 " + "\001(\t\"\222\001\n\016Response_login\022(\n\004stat\030\001 \001(\0162\032.P" + "roto.Response_login.STAT\"V\n\004STAT\022\013\n\007SUCC" + "ESS\020\000\022\020\n\014ACCOUNT_NULL\020\001\022\020\n\014ACCOUNT_LOCK\020" + "\002\022\022\n\016PASSWORD_ERROR\020\003\022\t\n\005ERROR\020\n\"\034\n\016Requ" + "est_logout\022\n\n\002ID\030\001 \001(\004\"H\n\017Request_sendms" + "g\022\r\n\005msgID\030\001 \001(\r\022\n\n\002ID\030\002 \001(\004\022\r\n\005objID\030\003 " + "\001(\004\022\013\n\003msg\030\004 \001(\t\"/\n\020Response_sendmsg\022\r\n\005" + "msgID\030\001 \001(\r\022\014\n\004stat\030\002 \001(\010\"&\n\007Message\022\016\n\006" + "fromID\030\002 \001(\004\022\013\n\003msg\030\003 \001(\tb\006proto3" ; static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_IMProtocol_2eproto_deps[1] = { }; -static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_IMProtocol_2eproto_sccs[7] = { +static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_IMProtocol_2eproto_sccs[8] = { + &scc_info_Message_IMProtocol_2eproto.base, &scc_info_Request_IMProtocol_2eproto.base, &scc_info_Request_login_IMProtocol_2eproto.base, &scc_info_Request_logout_IMProtocol_2eproto.base, @@ -272,14 +309,15 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_IMP static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_IMProtocol_2eproto_once; static bool descriptor_table_IMProtocol_2eproto_initialized = false; const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_IMProtocol_2eproto = { - &descriptor_table_IMProtocol_2eproto_initialized, descriptor_table_protodef_IMProtocol_2eproto, "IMProtocol.proto", 774, - &descriptor_table_IMProtocol_2eproto_once, descriptor_table_IMProtocol_2eproto_sccs, descriptor_table_IMProtocol_2eproto_deps, 7, 0, + &descriptor_table_IMProtocol_2eproto_initialized, descriptor_table_protodef_IMProtocol_2eproto, "IMProtocol.proto", 913, + &descriptor_table_IMProtocol_2eproto_once, descriptor_table_IMProtocol_2eproto_sccs, descriptor_table_IMProtocol_2eproto_deps, 8, 0, schemas, file_default_instances, TableStruct_IMProtocol_2eproto::offsets, - file_level_metadata_IMProtocol_2eproto, 7, file_level_enum_descriptors_IMProtocol_2eproto, file_level_service_descriptors_IMProtocol_2eproto, + file_level_metadata_IMProtocol_2eproto, 8, file_level_enum_descriptors_IMProtocol_2eproto, file_level_service_descriptors_IMProtocol_2eproto, }; // Force running AddDescriptors() at dynamic initialization time. static bool dynamic_init_dummy_IMProtocol_2eproto = ( ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_IMProtocol_2eproto), true); +namespace Proto { const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Request_Type_descriptor() { ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_IMProtocol_2eproto); return file_level_enum_descriptors_IMProtocol_2eproto[0]; @@ -312,6 +350,7 @@ bool Response_Type_IsValid(int value) { case 0: case 1: case 2: + case 3: return true; default: return false; @@ -322,6 +361,7 @@ bool Response_Type_IsValid(int value) { constexpr Response_Type Response::LOGIN; constexpr Response_Type Response::LOGOUT; constexpr Response_Type Response::SENDMSG; +constexpr Response_Type Response::MESSAGE; constexpr Response_Type Response::Type_MIN; constexpr Response_Type Response::Type_MAX; constexpr int Response::Type_ARRAYSIZE; @@ -357,33 +397,33 @@ constexpr int Response_login::STAT_ARRAYSIZE; // =================================================================== void Request::InitAsDefaultInstance() { - ::_Request_default_instance_.request_login_ = const_cast< ::Request_login*>( - ::Request_login::internal_default_instance()); - ::_Request_default_instance_.request_logout_ = const_cast< ::Request_logout*>( - ::Request_logout::internal_default_instance()); - ::_Request_default_instance_.request_sendmsg_ = const_cast< ::Request_sendmsg*>( - ::Request_sendmsg::internal_default_instance()); + ::Proto::_Request_default_instance_.request_login_ = const_cast< ::Proto::Request_login*>( + ::Proto::Request_login::internal_default_instance()); + ::Proto::_Request_default_instance_.request_logout_ = const_cast< ::Proto::Request_logout*>( + ::Proto::Request_logout::internal_default_instance()); + ::Proto::_Request_default_instance_.request_sendmsg_ = const_cast< ::Proto::Request_sendmsg*>( + ::Proto::Request_sendmsg::internal_default_instance()); } class Request::HasBitSetters { public: - static const ::Request_login& request_login(const Request* msg); - static const ::Request_logout& request_logout(const Request* msg); - static const ::Request_sendmsg& request_sendmsg(const Request* msg); + static const ::Proto::Request_login& request_login(const Request* msg); + static const ::Proto::Request_logout& request_logout(const Request* msg); + static const ::Proto::Request_sendmsg& request_sendmsg(const Request* msg); }; -const ::Request_login& +const ::Proto::Request_login& Request::HasBitSetters::request_login(const Request* msg) { return *msg->pdu_.request_login_; } -const ::Request_logout& +const ::Proto::Request_logout& Request::HasBitSetters::request_logout(const Request* msg) { return *msg->pdu_.request_logout_; } -const ::Request_sendmsg& +const ::Proto::Request_sendmsg& Request::HasBitSetters::request_sendmsg(const Request* msg) { return *msg->pdu_.request_sendmsg_; } -void Request::set_allocated_request_login(::Request_login* request_login) { +void Request::set_allocated_request_login(::Proto::Request_login* request_login) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); clear_pdu(); if (request_login) { @@ -395,9 +435,9 @@ void Request::set_allocated_request_login(::Request_login* request_login) { set_has_request_login(); pdu_.request_login_ = request_login; } - // @@protoc_insertion_point(field_set_allocated:Request.request_login) + // @@protoc_insertion_point(field_set_allocated:Proto.Request.request_login) } -void Request::set_allocated_request_logout(::Request_logout* request_logout) { +void Request::set_allocated_request_logout(::Proto::Request_logout* request_logout) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); clear_pdu(); if (request_logout) { @@ -409,9 +449,9 @@ void Request::set_allocated_request_logout(::Request_logout* request_logout) { set_has_request_logout(); pdu_.request_logout_ = request_logout; } - // @@protoc_insertion_point(field_set_allocated:Request.request_logout) + // @@protoc_insertion_point(field_set_allocated:Proto.Request.request_logout) } -void Request::set_allocated_request_sendmsg(::Request_sendmsg* request_sendmsg) { +void Request::set_allocated_request_sendmsg(::Proto::Request_sendmsg* request_sendmsg) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); clear_pdu(); if (request_sendmsg) { @@ -423,7 +463,7 @@ void Request::set_allocated_request_sendmsg(::Request_sendmsg* request_sendmsg) set_has_request_sendmsg(); pdu_.request_sendmsg_ = request_sendmsg; } - // @@protoc_insertion_point(field_set_allocated:Request.request_sendmsg) + // @@protoc_insertion_point(field_set_allocated:Proto.Request.request_sendmsg) } #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int Request::kTypeFieldNumber; @@ -435,7 +475,7 @@ const int Request::kRequestSendmsgFieldNumber; Request::Request() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Request) + // @@protoc_insertion_point(constructor:Proto.Request) } Request::Request(const Request& from) : ::PROTOBUF_NAMESPACE_ID::Message(), @@ -445,22 +485,22 @@ Request::Request(const Request& from) clear_has_pdu(); switch (from.pdu_case()) { case kRequestLogin: { - mutable_request_login()->::Request_login::MergeFrom(from.request_login()); + mutable_request_login()->::Proto::Request_login::MergeFrom(from.request_login()); break; } case kRequestLogout: { - mutable_request_logout()->::Request_logout::MergeFrom(from.request_logout()); + mutable_request_logout()->::Proto::Request_logout::MergeFrom(from.request_logout()); break; } case kRequestSendmsg: { - mutable_request_sendmsg()->::Request_sendmsg::MergeFrom(from.request_sendmsg()); + mutable_request_sendmsg()->::Proto::Request_sendmsg::MergeFrom(from.request_sendmsg()); break; } case PDU_NOT_SET: { break; } } - // @@protoc_insertion_point(copy_constructor:Request) + // @@protoc_insertion_point(copy_constructor:Proto.Request) } void Request::SharedCtor() { @@ -470,7 +510,7 @@ void Request::SharedCtor() { } Request::~Request() { - // @@protoc_insertion_point(destructor:Request) + // @@protoc_insertion_point(destructor:Proto.Request) SharedDtor(); } @@ -490,7 +530,7 @@ const Request& Request::default_instance() { void Request::clear_pdu() { -// @@protoc_insertion_point(one_of_clear_start:Request) +// @@protoc_insertion_point(one_of_clear_start:Proto.Request) switch (pdu_case()) { case kRequestLogin: { delete pdu_.request_login_; @@ -513,7 +553,7 @@ void Request::clear_pdu() { void Request::Clear() { -// @@protoc_insertion_point(message_clear_start:Request) +// @@protoc_insertion_point(message_clear_start:Proto.Request) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -531,29 +571,29 @@ const char* Request::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::in ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); CHK_(ptr); switch (tag >> 3) { - // .Request.Type type = 1; + // .Proto.Request.Type type = 1; case 1: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); CHK_(ptr); - set_type(static_cast<::Request_Type>(val)); + set_type(static_cast<::Proto::Request_Type>(val)); } else goto handle_unusual; continue; - // .Request_login request_login = 11; + // .Proto.Request_login request_login = 11; case 11: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) { ptr = ctx->ParseMessage(mutable_request_login(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // .Request_logout request_logout = 12; + // .Proto.Request_logout request_logout = 12; case 12: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) { ptr = ctx->ParseMessage(mutable_request_logout(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // .Request_sendmsg request_sendmsg = 13; + // .Proto.Request_sendmsg request_sendmsg = 13; case 13: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) { ptr = ctx->ParseMessage(mutable_request_sendmsg(), ptr); @@ -584,27 +624,27 @@ bool Request::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Request) + // @@protoc_insertion_point(parse_start:Proto.Request) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; if (!p.second) goto handle_unusual; switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // .Request.Type type = 1; + // .Proto.Request.Type type = 1; case 1: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (8 & 0xFF)) { int value = 0; DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>( input, &value))); - set_type(static_cast< ::Request_Type >(value)); + set_type(static_cast< ::Proto::Request_Type >(value)); } else { goto handle_unusual; } break; } - // .Request_login request_login = 11; + // .Proto.Request_login request_login = 11; case 11: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (90 & 0xFF)) { DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( @@ -615,7 +655,7 @@ bool Request::MergePartialFromCodedStream( break; } - // .Request_logout request_logout = 12; + // .Proto.Request_logout request_logout = 12; case 12: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (98 & 0xFF)) { DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( @@ -626,7 +666,7 @@ bool Request::MergePartialFromCodedStream( break; } - // .Request_sendmsg request_sendmsg = 13; + // .Proto.Request_sendmsg request_sendmsg = 13; case 13: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (106 & 0xFF)) { DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( @@ -649,10 +689,10 @@ bool Request::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Request) + // @@protoc_insertion_point(parse_success:Proto.Request) return true; failure: - // @@protoc_insertion_point(parse_failure:Request) + // @@protoc_insertion_point(parse_failure:Proto.Request) return false; #undef DO_ } @@ -660,29 +700,29 @@ bool Request::MergePartialFromCodedStream( void Request::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Request) + // @@protoc_insertion_point(serialize_start:Proto.Request) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - // .Request.Type type = 1; + // .Proto.Request.Type type = 1; if (this->type() != 0) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum( 1, this->type(), output); } - // .Request_login request_login = 11; + // .Proto.Request_login request_login = 11; if (has_request_login()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( 11, HasBitSetters::request_login(this), output); } - // .Request_logout request_logout = 12; + // .Proto.Request_logout request_logout = 12; if (has_request_logout()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( 12, HasBitSetters::request_logout(this), output); } - // .Request_sendmsg request_sendmsg = 13; + // .Proto.Request_sendmsg request_sendmsg = 13; if (has_request_sendmsg()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( 13, HasBitSetters::request_sendmsg(this), output); @@ -692,36 +732,36 @@ void Request::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Request) + // @@protoc_insertion_point(serialize_end:Proto.Request) } ::PROTOBUF_NAMESPACE_ID::uint8* Request::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Request) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Request) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - // .Request.Type type = 1; + // .Proto.Request.Type type = 1; if (this->type() != 0) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( 1, this->type(), target); } - // .Request_login request_login = 11; + // .Proto.Request_login request_login = 11; if (has_request_login()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessageToArray( 11, HasBitSetters::request_login(this), target); } - // .Request_logout request_logout = 12; + // .Proto.Request_logout request_logout = 12; if (has_request_logout()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessageToArray( 12, HasBitSetters::request_logout(this), target); } - // .Request_sendmsg request_sendmsg = 13; + // .Proto.Request_sendmsg request_sendmsg = 13; if (has_request_sendmsg()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessageToArray( @@ -732,12 +772,12 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Request::InternalSerializeWithCachedSizesToArray target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Request) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Request) return target; } size_t Request::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Request) +// @@protoc_insertion_point(message_byte_size_start:Proto.Request) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -749,28 +789,28 @@ size_t Request::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // .Request.Type type = 1; + // .Proto.Request.Type type = 1; if (this->type() != 0) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->type()); } switch (pdu_case()) { - // .Request_login request_login = 11; + // .Proto.Request_login request_login = 11; case kRequestLogin: { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *pdu_.request_login_); break; } - // .Request_logout request_logout = 12; + // .Proto.Request_logout request_logout = 12; case kRequestLogout: { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *pdu_.request_logout_); break; } - // .Request_sendmsg request_sendmsg = 13; + // .Proto.Request_sendmsg request_sendmsg = 13; case kRequestSendmsg: { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( @@ -787,22 +827,22 @@ size_t Request::ByteSizeLong() const { } void Request::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Request) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Request) GOOGLE_DCHECK_NE(&from, this); const Request* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Request) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Request) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Request) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Request) MergeFrom(*source); } } void Request::MergeFrom(const Request& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Request) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Request) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -813,15 +853,15 @@ void Request::MergeFrom(const Request& from) { } switch (from.pdu_case()) { case kRequestLogin: { - mutable_request_login()->::Request_login::MergeFrom(from.request_login()); + mutable_request_login()->::Proto::Request_login::MergeFrom(from.request_login()); break; } case kRequestLogout: { - mutable_request_logout()->::Request_logout::MergeFrom(from.request_logout()); + mutable_request_logout()->::Proto::Request_logout::MergeFrom(from.request_logout()); break; } case kRequestSendmsg: { - mutable_request_sendmsg()->::Request_sendmsg::MergeFrom(from.request_sendmsg()); + mutable_request_sendmsg()->::Proto::Request_sendmsg::MergeFrom(from.request_sendmsg()); break; } case PDU_NOT_SET: { @@ -831,14 +871,14 @@ void Request::MergeFrom(const Request& from) { } void Request::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Request) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Request) if (&from == this) return; Clear(); MergeFrom(from); } void Request::CopyFrom(const Request& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Request) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Request) if (&from == this) return; Clear(); MergeFrom(from); @@ -868,26 +908,33 @@ ::PROTOBUF_NAMESPACE_ID::Metadata Request::GetMetadata() const { // =================================================================== void Response::InitAsDefaultInstance() { - ::_Response_default_instance_.response_login_ = const_cast< ::Response_login*>( - ::Response_login::internal_default_instance()); - ::_Response_default_instance_.response_sendmsg_ = const_cast< ::Response_sendmsg*>( - ::Response_sendmsg::internal_default_instance()); + ::Proto::_Response_default_instance_.response_login_ = const_cast< ::Proto::Response_login*>( + ::Proto::Response_login::internal_default_instance()); + ::Proto::_Response_default_instance_.response_sendmsg_ = const_cast< ::Proto::Response_sendmsg*>( + ::Proto::Response_sendmsg::internal_default_instance()); + ::Proto::_Response_default_instance_.msg_ = const_cast< ::Proto::Message*>( + ::Proto::Message::internal_default_instance()); } class Response::HasBitSetters { public: - static const ::Response_login& response_login(const Response* msg); - static const ::Response_sendmsg& response_sendmsg(const Response* msg); + static const ::Proto::Response_login& response_login(const Response* msg); + static const ::Proto::Response_sendmsg& response_sendmsg(const Response* msg); + static const ::Proto::Message& msg(const Response* msg); }; -const ::Response_login& +const ::Proto::Response_login& Response::HasBitSetters::response_login(const Response* msg) { return *msg->pdu_.response_login_; } -const ::Response_sendmsg& +const ::Proto::Response_sendmsg& Response::HasBitSetters::response_sendmsg(const Response* msg) { return *msg->pdu_.response_sendmsg_; } -void Response::set_allocated_response_login(::Response_login* response_login) { +const ::Proto::Message& +Response::HasBitSetters::msg(const Response* msg) { + return *msg->pdu_.msg_; +} +void Response::set_allocated_response_login(::Proto::Response_login* response_login) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); clear_pdu(); if (response_login) { @@ -899,9 +946,9 @@ void Response::set_allocated_response_login(::Response_login* response_login) { set_has_response_login(); pdu_.response_login_ = response_login; } - // @@protoc_insertion_point(field_set_allocated:Response.response_login) + // @@protoc_insertion_point(field_set_allocated:Proto.Response.response_login) } -void Response::set_allocated_response_sendmsg(::Response_sendmsg* response_sendmsg) { +void Response::set_allocated_response_sendmsg(::Proto::Response_sendmsg* response_sendmsg) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); clear_pdu(); if (response_sendmsg) { @@ -913,18 +960,33 @@ void Response::set_allocated_response_sendmsg(::Response_sendmsg* response_sendm set_has_response_sendmsg(); pdu_.response_sendmsg_ = response_sendmsg; } - // @@protoc_insertion_point(field_set_allocated:Response.response_sendmsg) + // @@protoc_insertion_point(field_set_allocated:Proto.Response.response_sendmsg) +} +void Response::set_allocated_msg(::Proto::Message* msg) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); + clear_pdu(); + if (msg) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + msg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, msg, submessage_arena); + } + set_has_msg(); + pdu_.msg_ = msg; + } + // @@protoc_insertion_point(field_set_allocated:Proto.Response.msg) } #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int Response::kTypeFieldNumber; const int Response::kResponseLoginFieldNumber; const int Response::kResponseSendmsgFieldNumber; +const int Response::kMsgFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 Response::Response() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Response) + // @@protoc_insertion_point(constructor:Proto.Response) } Response::Response(const Response& from) : ::PROTOBUF_NAMESPACE_ID::Message(), @@ -934,18 +996,22 @@ Response::Response(const Response& from) clear_has_pdu(); switch (from.pdu_case()) { case kResponseLogin: { - mutable_response_login()->::Response_login::MergeFrom(from.response_login()); + mutable_response_login()->::Proto::Response_login::MergeFrom(from.response_login()); break; } case kResponseSendmsg: { - mutable_response_sendmsg()->::Response_sendmsg::MergeFrom(from.response_sendmsg()); + mutable_response_sendmsg()->::Proto::Response_sendmsg::MergeFrom(from.response_sendmsg()); + break; + } + case kMsg: { + mutable_msg()->::Proto::Message::MergeFrom(from.msg()); break; } case PDU_NOT_SET: { break; } } - // @@protoc_insertion_point(copy_constructor:Response) + // @@protoc_insertion_point(copy_constructor:Proto.Response) } void Response::SharedCtor() { @@ -955,7 +1021,7 @@ void Response::SharedCtor() { } Response::~Response() { - // @@protoc_insertion_point(destructor:Response) + // @@protoc_insertion_point(destructor:Proto.Response) SharedDtor(); } @@ -975,7 +1041,7 @@ const Response& Response::default_instance() { void Response::clear_pdu() { -// @@protoc_insertion_point(one_of_clear_start:Response) +// @@protoc_insertion_point(one_of_clear_start:Proto.Response) switch (pdu_case()) { case kResponseLogin: { delete pdu_.response_login_; @@ -985,6 +1051,10 @@ void Response::clear_pdu() { delete pdu_.response_sendmsg_; break; } + case kMsg: { + delete pdu_.msg_; + break; + } case PDU_NOT_SET: { break; } @@ -994,7 +1064,7 @@ void Response::clear_pdu() { void Response::Clear() { -// @@protoc_insertion_point(message_clear_start:Response) +// @@protoc_insertion_point(message_clear_start:Proto.Response) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -1012,28 +1082,35 @@ const char* Response::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::i ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); CHK_(ptr); switch (tag >> 3) { - // .Response.Type type = 1; + // .Proto.Response.Type type = 1; case 1: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); CHK_(ptr); - set_type(static_cast<::Response_Type>(val)); + set_type(static_cast<::Proto::Response_Type>(val)); } else goto handle_unusual; continue; - // .Response_login response_login = 11; + // .Proto.Response_login response_login = 11; case 11: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) { ptr = ctx->ParseMessage(mutable_response_login(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // .Response_sendmsg response_sendmsg = 13; + // .Proto.Response_sendmsg response_sendmsg = 13; case 13: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) { ptr = ctx->ParseMessage(mutable_response_sendmsg(), ptr); CHK_(ptr); } else goto handle_unusual; continue; + // .Proto.Message msg = 14; + case 14: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) { + ptr = ctx->ParseMessage(mutable_msg(), ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -1058,27 +1135,27 @@ bool Response::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Response) + // @@protoc_insertion_point(parse_start:Proto.Response) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; if (!p.second) goto handle_unusual; switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // .Response.Type type = 1; + // .Proto.Response.Type type = 1; case 1: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (8 & 0xFF)) { int value = 0; DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>( input, &value))); - set_type(static_cast< ::Response_Type >(value)); + set_type(static_cast< ::Proto::Response_Type >(value)); } else { goto handle_unusual; } break; } - // .Response_login response_login = 11; + // .Proto.Response_login response_login = 11; case 11: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (90 & 0xFF)) { DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( @@ -1089,7 +1166,7 @@ bool Response::MergePartialFromCodedStream( break; } - // .Response_sendmsg response_sendmsg = 13; + // .Proto.Response_sendmsg response_sendmsg = 13; case 13: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (106 & 0xFF)) { DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( @@ -1100,6 +1177,17 @@ bool Response::MergePartialFromCodedStream( break; } + // .Proto.Message msg = 14; + case 14: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (114 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage( + input, mutable_msg())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -1112,10 +1200,10 @@ bool Response::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Response) + // @@protoc_insertion_point(parse_success:Proto.Response) return true; failure: - // @@protoc_insertion_point(parse_failure:Response) + // @@protoc_insertion_point(parse_failure:Proto.Response) return false; #undef DO_ } @@ -1123,71 +1211,84 @@ bool Response::MergePartialFromCodedStream( void Response::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Response) + // @@protoc_insertion_point(serialize_start:Proto.Response) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - // .Response.Type type = 1; + // .Proto.Response.Type type = 1; if (this->type() != 0) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum( 1, this->type(), output); } - // .Response_login response_login = 11; + // .Proto.Response_login response_login = 11; if (has_response_login()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( 11, HasBitSetters::response_login(this), output); } - // .Response_sendmsg response_sendmsg = 13; + // .Proto.Response_sendmsg response_sendmsg = 13; if (has_response_sendmsg()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( 13, HasBitSetters::response_sendmsg(this), output); } + // .Proto.Message msg = 14; + if (has_msg()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray( + 14, HasBitSetters::msg(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Response) + // @@protoc_insertion_point(serialize_end:Proto.Response) } ::PROTOBUF_NAMESPACE_ID::uint8* Response::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Response) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Response) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - // .Response.Type type = 1; + // .Proto.Response.Type type = 1; if (this->type() != 0) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( 1, this->type(), target); } - // .Response_login response_login = 11; + // .Proto.Response_login response_login = 11; if (has_response_login()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessageToArray( 11, HasBitSetters::response_login(this), target); } - // .Response_sendmsg response_sendmsg = 13; + // .Proto.Response_sendmsg response_sendmsg = 13; if (has_response_sendmsg()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessageToArray( 13, HasBitSetters::response_sendmsg(this), target); } + // .Proto.Message msg = 14; + if (has_msg()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessageToArray( + 14, HasBitSetters::msg(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Response) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Response) return target; } size_t Response::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Response) +// @@protoc_insertion_point(message_byte_size_start:Proto.Response) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -1199,27 +1300,34 @@ size_t Response::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // .Response.Type type = 1; + // .Proto.Response.Type type = 1; if (this->type() != 0) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->type()); } switch (pdu_case()) { - // .Response_login response_login = 11; + // .Proto.Response_login response_login = 11; case kResponseLogin: { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *pdu_.response_login_); break; } - // .Response_sendmsg response_sendmsg = 13; + // .Proto.Response_sendmsg response_sendmsg = 13; case kResponseSendmsg: { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *pdu_.response_sendmsg_); break; } + // .Proto.Message msg = 14; + case kMsg: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *pdu_.msg_); + break; + } case PDU_NOT_SET: { break; } @@ -1230,22 +1338,22 @@ size_t Response::ByteSizeLong() const { } void Response::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Response) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Response) GOOGLE_DCHECK_NE(&from, this); const Response* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Response) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Response) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Response) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Response) MergeFrom(*source); } } void Response::MergeFrom(const Response& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Response) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Response) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -1256,11 +1364,15 @@ void Response::MergeFrom(const Response& from) { } switch (from.pdu_case()) { case kResponseLogin: { - mutable_response_login()->::Response_login::MergeFrom(from.response_login()); + mutable_response_login()->::Proto::Response_login::MergeFrom(from.response_login()); break; } case kResponseSendmsg: { - mutable_response_sendmsg()->::Response_sendmsg::MergeFrom(from.response_sendmsg()); + mutable_response_sendmsg()->::Proto::Response_sendmsg::MergeFrom(from.response_sendmsg()); + break; + } + case kMsg: { + mutable_msg()->::Proto::Message::MergeFrom(from.msg()); break; } case PDU_NOT_SET: { @@ -1270,14 +1382,14 @@ void Response::MergeFrom(const Response& from) { } void Response::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Response) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Response) if (&from == this) return; Clear(); MergeFrom(from); } void Response::CopyFrom(const Response& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Response) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Response) if (&from == this) return; Clear(); MergeFrom(from); @@ -1320,7 +1432,7 @@ const int Request_login::kPasswordFieldNumber; Request_login::Request_login() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Request_login) + // @@protoc_insertion_point(constructor:Proto.Request_login) } Request_login::Request_login(const Request_login& from) : ::PROTOBUF_NAMESPACE_ID::Message(), @@ -1331,7 +1443,7 @@ Request_login::Request_login(const Request_login& from) password_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.password_); } id_ = from.id_; - // @@protoc_insertion_point(copy_constructor:Request_login) + // @@protoc_insertion_point(copy_constructor:Proto.Request_login) } void Request_login::SharedCtor() { @@ -1341,7 +1453,7 @@ void Request_login::SharedCtor() { } Request_login::~Request_login() { - // @@protoc_insertion_point(destructor:Request_login) + // @@protoc_insertion_point(destructor:Proto.Request_login) SharedDtor(); } @@ -1359,7 +1471,7 @@ const Request_login& Request_login::default_instance() { void Request_login::Clear() { -// @@protoc_insertion_point(message_clear_start:Request_login) +// @@protoc_insertion_point(message_clear_start:Proto.Request_login) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -1387,7 +1499,7 @@ const char* Request_login::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ // string password = 2; case 2: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_password(), ptr, ctx, "Request_login.password"); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_password(), ptr, ctx, "Proto.Request_login.password"); CHK_(ptr); } else goto handle_unusual; continue; @@ -1415,7 +1527,7 @@ bool Request_login::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Request_login) + // @@protoc_insertion_point(parse_start:Proto.Request_login) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; @@ -1442,7 +1554,7 @@ bool Request_login::MergePartialFromCodedStream( DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->password().data(), static_cast(this->password().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, - "Request_login.password")); + "Proto.Request_login.password")); } else { goto handle_unusual; } @@ -1461,10 +1573,10 @@ bool Request_login::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Request_login) + // @@protoc_insertion_point(parse_success:Proto.Request_login) return true; failure: - // @@protoc_insertion_point(parse_failure:Request_login) + // @@protoc_insertion_point(parse_failure:Proto.Request_login) return false; #undef DO_ } @@ -1472,7 +1584,7 @@ bool Request_login::MergePartialFromCodedStream( void Request_login::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Request_login) + // @@protoc_insertion_point(serialize_start:Proto.Request_login) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -1486,7 +1598,7 @@ void Request_login::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->password().data(), static_cast(this->password().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "Request_login.password"); + "Proto.Request_login.password"); ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased( 2, this->password(), output); } @@ -1495,12 +1607,12 @@ void Request_login::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Request_login) + // @@protoc_insertion_point(serialize_end:Proto.Request_login) } ::PROTOBUF_NAMESPACE_ID::uint8* Request_login::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Request_login) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Request_login) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -1514,7 +1626,7 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Request_login::InternalSerializeWithCachedSizesT ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->password().data(), static_cast(this->password().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "Request_login.password"); + "Proto.Request_login.password"); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray( 2, this->password(), target); @@ -1524,12 +1636,12 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Request_login::InternalSerializeWithCachedSizesT target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Request_login) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Request_login) return target; } size_t Request_login::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Request_login) +// @@protoc_insertion_point(message_byte_size_start:Proto.Request_login) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -1561,22 +1673,22 @@ size_t Request_login::ByteSizeLong() const { } void Request_login::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Request_login) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Request_login) GOOGLE_DCHECK_NE(&from, this); const Request_login* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Request_login) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Request_login) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Request_login) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Request_login) MergeFrom(*source); } } void Request_login::MergeFrom(const Request_login& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Request_login) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Request_login) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -1592,14 +1704,14 @@ void Request_login::MergeFrom(const Request_login& from) { } void Request_login::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Request_login) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Request_login) if (&from == this) return; Clear(); MergeFrom(from); } void Request_login::CopyFrom(const Request_login& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Request_login) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Request_login) if (&from == this) return; Clear(); MergeFrom(from); @@ -1641,14 +1753,14 @@ const int Response_login::kStatFieldNumber; Response_login::Response_login() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Response_login) + // @@protoc_insertion_point(constructor:Proto.Response_login) } Response_login::Response_login(const Response_login& from) : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { _internal_metadata_.MergeFrom(from._internal_metadata_); stat_ = from.stat_; - // @@protoc_insertion_point(copy_constructor:Response_login) + // @@protoc_insertion_point(copy_constructor:Proto.Response_login) } void Response_login::SharedCtor() { @@ -1656,7 +1768,7 @@ void Response_login::SharedCtor() { } Response_login::~Response_login() { - // @@protoc_insertion_point(destructor:Response_login) + // @@protoc_insertion_point(destructor:Proto.Response_login) SharedDtor(); } @@ -1673,7 +1785,7 @@ const Response_login& Response_login::default_instance() { void Response_login::Clear() { -// @@protoc_insertion_point(message_clear_start:Response_login) +// @@protoc_insertion_point(message_clear_start:Proto.Response_login) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -1690,12 +1802,12 @@ const char* Response_login::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); CHK_(ptr); switch (tag >> 3) { - // .Response_login.STAT stat = 1; + // .Proto.Response_login.STAT stat = 1; case 1: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); CHK_(ptr); - set_stat(static_cast<::Response_login_STAT>(val)); + set_stat(static_cast<::Proto::Response_login_STAT>(val)); } else goto handle_unusual; continue; default: { @@ -1722,20 +1834,20 @@ bool Response_login::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Response_login) + // @@protoc_insertion_point(parse_start:Proto.Response_login) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; if (!p.second) goto handle_unusual; switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // .Response_login.STAT stat = 1; + // .Proto.Response_login.STAT stat = 1; case 1: { if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (8 & 0xFF)) { int value = 0; DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>( input, &value))); - set_stat(static_cast< ::Response_login_STAT >(value)); + set_stat(static_cast< ::Proto::Response_login_STAT >(value)); } else { goto handle_unusual; } @@ -1754,10 +1866,10 @@ bool Response_login::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Response_login) + // @@protoc_insertion_point(parse_success:Proto.Response_login) return true; failure: - // @@protoc_insertion_point(parse_failure:Response_login) + // @@protoc_insertion_point(parse_failure:Proto.Response_login) return false; #undef DO_ } @@ -1765,11 +1877,11 @@ bool Response_login::MergePartialFromCodedStream( void Response_login::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Response_login) + // @@protoc_insertion_point(serialize_start:Proto.Response_login) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - // .Response_login.STAT stat = 1; + // .Proto.Response_login.STAT stat = 1; if (this->stat() != 0) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum( 1, this->stat(), output); @@ -1779,16 +1891,16 @@ void Response_login::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Response_login) + // @@protoc_insertion_point(serialize_end:Proto.Response_login) } ::PROTOBUF_NAMESPACE_ID::uint8* Response_login::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Response_login) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Response_login) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; - // .Response_login.STAT stat = 1; + // .Proto.Response_login.STAT stat = 1; if (this->stat() != 0) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( 1, this->stat(), target); @@ -1798,12 +1910,12 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Response_login::InternalSerializeWithCachedSizes target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Response_login) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Response_login) return target; } size_t Response_login::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Response_login) +// @@protoc_insertion_point(message_byte_size_start:Proto.Response_login) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -1815,7 +1927,7 @@ size_t Response_login::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // .Response_login.STAT stat = 1; + // .Proto.Response_login.STAT stat = 1; if (this->stat() != 0) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->stat()); @@ -1827,22 +1939,22 @@ size_t Response_login::ByteSizeLong() const { } void Response_login::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Response_login) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Response_login) GOOGLE_DCHECK_NE(&from, this); const Response_login* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Response_login) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Response_login) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Response_login) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Response_login) MergeFrom(*source); } } void Response_login::MergeFrom(const Response_login& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Response_login) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Response_login) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -1854,14 +1966,14 @@ void Response_login::MergeFrom(const Response_login& from) { } void Response_login::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Response_login) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Response_login) if (&from == this) return; Clear(); MergeFrom(from); } void Response_login::CopyFrom(const Response_login& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Response_login) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Response_login) if (&from == this) return; Clear(); MergeFrom(from); @@ -1901,14 +2013,14 @@ const int Request_logout::kIDFieldNumber; Request_logout::Request_logout() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Request_logout) + // @@protoc_insertion_point(constructor:Proto.Request_logout) } Request_logout::Request_logout(const Request_logout& from) : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { _internal_metadata_.MergeFrom(from._internal_metadata_); id_ = from.id_; - // @@protoc_insertion_point(copy_constructor:Request_logout) + // @@protoc_insertion_point(copy_constructor:Proto.Request_logout) } void Request_logout::SharedCtor() { @@ -1916,7 +2028,7 @@ void Request_logout::SharedCtor() { } Request_logout::~Request_logout() { - // @@protoc_insertion_point(destructor:Request_logout) + // @@protoc_insertion_point(destructor:Proto.Request_logout) SharedDtor(); } @@ -1933,7 +2045,7 @@ const Request_logout& Request_logout::default_instance() { void Request_logout::Clear() { -// @@protoc_insertion_point(message_clear_start:Request_logout) +// @@protoc_insertion_point(message_clear_start:Proto.Request_logout) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -1981,7 +2093,7 @@ bool Request_logout::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Request_logout) + // @@protoc_insertion_point(parse_start:Proto.Request_logout) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; @@ -2012,10 +2124,10 @@ bool Request_logout::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Request_logout) + // @@protoc_insertion_point(parse_success:Proto.Request_logout) return true; failure: - // @@protoc_insertion_point(parse_failure:Request_logout) + // @@protoc_insertion_point(parse_failure:Proto.Request_logout) return false; #undef DO_ } @@ -2023,7 +2135,7 @@ bool Request_logout::MergePartialFromCodedStream( void Request_logout::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Request_logout) + // @@protoc_insertion_point(serialize_start:Proto.Request_logout) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -2036,12 +2148,12 @@ void Request_logout::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Request_logout) + // @@protoc_insertion_point(serialize_end:Proto.Request_logout) } ::PROTOBUF_NAMESPACE_ID::uint8* Request_logout::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Request_logout) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Request_logout) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -2054,12 +2166,12 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Request_logout::InternalSerializeWithCachedSizes target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Request_logout) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Request_logout) return target; } size_t Request_logout::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Request_logout) +// @@protoc_insertion_point(message_byte_size_start:Proto.Request_logout) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -2084,22 +2196,22 @@ size_t Request_logout::ByteSizeLong() const { } void Request_logout::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Request_logout) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Request_logout) GOOGLE_DCHECK_NE(&from, this); const Request_logout* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Request_logout) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Request_logout) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Request_logout) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Request_logout) MergeFrom(*source); } } void Request_logout::MergeFrom(const Request_logout& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Request_logout) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Request_logout) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -2111,14 +2223,14 @@ void Request_logout::MergeFrom(const Request_logout& from) { } void Request_logout::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Request_logout) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Request_logout) if (&from == this) return; Clear(); MergeFrom(from); } void Request_logout::CopyFrom(const Request_logout& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Request_logout) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Request_logout) if (&from == this) return; Clear(); MergeFrom(from); @@ -2161,7 +2273,7 @@ const int Request_sendmsg::kMsgFieldNumber; Request_sendmsg::Request_sendmsg() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Request_sendmsg) + // @@protoc_insertion_point(constructor:Proto.Request_sendmsg) } Request_sendmsg::Request_sendmsg(const Request_sendmsg& from) : ::PROTOBUF_NAMESPACE_ID::Message(), @@ -2174,7 +2286,7 @@ Request_sendmsg::Request_sendmsg(const Request_sendmsg& from) ::memcpy(&id_, &from.id_, static_cast(reinterpret_cast(&msgid_) - reinterpret_cast(&id_)) + sizeof(msgid_)); - // @@protoc_insertion_point(copy_constructor:Request_sendmsg) + // @@protoc_insertion_point(copy_constructor:Proto.Request_sendmsg) } void Request_sendmsg::SharedCtor() { @@ -2186,7 +2298,7 @@ void Request_sendmsg::SharedCtor() { } Request_sendmsg::~Request_sendmsg() { - // @@protoc_insertion_point(destructor:Request_sendmsg) + // @@protoc_insertion_point(destructor:Proto.Request_sendmsg) SharedDtor(); } @@ -2204,7 +2316,7 @@ const Request_sendmsg& Request_sendmsg::default_instance() { void Request_sendmsg::Clear() { -// @@protoc_insertion_point(message_clear_start:Request_sendmsg) +// @@protoc_insertion_point(message_clear_start:Proto.Request_sendmsg) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -2248,7 +2360,7 @@ const char* Request_sendmsg::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPAC // string msg = 4; case 4: if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) { - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_msg(), ptr, ctx, "Request_sendmsg.msg"); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_msg(), ptr, ctx, "Proto.Request_sendmsg.msg"); CHK_(ptr); } else goto handle_unusual; continue; @@ -2276,7 +2388,7 @@ bool Request_sendmsg::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Request_sendmsg) + // @@protoc_insertion_point(parse_start:Proto.Request_sendmsg) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; @@ -2329,7 +2441,7 @@ bool Request_sendmsg::MergePartialFromCodedStream( DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->msg().data(), static_cast(this->msg().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, - "Request_sendmsg.msg")); + "Proto.Request_sendmsg.msg")); } else { goto handle_unusual; } @@ -2348,10 +2460,10 @@ bool Request_sendmsg::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Request_sendmsg) + // @@protoc_insertion_point(parse_success:Proto.Request_sendmsg) return true; failure: - // @@protoc_insertion_point(parse_failure:Request_sendmsg) + // @@protoc_insertion_point(parse_failure:Proto.Request_sendmsg) return false; #undef DO_ } @@ -2359,7 +2471,7 @@ bool Request_sendmsg::MergePartialFromCodedStream( void Request_sendmsg::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Request_sendmsg) + // @@protoc_insertion_point(serialize_start:Proto.Request_sendmsg) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -2383,7 +2495,7 @@ void Request_sendmsg::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->msg().data(), static_cast(this->msg().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "Request_sendmsg.msg"); + "Proto.Request_sendmsg.msg"); ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased( 4, this->msg(), output); } @@ -2392,12 +2504,12 @@ void Request_sendmsg::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Request_sendmsg) + // @@protoc_insertion_point(serialize_end:Proto.Request_sendmsg) } ::PROTOBUF_NAMESPACE_ID::uint8* Request_sendmsg::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Request_sendmsg) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Request_sendmsg) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -2421,7 +2533,7 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Request_sendmsg::InternalSerializeWithCachedSize ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->msg().data(), static_cast(this->msg().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "Request_sendmsg.msg"); + "Proto.Request_sendmsg.msg"); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray( 4, this->msg(), target); @@ -2431,12 +2543,12 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Request_sendmsg::InternalSerializeWithCachedSize target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Request_sendmsg) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Request_sendmsg) return target; } size_t Request_sendmsg::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Request_sendmsg) +// @@protoc_insertion_point(message_byte_size_start:Proto.Request_sendmsg) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -2482,22 +2594,22 @@ size_t Request_sendmsg::ByteSizeLong() const { } void Request_sendmsg::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Request_sendmsg) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Request_sendmsg) GOOGLE_DCHECK_NE(&from, this); const Request_sendmsg* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Request_sendmsg) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Request_sendmsg) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Request_sendmsg) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Request_sendmsg) MergeFrom(*source); } } void Request_sendmsg::MergeFrom(const Request_sendmsg& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Request_sendmsg) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Request_sendmsg) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -2519,14 +2631,14 @@ void Request_sendmsg::MergeFrom(const Request_sendmsg& from) { } void Request_sendmsg::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Request_sendmsg) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Request_sendmsg) if (&from == this) return; Clear(); MergeFrom(from); } void Request_sendmsg::CopyFrom(const Request_sendmsg& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Request_sendmsg) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Request_sendmsg) if (&from == this) return; Clear(); MergeFrom(from); @@ -2571,7 +2683,7 @@ const int Response_sendmsg::kStatFieldNumber; Response_sendmsg::Response_sendmsg() : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { SharedCtor(); - // @@protoc_insertion_point(constructor:Response_sendmsg) + // @@protoc_insertion_point(constructor:Proto.Response_sendmsg) } Response_sendmsg::Response_sendmsg(const Response_sendmsg& from) : ::PROTOBUF_NAMESPACE_ID::Message(), @@ -2580,7 +2692,7 @@ Response_sendmsg::Response_sendmsg(const Response_sendmsg& from) ::memcpy(&msgid_, &from.msgid_, static_cast(reinterpret_cast(&stat_) - reinterpret_cast(&msgid_)) + sizeof(stat_)); - // @@protoc_insertion_point(copy_constructor:Response_sendmsg) + // @@protoc_insertion_point(copy_constructor:Proto.Response_sendmsg) } void Response_sendmsg::SharedCtor() { @@ -2590,7 +2702,7 @@ void Response_sendmsg::SharedCtor() { } Response_sendmsg::~Response_sendmsg() { - // @@protoc_insertion_point(destructor:Response_sendmsg) + // @@protoc_insertion_point(destructor:Proto.Response_sendmsg) SharedDtor(); } @@ -2607,7 +2719,7 @@ const Response_sendmsg& Response_sendmsg::default_instance() { void Response_sendmsg::Clear() { -// @@protoc_insertion_point(message_clear_start:Response_sendmsg) +// @@protoc_insertion_point(message_clear_start:Proto.Response_sendmsg) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; @@ -2664,7 +2776,7 @@ bool Response_sendmsg::MergePartialFromCodedStream( ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure ::PROTOBUF_NAMESPACE_ID::uint32 tag; - // @@protoc_insertion_point(parse_start:Response_sendmsg) + // @@protoc_insertion_point(parse_start:Proto.Response_sendmsg) for (;;) { ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); tag = p.first; @@ -2708,10 +2820,10 @@ bool Response_sendmsg::MergePartialFromCodedStream( } } success: - // @@protoc_insertion_point(parse_success:Response_sendmsg) + // @@protoc_insertion_point(parse_success:Proto.Response_sendmsg) return true; failure: - // @@protoc_insertion_point(parse_failure:Response_sendmsg) + // @@protoc_insertion_point(parse_failure:Proto.Response_sendmsg) return false; #undef DO_ } @@ -2719,7 +2831,7 @@ bool Response_sendmsg::MergePartialFromCodedStream( void Response_sendmsg::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:Response_sendmsg) + // @@protoc_insertion_point(serialize_start:Proto.Response_sendmsg) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -2737,12 +2849,12 @@ void Response_sendmsg::SerializeWithCachedSizes( ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); } - // @@protoc_insertion_point(serialize_end:Response_sendmsg) + // @@protoc_insertion_point(serialize_end:Proto.Response_sendmsg) } ::PROTOBUF_NAMESPACE_ID::uint8* Response_sendmsg::InternalSerializeWithCachedSizesToArray( ::PROTOBUF_NAMESPACE_ID::uint8* target) const { - // @@protoc_insertion_point(serialize_to_array_start:Response_sendmsg) + // @@protoc_insertion_point(serialize_to_array_start:Proto.Response_sendmsg) ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; (void) cached_has_bits; @@ -2760,12 +2872,12 @@ ::PROTOBUF_NAMESPACE_ID::uint8* Response_sendmsg::InternalSerializeWithCachedSiz target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); } - // @@protoc_insertion_point(serialize_to_array_end:Response_sendmsg) + // @@protoc_insertion_point(serialize_to_array_end:Proto.Response_sendmsg) return target; } size_t Response_sendmsg::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:Response_sendmsg) +// @@protoc_insertion_point(message_byte_size_start:Proto.Response_sendmsg) size_t total_size = 0; if (_internal_metadata_.have_unknown_fields()) { @@ -2795,22 +2907,22 @@ size_t Response_sendmsg::ByteSizeLong() const { } void Response_sendmsg::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:Response_sendmsg) +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Response_sendmsg) GOOGLE_DCHECK_NE(&from, this); const Response_sendmsg* source = ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( &from); if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:Response_sendmsg) + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Response_sendmsg) ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:Response_sendmsg) + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Response_sendmsg) MergeFrom(*source); } } void Response_sendmsg::MergeFrom(const Response_sendmsg& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:Response_sendmsg) +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Response_sendmsg) GOOGLE_DCHECK_NE(&from, this); _internal_metadata_.MergeFrom(from._internal_metadata_); ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; @@ -2825,14 +2937,14 @@ void Response_sendmsg::MergeFrom(const Response_sendmsg& from) { } void Response_sendmsg::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:Response_sendmsg) +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Response_sendmsg) if (&from == this) return; Clear(); MergeFrom(from); } void Response_sendmsg::CopyFrom(const Response_sendmsg& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:Response_sendmsg) +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Response_sendmsg) if (&from == this) return; Clear(); MergeFrom(from); @@ -2858,28 +2970,354 @@ ::PROTOBUF_NAMESPACE_ID::Metadata Response_sendmsg::GetMetadata() const { } +// =================================================================== + +void Message::InitAsDefaultInstance() { +} +class Message::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int Message::kFromIDFieldNumber; +const int Message::kMsgFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +Message::Message() + : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:Proto.Message) +} +Message::Message(const Message& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + if (from.msg().size() > 0) { + msg_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.msg_); + } + fromid_ = from.fromid_; + // @@protoc_insertion_point(copy_constructor:Proto.Message) +} + +void Message::SharedCtor() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Message_IMProtocol_2eproto.base); + msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + fromid_ = PROTOBUF_ULONGLONG(0); +} + +Message::~Message() { + // @@protoc_insertion_point(destructor:Proto.Message) + SharedDtor(); +} + +void Message::SharedDtor() { + msg_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} + +void Message::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const Message& Message::default_instance() { + ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Message_IMProtocol_2eproto.base); + return *internal_default_instance(); +} + + +void Message::Clear() { +// @@protoc_insertion_point(message_clear_start:Proto.Message) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + msg_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + fromid_ = PROTOBUF_ULONGLONG(0); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* Message::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + CHK_(ptr); + switch (tag >> 3) { + // uint64 fromID = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { + fromid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); + CHK_(ptr); + } else goto handle_unusual; + continue; + // string msg = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_msg(), ptr, ctx, "Proto.Message.msg"); + CHK_(ptr); + } else goto handle_unusual; + continue; + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->SetLastTag(tag); + goto success; + } + ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); + CHK_(ptr != nullptr); + continue; + } + } // switch + } // while +success: + return ptr; +failure: + ptr = nullptr; + goto success; +#undef CHK_ +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool Message::MergePartialFromCodedStream( + ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::PROTOBUF_NAMESPACE_ID::uint32 tag; + // @@protoc_insertion_point(parse_start:Proto.Message) + for (;;) { + ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // uint64 fromID = 2; + case 2: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (16 & 0xFF)) { + + DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive< + ::PROTOBUF_NAMESPACE_ID::uint64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT64>( + input, &fromid_))); + } else { + goto handle_unusual; + } + break; + } + + // string msg = 3; + case 3: { + if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) { + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString( + input, this->mutable_msg())); + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->msg().data(), static_cast(this->msg().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, + "Proto.Message.msg")); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:Proto.Message) + return true; +failure: + // @@protoc_insertion_point(parse_failure:Proto.Message) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void Message::SerializeWithCachedSizes( + ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:Proto.Message) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // uint64 fromID = 2; + if (this->fromid() != 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(2, this->fromid(), output); + } + + // string msg = 3; + if (this->msg().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->msg().data(), static_cast(this->msg().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "Proto.Message.msg"); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->msg(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:Proto.Message) +} + +::PROTOBUF_NAMESPACE_ID::uint8* Message::InternalSerializeWithCachedSizesToArray( + ::PROTOBUF_NAMESPACE_ID::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:Proto.Message) + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // uint64 fromID = 2; + if (this->fromid() != 0) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(2, this->fromid(), target); + } + + // string msg = 3; + if (this->msg().size() > 0) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->msg().data(), static_cast(this->msg().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "Proto.Message.msg"); + target = + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray( + 3, this->msg(), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:Proto.Message) + return target; +} + +size_t Message::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:Proto.Message) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string msg = 3; + if (this->msg().size() > 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->msg()); + } + + // uint64 fromID = 2; + if (this->fromid() != 0) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size( + this->fromid()); + } + + int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void Message::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:Proto.Message) + GOOGLE_DCHECK_NE(&from, this); + const Message* source = + ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:Proto.Message) + ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:Proto.Message) + MergeFrom(*source); + } +} + +void Message::MergeFrom(const Message& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:Proto.Message) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.msg().size() > 0) { + + msg_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.msg_); + } + if (from.fromid() != 0) { + set_fromid(from.fromid()); + } +} + +void Message::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:Proto.Message) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void Message::CopyFrom(const Message& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:Proto.Message) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool Message::IsInitialized() const { + return true; +} + +void Message::Swap(Message* other) { + if (other == this) return; + InternalSwap(other); +} +void Message::InternalSwap(Message* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + msg_.Swap(&other->msg_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(fromid_, other->fromid_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata Message::GetMetadata() const { + return GetMetadataStatic(); +} + + // @@protoc_insertion_point(namespace_scope) +} // namespace Proto PROTOBUF_NAMESPACE_OPEN -template<> PROTOBUF_NOINLINE ::Request* Arena::CreateMaybeMessage< ::Request >(Arena* arena) { - return Arena::CreateInternal< ::Request >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Request* Arena::CreateMaybeMessage< ::Proto::Request >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Request >(arena); +} +template<> PROTOBUF_NOINLINE ::Proto::Response* Arena::CreateMaybeMessage< ::Proto::Response >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Response >(arena); } -template<> PROTOBUF_NOINLINE ::Response* Arena::CreateMaybeMessage< ::Response >(Arena* arena) { - return Arena::CreateInternal< ::Response >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Request_login* Arena::CreateMaybeMessage< ::Proto::Request_login >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Request_login >(arena); } -template<> PROTOBUF_NOINLINE ::Request_login* Arena::CreateMaybeMessage< ::Request_login >(Arena* arena) { - return Arena::CreateInternal< ::Request_login >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Response_login* Arena::CreateMaybeMessage< ::Proto::Response_login >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Response_login >(arena); } -template<> PROTOBUF_NOINLINE ::Response_login* Arena::CreateMaybeMessage< ::Response_login >(Arena* arena) { - return Arena::CreateInternal< ::Response_login >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Request_logout* Arena::CreateMaybeMessage< ::Proto::Request_logout >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Request_logout >(arena); } -template<> PROTOBUF_NOINLINE ::Request_logout* Arena::CreateMaybeMessage< ::Request_logout >(Arena* arena) { - return Arena::CreateInternal< ::Request_logout >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Request_sendmsg* Arena::CreateMaybeMessage< ::Proto::Request_sendmsg >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Request_sendmsg >(arena); } -template<> PROTOBUF_NOINLINE ::Request_sendmsg* Arena::CreateMaybeMessage< ::Request_sendmsg >(Arena* arena) { - return Arena::CreateInternal< ::Request_sendmsg >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Response_sendmsg* Arena::CreateMaybeMessage< ::Proto::Response_sendmsg >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Response_sendmsg >(arena); } -template<> PROTOBUF_NOINLINE ::Response_sendmsg* Arena::CreateMaybeMessage< ::Response_sendmsg >(Arena* arena) { - return Arena::CreateInternal< ::Response_sendmsg >(arena); +template<> PROTOBUF_NOINLINE ::Proto::Message* Arena::CreateMaybeMessage< ::Proto::Message >(Arena* arena) { + return Arena::CreateInternal< ::Proto::Message >(arena); } PROTOBUF_NAMESPACE_CLOSE diff --git a/IM/IMProtocol.pb.h b/IM/IMProtocol.pb.h index 490908b..379d3a1 100644 --- a/IM/IMProtocol.pb.h +++ b/IM/IMProtocol.pb.h @@ -48,13 +48,17 @@ struct TableStruct_IMProtocol_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[7] + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[8] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; }; extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_IMProtocol_2eproto; +namespace Proto { +class Message; +class MessageDefaultTypeInternal; +extern MessageDefaultTypeInternal _Message_default_instance_; class Request; class RequestDefaultTypeInternal; extern RequestDefaultTypeInternal _Request_default_instance_; @@ -76,15 +80,18 @@ extern Response_loginDefaultTypeInternal _Response_login_default_instance_; class Response_sendmsg; class Response_sendmsgDefaultTypeInternal; extern Response_sendmsgDefaultTypeInternal _Response_sendmsg_default_instance_; +} // namespace Proto PROTOBUF_NAMESPACE_OPEN -template<> ::Request* Arena::CreateMaybeMessage<::Request>(Arena*); -template<> ::Request_login* Arena::CreateMaybeMessage<::Request_login>(Arena*); -template<> ::Request_logout* Arena::CreateMaybeMessage<::Request_logout>(Arena*); -template<> ::Request_sendmsg* Arena::CreateMaybeMessage<::Request_sendmsg>(Arena*); -template<> ::Response* Arena::CreateMaybeMessage<::Response>(Arena*); -template<> ::Response_login* Arena::CreateMaybeMessage<::Response_login>(Arena*); -template<> ::Response_sendmsg* Arena::CreateMaybeMessage<::Response_sendmsg>(Arena*); +template<> ::Proto::Message* Arena::CreateMaybeMessage<::Proto::Message>(Arena*); +template<> ::Proto::Request* Arena::CreateMaybeMessage<::Proto::Request>(Arena*); +template<> ::Proto::Request_login* Arena::CreateMaybeMessage<::Proto::Request_login>(Arena*); +template<> ::Proto::Request_logout* Arena::CreateMaybeMessage<::Proto::Request_logout>(Arena*); +template<> ::Proto::Request_sendmsg* Arena::CreateMaybeMessage<::Proto::Request_sendmsg>(Arena*); +template<> ::Proto::Response* Arena::CreateMaybeMessage<::Proto::Response>(Arena*); +template<> ::Proto::Response_login* Arena::CreateMaybeMessage<::Proto::Response_login>(Arena*); +template<> ::Proto::Response_sendmsg* Arena::CreateMaybeMessage<::Proto::Response_sendmsg>(Arena*); PROTOBUF_NAMESPACE_CLOSE +namespace Proto { enum Request_Type : int { Request_Type_LOGIN = 0, @@ -116,12 +123,13 @@ enum Response_Type : int { Response_Type_LOGIN = 0, Response_Type_LOGOUT = 1, Response_Type_SENDMSG = 2, + Response_Type_MESSAGE = 3, Response_Type_Response_Type_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), Response_Type_Response_Type_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() }; bool Response_Type_IsValid(int value); constexpr Response_Type Response_Type_Type_MIN = Response_Type_LOGIN; -constexpr Response_Type Response_Type_Type_MAX = Response_Type_SENDMSG; +constexpr Response_Type Response_Type_Type_MAX = Response_Type_MESSAGE; constexpr int Response_Type_Type_ARRAYSIZE = Response_Type_Type_MAX + 1; const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Response_Type_descriptor(); @@ -169,7 +177,7 @@ inline bool Response_login_STAT_Parse( // =================================================================== class Request : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Request) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Request) */ { public: Request(); virtual ~Request(); @@ -260,7 +268,7 @@ class Request : void InternalSwap(Request* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Request"; + return "Proto.Request"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -316,42 +324,42 @@ class Request : // accessors ------------------------------------------------------- - // .Request.Type type = 1; + // .Proto.Request.Type type = 1; void clear_type(); static const int kTypeFieldNumber = 1; - ::Request_Type type() const; - void set_type(::Request_Type value); + ::Proto::Request_Type type() const; + void set_type(::Proto::Request_Type value); - // .Request_login request_login = 11; + // .Proto.Request_login request_login = 11; bool has_request_login() const; void clear_request_login(); static const int kRequestLoginFieldNumber = 11; - const ::Request_login& request_login() const; - ::Request_login* release_request_login(); - ::Request_login* mutable_request_login(); - void set_allocated_request_login(::Request_login* request_login); + const ::Proto::Request_login& request_login() const; + ::Proto::Request_login* release_request_login(); + ::Proto::Request_login* mutable_request_login(); + void set_allocated_request_login(::Proto::Request_login* request_login); - // .Request_logout request_logout = 12; + // .Proto.Request_logout request_logout = 12; bool has_request_logout() const; void clear_request_logout(); static const int kRequestLogoutFieldNumber = 12; - const ::Request_logout& request_logout() const; - ::Request_logout* release_request_logout(); - ::Request_logout* mutable_request_logout(); - void set_allocated_request_logout(::Request_logout* request_logout); + const ::Proto::Request_logout& request_logout() const; + ::Proto::Request_logout* release_request_logout(); + ::Proto::Request_logout* mutable_request_logout(); + void set_allocated_request_logout(::Proto::Request_logout* request_logout); - // .Request_sendmsg request_sendmsg = 13; + // .Proto.Request_sendmsg request_sendmsg = 13; bool has_request_sendmsg() const; void clear_request_sendmsg(); static const int kRequestSendmsgFieldNumber = 13; - const ::Request_sendmsg& request_sendmsg() const; - ::Request_sendmsg* release_request_sendmsg(); - ::Request_sendmsg* mutable_request_sendmsg(); - void set_allocated_request_sendmsg(::Request_sendmsg* request_sendmsg); + const ::Proto::Request_sendmsg& request_sendmsg() const; + ::Proto::Request_sendmsg* release_request_sendmsg(); + ::Proto::Request_sendmsg* mutable_request_sendmsg(); + void set_allocated_request_sendmsg(::Proto::Request_sendmsg* request_sendmsg); void clear_pdu(); PduCase pdu_case() const; - // @@protoc_insertion_point(class_scope:Request) + // @@protoc_insertion_point(class_scope:Proto.Request) private: class HasBitSetters; void set_has_request_login(); @@ -365,9 +373,9 @@ class Request : int type_; union PduUnion { PduUnion() {} - ::Request_login* request_login_; - ::Request_logout* request_logout_; - ::Request_sendmsg* request_sendmsg_; + ::Proto::Request_login* request_login_; + ::Proto::Request_logout* request_logout_; + ::Proto::Request_sendmsg* request_sendmsg_; } pdu_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1]; @@ -377,7 +385,7 @@ class Request : // ------------------------------------------------------------------- class Response : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Response) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Response) */ { public: Response(); virtual ~Response(); @@ -415,6 +423,7 @@ class Response : enum PduCase { kResponseLogin = 11, kResponseSendmsg = 13, + kMsg = 14, PDU_NOT_SET = 0, }; @@ -467,7 +476,7 @@ class Response : void InternalSwap(Response* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Response"; + return "Proto.Response"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -496,6 +505,8 @@ class Response : Response_Type_LOGOUT; static constexpr Type SENDMSG = Response_Type_SENDMSG; + static constexpr Type MESSAGE = + Response_Type_MESSAGE; static inline bool Type_IsValid(int value) { return Response_Type_IsValid(value); } @@ -523,37 +534,47 @@ class Response : // accessors ------------------------------------------------------- - // .Response.Type type = 1; + // .Proto.Response.Type type = 1; void clear_type(); static const int kTypeFieldNumber = 1; - ::Response_Type type() const; - void set_type(::Response_Type value); + ::Proto::Response_Type type() const; + void set_type(::Proto::Response_Type value); - // .Response_login response_login = 11; + // .Proto.Response_login response_login = 11; bool has_response_login() const; void clear_response_login(); static const int kResponseLoginFieldNumber = 11; - const ::Response_login& response_login() const; - ::Response_login* release_response_login(); - ::Response_login* mutable_response_login(); - void set_allocated_response_login(::Response_login* response_login); + const ::Proto::Response_login& response_login() const; + ::Proto::Response_login* release_response_login(); + ::Proto::Response_login* mutable_response_login(); + void set_allocated_response_login(::Proto::Response_login* response_login); - // .Response_sendmsg response_sendmsg = 13; + // .Proto.Response_sendmsg response_sendmsg = 13; bool has_response_sendmsg() const; void clear_response_sendmsg(); static const int kResponseSendmsgFieldNumber = 13; - const ::Response_sendmsg& response_sendmsg() const; - ::Response_sendmsg* release_response_sendmsg(); - ::Response_sendmsg* mutable_response_sendmsg(); - void set_allocated_response_sendmsg(::Response_sendmsg* response_sendmsg); + const ::Proto::Response_sendmsg& response_sendmsg() const; + ::Proto::Response_sendmsg* release_response_sendmsg(); + ::Proto::Response_sendmsg* mutable_response_sendmsg(); + void set_allocated_response_sendmsg(::Proto::Response_sendmsg* response_sendmsg); + + // .Proto.Message msg = 14; + bool has_msg() const; + void clear_msg(); + static const int kMsgFieldNumber = 14; + const ::Proto::Message& msg() const; + ::Proto::Message* release_msg(); + ::Proto::Message* mutable_msg(); + void set_allocated_msg(::Proto::Message* msg); void clear_pdu(); PduCase pdu_case() const; - // @@protoc_insertion_point(class_scope:Response) + // @@protoc_insertion_point(class_scope:Proto.Response) private: class HasBitSetters; void set_has_response_login(); void set_has_response_sendmsg(); + void set_has_msg(); inline bool has_pdu() const; inline void clear_has_pdu(); @@ -562,8 +583,9 @@ class Response : int type_; union PduUnion { PduUnion() {} - ::Response_login* response_login_; - ::Response_sendmsg* response_sendmsg_; + ::Proto::Response_login* response_login_; + ::Proto::Response_sendmsg* response_sendmsg_; + ::Proto::Message* msg_; } pdu_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1]; @@ -573,7 +595,7 @@ class Response : // ------------------------------------------------------------------- class Request_login : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Request_login) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Request_login) */ { public: Request_login(); virtual ~Request_login(); @@ -657,7 +679,7 @@ class Request_login : void InternalSwap(Request_login* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Request_login"; + return "Proto.Request_login"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -699,7 +721,7 @@ class Request_login : ::PROTOBUF_NAMESPACE_ID::uint64 id() const; void set_id(::PROTOBUF_NAMESPACE_ID::uint64 value); - // @@protoc_insertion_point(class_scope:Request_login) + // @@protoc_insertion_point(class_scope:Proto.Request_login) private: class HasBitSetters; @@ -712,7 +734,7 @@ class Request_login : // ------------------------------------------------------------------- class Response_login : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Response_login) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Response_login) */ { public: Response_login(); virtual ~Response_login(); @@ -796,7 +818,7 @@ class Response_login : void InternalSwap(Response_login* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Response_login"; + return "Proto.Response_login"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -856,13 +878,13 @@ class Response_login : // accessors ------------------------------------------------------- - // .Response_login.STAT stat = 1; + // .Proto.Response_login.STAT stat = 1; void clear_stat(); static const int kStatFieldNumber = 1; - ::Response_login_STAT stat() const; - void set_stat(::Response_login_STAT value); + ::Proto::Response_login_STAT stat() const; + void set_stat(::Proto::Response_login_STAT value); - // @@protoc_insertion_point(class_scope:Response_login) + // @@protoc_insertion_point(class_scope:Proto.Response_login) private: class HasBitSetters; @@ -874,7 +896,7 @@ class Response_login : // ------------------------------------------------------------------- class Request_logout : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Request_logout) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Request_logout) */ { public: Request_logout(); virtual ~Request_logout(); @@ -958,7 +980,7 @@ class Request_logout : void InternalSwap(Request_logout* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Request_logout"; + return "Proto.Request_logout"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -988,7 +1010,7 @@ class Request_logout : ::PROTOBUF_NAMESPACE_ID::uint64 id() const; void set_id(::PROTOBUF_NAMESPACE_ID::uint64 value); - // @@protoc_insertion_point(class_scope:Request_logout) + // @@protoc_insertion_point(class_scope:Proto.Request_logout) private: class HasBitSetters; @@ -1000,7 +1022,7 @@ class Request_logout : // ------------------------------------------------------------------- class Request_sendmsg : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Request_sendmsg) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Request_sendmsg) */ { public: Request_sendmsg(); virtual ~Request_sendmsg(); @@ -1084,7 +1106,7 @@ class Request_sendmsg : void InternalSwap(Request_sendmsg* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Request_sendmsg"; + return "Proto.Request_sendmsg"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -1138,7 +1160,7 @@ class Request_sendmsg : ::PROTOBUF_NAMESPACE_ID::uint32 msgid() const; void set_msgid(::PROTOBUF_NAMESPACE_ID::uint32 value); - // @@protoc_insertion_point(class_scope:Request_sendmsg) + // @@protoc_insertion_point(class_scope:Proto.Request_sendmsg) private: class HasBitSetters; @@ -1153,7 +1175,7 @@ class Request_sendmsg : // ------------------------------------------------------------------- class Response_sendmsg : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Response_sendmsg) */ { + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Response_sendmsg) */ { public: Response_sendmsg(); virtual ~Response_sendmsg(); @@ -1237,7 +1259,7 @@ class Response_sendmsg : void InternalSwap(Response_sendmsg* other); friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "Response_sendmsg"; + return "Proto.Response_sendmsg"; } private: inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { @@ -1273,7 +1295,7 @@ class Response_sendmsg : bool stat() const; void set_stat(bool value); - // @@protoc_insertion_point(class_scope:Response_sendmsg) + // @@protoc_insertion_point(class_scope:Proto.Response_sendmsg) private: class HasBitSetters; @@ -1283,6 +1305,145 @@ class Response_sendmsg : mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; friend struct ::TableStruct_IMProtocol_2eproto; }; +// ------------------------------------------------------------------- + +class Message : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Proto.Message) */ { + public: + Message(); + virtual ~Message(); + + Message(const Message& from); + Message(Message&& from) noexcept + : Message() { + *this = ::std::move(from); + } + + inline Message& operator=(const Message& from) { + CopyFrom(from); + return *this; + } + inline Message& operator=(Message&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const Message& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const Message* internal_default_instance() { + return reinterpret_cast( + &_Message_default_instance_); + } + static constexpr int kIndexInFileMessages = + 7; + + void Swap(Message* other); + friend void swap(Message& a, Message& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline Message* New() const final { + return CreateMaybeMessage(nullptr); + } + + Message* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const Message& from); + void MergeFrom(const Message& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + #else + bool MergePartialFromCodedStream( + ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final; + ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray( + ::PROTOBUF_NAMESPACE_ID::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(Message* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "Proto.Message"; + } + private: + inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_IMProtocol_2eproto); + return ::descriptor_table_IMProtocol_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // string msg = 3; + void clear_msg(); + static const int kMsgFieldNumber = 3; + const std::string& msg() const; + void set_msg(const std::string& value); + void set_msg(std::string&& value); + void set_msg(const char* value); + void set_msg(const char* value, size_t size); + std::string* mutable_msg(); + std::string* release_msg(); + void set_allocated_msg(std::string* msg); + + // uint64 fromID = 2; + void clear_fromid(); + static const int kFromIDFieldNumber = 2; + ::PROTOBUF_NAMESPACE_ID::uint64 fromid() const; + void set_fromid(::PROTOBUF_NAMESPACE_ID::uint64 value); + + // @@protoc_insertion_point(class_scope:Proto.Message) + private: + class HasBitSetters; + + ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr msg_; + ::PROTOBUF_NAMESPACE_ID::uint64 fromid_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_IMProtocol_2eproto; +}; // =================================================================== @@ -1294,21 +1455,21 @@ class Response_sendmsg : #endif // __GNUC__ // Request -// .Request.Type type = 1; +// .Proto.Request.Type type = 1; inline void Request::clear_type() { type_ = 0; } -inline ::Request_Type Request::type() const { - // @@protoc_insertion_point(field_get:Request.type) - return static_cast< ::Request_Type >(type_); +inline ::Proto::Request_Type Request::type() const { + // @@protoc_insertion_point(field_get:Proto.Request.type) + return static_cast< ::Proto::Request_Type >(type_); } -inline void Request::set_type(::Request_Type value) { +inline void Request::set_type(::Proto::Request_Type value) { type_ = value; - // @@protoc_insertion_point(field_set:Request.type) + // @@protoc_insertion_point(field_set:Proto.Request.type) } -// .Request_login request_login = 11; +// .Proto.Request_login request_login = 11; inline bool Request::has_request_login() const { return pdu_case() == kRequestLogin; } @@ -1321,35 +1482,35 @@ inline void Request::clear_request_login() { clear_has_pdu(); } } -inline ::Request_login* Request::release_request_login() { - // @@protoc_insertion_point(field_release:Request.request_login) +inline ::Proto::Request_login* Request::release_request_login() { + // @@protoc_insertion_point(field_release:Proto.Request.request_login) if (has_request_login()) { clear_has_pdu(); - ::Request_login* temp = pdu_.request_login_; + ::Proto::Request_login* temp = pdu_.request_login_; pdu_.request_login_ = nullptr; return temp; } else { return nullptr; } } -inline const ::Request_login& Request::request_login() const { - // @@protoc_insertion_point(field_get:Request.request_login) +inline const ::Proto::Request_login& Request::request_login() const { + // @@protoc_insertion_point(field_get:Proto.Request.request_login) return has_request_login() ? *pdu_.request_login_ - : *reinterpret_cast< ::Request_login*>(&::_Request_login_default_instance_); + : *reinterpret_cast< ::Proto::Request_login*>(&::Proto::_Request_login_default_instance_); } -inline ::Request_login* Request::mutable_request_login() { +inline ::Proto::Request_login* Request::mutable_request_login() { if (!has_request_login()) { clear_pdu(); set_has_request_login(); - pdu_.request_login_ = CreateMaybeMessage< ::Request_login >( + pdu_.request_login_ = CreateMaybeMessage< ::Proto::Request_login >( GetArenaNoVirtual()); } - // @@protoc_insertion_point(field_mutable:Request.request_login) + // @@protoc_insertion_point(field_mutable:Proto.Request.request_login) return pdu_.request_login_; } -// .Request_logout request_logout = 12; +// .Proto.Request_logout request_logout = 12; inline bool Request::has_request_logout() const { return pdu_case() == kRequestLogout; } @@ -1362,35 +1523,35 @@ inline void Request::clear_request_logout() { clear_has_pdu(); } } -inline ::Request_logout* Request::release_request_logout() { - // @@protoc_insertion_point(field_release:Request.request_logout) +inline ::Proto::Request_logout* Request::release_request_logout() { + // @@protoc_insertion_point(field_release:Proto.Request.request_logout) if (has_request_logout()) { clear_has_pdu(); - ::Request_logout* temp = pdu_.request_logout_; + ::Proto::Request_logout* temp = pdu_.request_logout_; pdu_.request_logout_ = nullptr; return temp; } else { return nullptr; } } -inline const ::Request_logout& Request::request_logout() const { - // @@protoc_insertion_point(field_get:Request.request_logout) +inline const ::Proto::Request_logout& Request::request_logout() const { + // @@protoc_insertion_point(field_get:Proto.Request.request_logout) return has_request_logout() ? *pdu_.request_logout_ - : *reinterpret_cast< ::Request_logout*>(&::_Request_logout_default_instance_); + : *reinterpret_cast< ::Proto::Request_logout*>(&::Proto::_Request_logout_default_instance_); } -inline ::Request_logout* Request::mutable_request_logout() { +inline ::Proto::Request_logout* Request::mutable_request_logout() { if (!has_request_logout()) { clear_pdu(); set_has_request_logout(); - pdu_.request_logout_ = CreateMaybeMessage< ::Request_logout >( + pdu_.request_logout_ = CreateMaybeMessage< ::Proto::Request_logout >( GetArenaNoVirtual()); } - // @@protoc_insertion_point(field_mutable:Request.request_logout) + // @@protoc_insertion_point(field_mutable:Proto.Request.request_logout) return pdu_.request_logout_; } -// .Request_sendmsg request_sendmsg = 13; +// .Proto.Request_sendmsg request_sendmsg = 13; inline bool Request::has_request_sendmsg() const { return pdu_case() == kRequestSendmsg; } @@ -1403,31 +1564,31 @@ inline void Request::clear_request_sendmsg() { clear_has_pdu(); } } -inline ::Request_sendmsg* Request::release_request_sendmsg() { - // @@protoc_insertion_point(field_release:Request.request_sendmsg) +inline ::Proto::Request_sendmsg* Request::release_request_sendmsg() { + // @@protoc_insertion_point(field_release:Proto.Request.request_sendmsg) if (has_request_sendmsg()) { clear_has_pdu(); - ::Request_sendmsg* temp = pdu_.request_sendmsg_; + ::Proto::Request_sendmsg* temp = pdu_.request_sendmsg_; pdu_.request_sendmsg_ = nullptr; return temp; } else { return nullptr; } } -inline const ::Request_sendmsg& Request::request_sendmsg() const { - // @@protoc_insertion_point(field_get:Request.request_sendmsg) +inline const ::Proto::Request_sendmsg& Request::request_sendmsg() const { + // @@protoc_insertion_point(field_get:Proto.Request.request_sendmsg) return has_request_sendmsg() ? *pdu_.request_sendmsg_ - : *reinterpret_cast< ::Request_sendmsg*>(&::_Request_sendmsg_default_instance_); + : *reinterpret_cast< ::Proto::Request_sendmsg*>(&::Proto::_Request_sendmsg_default_instance_); } -inline ::Request_sendmsg* Request::mutable_request_sendmsg() { +inline ::Proto::Request_sendmsg* Request::mutable_request_sendmsg() { if (!has_request_sendmsg()) { clear_pdu(); set_has_request_sendmsg(); - pdu_.request_sendmsg_ = CreateMaybeMessage< ::Request_sendmsg >( + pdu_.request_sendmsg_ = CreateMaybeMessage< ::Proto::Request_sendmsg >( GetArenaNoVirtual()); } - // @@protoc_insertion_point(field_mutable:Request.request_sendmsg) + // @@protoc_insertion_point(field_mutable:Proto.Request.request_sendmsg) return pdu_.request_sendmsg_; } @@ -1444,21 +1605,21 @@ inline Request::PduCase Request::pdu_case() const { // Response -// .Response.Type type = 1; +// .Proto.Response.Type type = 1; inline void Response::clear_type() { type_ = 0; } -inline ::Response_Type Response::type() const { - // @@protoc_insertion_point(field_get:Response.type) - return static_cast< ::Response_Type >(type_); +inline ::Proto::Response_Type Response::type() const { + // @@protoc_insertion_point(field_get:Proto.Response.type) + return static_cast< ::Proto::Response_Type >(type_); } -inline void Response::set_type(::Response_Type value) { +inline void Response::set_type(::Proto::Response_Type value) { type_ = value; - // @@protoc_insertion_point(field_set:Response.type) + // @@protoc_insertion_point(field_set:Proto.Response.type) } -// .Response_login response_login = 11; +// .Proto.Response_login response_login = 11; inline bool Response::has_response_login() const { return pdu_case() == kResponseLogin; } @@ -1471,35 +1632,35 @@ inline void Response::clear_response_login() { clear_has_pdu(); } } -inline ::Response_login* Response::release_response_login() { - // @@protoc_insertion_point(field_release:Response.response_login) +inline ::Proto::Response_login* Response::release_response_login() { + // @@protoc_insertion_point(field_release:Proto.Response.response_login) if (has_response_login()) { clear_has_pdu(); - ::Response_login* temp = pdu_.response_login_; + ::Proto::Response_login* temp = pdu_.response_login_; pdu_.response_login_ = nullptr; return temp; } else { return nullptr; } } -inline const ::Response_login& Response::response_login() const { - // @@protoc_insertion_point(field_get:Response.response_login) +inline const ::Proto::Response_login& Response::response_login() const { + // @@protoc_insertion_point(field_get:Proto.Response.response_login) return has_response_login() ? *pdu_.response_login_ - : *reinterpret_cast< ::Response_login*>(&::_Response_login_default_instance_); + : *reinterpret_cast< ::Proto::Response_login*>(&::Proto::_Response_login_default_instance_); } -inline ::Response_login* Response::mutable_response_login() { +inline ::Proto::Response_login* Response::mutable_response_login() { if (!has_response_login()) { clear_pdu(); set_has_response_login(); - pdu_.response_login_ = CreateMaybeMessage< ::Response_login >( + pdu_.response_login_ = CreateMaybeMessage< ::Proto::Response_login >( GetArenaNoVirtual()); } - // @@protoc_insertion_point(field_mutable:Response.response_login) + // @@protoc_insertion_point(field_mutable:Proto.Response.response_login) return pdu_.response_login_; } -// .Response_sendmsg response_sendmsg = 13; +// .Proto.Response_sendmsg response_sendmsg = 13; inline bool Response::has_response_sendmsg() const { return pdu_case() == kResponseSendmsg; } @@ -1512,34 +1673,75 @@ inline void Response::clear_response_sendmsg() { clear_has_pdu(); } } -inline ::Response_sendmsg* Response::release_response_sendmsg() { - // @@protoc_insertion_point(field_release:Response.response_sendmsg) +inline ::Proto::Response_sendmsg* Response::release_response_sendmsg() { + // @@protoc_insertion_point(field_release:Proto.Response.response_sendmsg) if (has_response_sendmsg()) { clear_has_pdu(); - ::Response_sendmsg* temp = pdu_.response_sendmsg_; + ::Proto::Response_sendmsg* temp = pdu_.response_sendmsg_; pdu_.response_sendmsg_ = nullptr; return temp; } else { return nullptr; } } -inline const ::Response_sendmsg& Response::response_sendmsg() const { - // @@protoc_insertion_point(field_get:Response.response_sendmsg) +inline const ::Proto::Response_sendmsg& Response::response_sendmsg() const { + // @@protoc_insertion_point(field_get:Proto.Response.response_sendmsg) return has_response_sendmsg() ? *pdu_.response_sendmsg_ - : *reinterpret_cast< ::Response_sendmsg*>(&::_Response_sendmsg_default_instance_); + : *reinterpret_cast< ::Proto::Response_sendmsg*>(&::Proto::_Response_sendmsg_default_instance_); } -inline ::Response_sendmsg* Response::mutable_response_sendmsg() { +inline ::Proto::Response_sendmsg* Response::mutable_response_sendmsg() { if (!has_response_sendmsg()) { clear_pdu(); set_has_response_sendmsg(); - pdu_.response_sendmsg_ = CreateMaybeMessage< ::Response_sendmsg >( + pdu_.response_sendmsg_ = CreateMaybeMessage< ::Proto::Response_sendmsg >( GetArenaNoVirtual()); } - // @@protoc_insertion_point(field_mutable:Response.response_sendmsg) + // @@protoc_insertion_point(field_mutable:Proto.Response.response_sendmsg) return pdu_.response_sendmsg_; } +// .Proto.Message msg = 14; +inline bool Response::has_msg() const { + return pdu_case() == kMsg; +} +inline void Response::set_has_msg() { + _oneof_case_[0] = kMsg; +} +inline void Response::clear_msg() { + if (has_msg()) { + delete pdu_.msg_; + clear_has_pdu(); + } +} +inline ::Proto::Message* Response::release_msg() { + // @@protoc_insertion_point(field_release:Proto.Response.msg) + if (has_msg()) { + clear_has_pdu(); + ::Proto::Message* temp = pdu_.msg_; + pdu_.msg_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::Proto::Message& Response::msg() const { + // @@protoc_insertion_point(field_get:Proto.Response.msg) + return has_msg() + ? *pdu_.msg_ + : *reinterpret_cast< ::Proto::Message*>(&::Proto::_Message_default_instance_); +} +inline ::Proto::Message* Response::mutable_msg() { + if (!has_msg()) { + clear_pdu(); + set_has_msg(); + pdu_.msg_ = CreateMaybeMessage< ::Proto::Message >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:Proto.Response.msg) + return pdu_.msg_; +} + inline bool Response::has_pdu() const { return pdu_case() != PDU_NOT_SET; } @@ -1558,13 +1760,13 @@ inline void Request_login::clear_id() { id_ = PROTOBUF_ULONGLONG(0); } inline ::PROTOBUF_NAMESPACE_ID::uint64 Request_login::id() const { - // @@protoc_insertion_point(field_get:Request_login.ID) + // @@protoc_insertion_point(field_get:Proto.Request_login.ID) return id_; } inline void Request_login::set_id(::PROTOBUF_NAMESPACE_ID::uint64 value) { id_ = value; - // @@protoc_insertion_point(field_set:Request_login.ID) + // @@protoc_insertion_point(field_set:Proto.Request_login.ID) } // string password = 2; @@ -1572,39 +1774,39 @@ inline void Request_login::clear_password() { password_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); } inline const std::string& Request_login::password() const { - // @@protoc_insertion_point(field_get:Request_login.password) + // @@protoc_insertion_point(field_get:Proto.Request_login.password) return password_.GetNoArena(); } inline void Request_login::set_password(const std::string& value) { password_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:Request_login.password) + // @@protoc_insertion_point(field_set:Proto.Request_login.password) } inline void Request_login::set_password(std::string&& value) { password_.SetNoArena( &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:Request_login.password) + // @@protoc_insertion_point(field_set_rvalue:Proto.Request_login.password) } inline void Request_login::set_password(const char* value) { GOOGLE_DCHECK(value != nullptr); password_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:Request_login.password) + // @@protoc_insertion_point(field_set_char:Proto.Request_login.password) } inline void Request_login::set_password(const char* value, size_t size) { password_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:Request_login.password) + // @@protoc_insertion_point(field_set_pointer:Proto.Request_login.password) } inline std::string* Request_login::mutable_password() { - // @@protoc_insertion_point(field_mutable:Request_login.password) + // @@protoc_insertion_point(field_mutable:Proto.Request_login.password) return password_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); } inline std::string* Request_login::release_password() { - // @@protoc_insertion_point(field_release:Request_login.password) + // @@protoc_insertion_point(field_release:Proto.Request_login.password) return password_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); } @@ -1615,25 +1817,25 @@ inline void Request_login::set_allocated_password(std::string* password) { } password_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), password); - // @@protoc_insertion_point(field_set_allocated:Request_login.password) + // @@protoc_insertion_point(field_set_allocated:Proto.Request_login.password) } // ------------------------------------------------------------------- // Response_login -// .Response_login.STAT stat = 1; +// .Proto.Response_login.STAT stat = 1; inline void Response_login::clear_stat() { stat_ = 0; } -inline ::Response_login_STAT Response_login::stat() const { - // @@protoc_insertion_point(field_get:Response_login.stat) - return static_cast< ::Response_login_STAT >(stat_); +inline ::Proto::Response_login_STAT Response_login::stat() const { + // @@protoc_insertion_point(field_get:Proto.Response_login.stat) + return static_cast< ::Proto::Response_login_STAT >(stat_); } -inline void Response_login::set_stat(::Response_login_STAT value) { +inline void Response_login::set_stat(::Proto::Response_login_STAT value) { stat_ = value; - // @@protoc_insertion_point(field_set:Response_login.stat) + // @@protoc_insertion_point(field_set:Proto.Response_login.stat) } // ------------------------------------------------------------------- @@ -1645,13 +1847,13 @@ inline void Request_logout::clear_id() { id_ = PROTOBUF_ULONGLONG(0); } inline ::PROTOBUF_NAMESPACE_ID::uint64 Request_logout::id() const { - // @@protoc_insertion_point(field_get:Request_logout.ID) + // @@protoc_insertion_point(field_get:Proto.Request_logout.ID) return id_; } inline void Request_logout::set_id(::PROTOBUF_NAMESPACE_ID::uint64 value) { id_ = value; - // @@protoc_insertion_point(field_set:Request_logout.ID) + // @@protoc_insertion_point(field_set:Proto.Request_logout.ID) } // ------------------------------------------------------------------- @@ -1663,13 +1865,13 @@ inline void Request_sendmsg::clear_msgid() { msgid_ = 0u; } inline ::PROTOBUF_NAMESPACE_ID::uint32 Request_sendmsg::msgid() const { - // @@protoc_insertion_point(field_get:Request_sendmsg.msgID) + // @@protoc_insertion_point(field_get:Proto.Request_sendmsg.msgID) return msgid_; } inline void Request_sendmsg::set_msgid(::PROTOBUF_NAMESPACE_ID::uint32 value) { msgid_ = value; - // @@protoc_insertion_point(field_set:Request_sendmsg.msgID) + // @@protoc_insertion_point(field_set:Proto.Request_sendmsg.msgID) } // uint64 ID = 2; @@ -1677,13 +1879,13 @@ inline void Request_sendmsg::clear_id() { id_ = PROTOBUF_ULONGLONG(0); } inline ::PROTOBUF_NAMESPACE_ID::uint64 Request_sendmsg::id() const { - // @@protoc_insertion_point(field_get:Request_sendmsg.ID) + // @@protoc_insertion_point(field_get:Proto.Request_sendmsg.ID) return id_; } inline void Request_sendmsg::set_id(::PROTOBUF_NAMESPACE_ID::uint64 value) { id_ = value; - // @@protoc_insertion_point(field_set:Request_sendmsg.ID) + // @@protoc_insertion_point(field_set:Proto.Request_sendmsg.ID) } // uint64 objID = 3; @@ -1691,13 +1893,13 @@ inline void Request_sendmsg::clear_objid() { objid_ = PROTOBUF_ULONGLONG(0); } inline ::PROTOBUF_NAMESPACE_ID::uint64 Request_sendmsg::objid() const { - // @@protoc_insertion_point(field_get:Request_sendmsg.objID) + // @@protoc_insertion_point(field_get:Proto.Request_sendmsg.objID) return objid_; } inline void Request_sendmsg::set_objid(::PROTOBUF_NAMESPACE_ID::uint64 value) { objid_ = value; - // @@protoc_insertion_point(field_set:Request_sendmsg.objID) + // @@protoc_insertion_point(field_set:Proto.Request_sendmsg.objID) } // string msg = 4; @@ -1705,39 +1907,39 @@ inline void Request_sendmsg::clear_msg() { msg_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); } inline const std::string& Request_sendmsg::msg() const { - // @@protoc_insertion_point(field_get:Request_sendmsg.msg) + // @@protoc_insertion_point(field_get:Proto.Request_sendmsg.msg) return msg_.GetNoArena(); } inline void Request_sendmsg::set_msg(const std::string& value) { msg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:Request_sendmsg.msg) + // @@protoc_insertion_point(field_set:Proto.Request_sendmsg.msg) } inline void Request_sendmsg::set_msg(std::string&& value) { msg_.SetNoArena( &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); - // @@protoc_insertion_point(field_set_rvalue:Request_sendmsg.msg) + // @@protoc_insertion_point(field_set_rvalue:Proto.Request_sendmsg.msg) } inline void Request_sendmsg::set_msg(const char* value) { GOOGLE_DCHECK(value != nullptr); msg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:Request_sendmsg.msg) + // @@protoc_insertion_point(field_set_char:Proto.Request_sendmsg.msg) } inline void Request_sendmsg::set_msg(const char* value, size_t size) { msg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:Request_sendmsg.msg) + // @@protoc_insertion_point(field_set_pointer:Proto.Request_sendmsg.msg) } inline std::string* Request_sendmsg::mutable_msg() { - // @@protoc_insertion_point(field_mutable:Request_sendmsg.msg) + // @@protoc_insertion_point(field_mutable:Proto.Request_sendmsg.msg) return msg_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); } inline std::string* Request_sendmsg::release_msg() { - // @@protoc_insertion_point(field_release:Request_sendmsg.msg) + // @@protoc_insertion_point(field_release:Proto.Request_sendmsg.msg) return msg_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); } @@ -1748,7 +1950,7 @@ inline void Request_sendmsg::set_allocated_msg(std::string* msg) { } msg_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), msg); - // @@protoc_insertion_point(field_set_allocated:Request_sendmsg.msg) + // @@protoc_insertion_point(field_set_allocated:Proto.Request_sendmsg.msg) } // ------------------------------------------------------------------- @@ -1760,13 +1962,13 @@ inline void Response_sendmsg::clear_msgid() { msgid_ = 0u; } inline ::PROTOBUF_NAMESPACE_ID::uint32 Response_sendmsg::msgid() const { - // @@protoc_insertion_point(field_get:Response_sendmsg.msgID) + // @@protoc_insertion_point(field_get:Proto.Response_sendmsg.msgID) return msgid_; } inline void Response_sendmsg::set_msgid(::PROTOBUF_NAMESPACE_ID::uint32 value) { msgid_ = value; - // @@protoc_insertion_point(field_set:Response_sendmsg.msgID) + // @@protoc_insertion_point(field_set:Proto.Response_sendmsg.msgID) } // bool stat = 2; @@ -1774,13 +1976,82 @@ inline void Response_sendmsg::clear_stat() { stat_ = false; } inline bool Response_sendmsg::stat() const { - // @@protoc_insertion_point(field_get:Response_sendmsg.stat) + // @@protoc_insertion_point(field_get:Proto.Response_sendmsg.stat) return stat_; } inline void Response_sendmsg::set_stat(bool value) { stat_ = value; - // @@protoc_insertion_point(field_set:Response_sendmsg.stat) + // @@protoc_insertion_point(field_set:Proto.Response_sendmsg.stat) +} + +// ------------------------------------------------------------------- + +// Message + +// uint64 fromID = 2; +inline void Message::clear_fromid() { + fromid_ = PROTOBUF_ULONGLONG(0); +} +inline ::PROTOBUF_NAMESPACE_ID::uint64 Message::fromid() const { + // @@protoc_insertion_point(field_get:Proto.Message.fromID) + return fromid_; +} +inline void Message::set_fromid(::PROTOBUF_NAMESPACE_ID::uint64 value) { + + fromid_ = value; + // @@protoc_insertion_point(field_set:Proto.Message.fromID) +} + +// string msg = 3; +inline void Message::clear_msg() { + msg_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline const std::string& Message::msg() const { + // @@protoc_insertion_point(field_get:Proto.Message.msg) + return msg_.GetNoArena(); +} +inline void Message::set_msg(const std::string& value) { + + msg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:Proto.Message.msg) +} +inline void Message::set_msg(std::string&& value) { + + msg_.SetNoArena( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:Proto.Message.msg) +} +inline void Message::set_msg(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + msg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:Proto.Message.msg) +} +inline void Message::set_msg(const char* value, size_t size) { + + msg_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:Proto.Message.msg) +} +inline std::string* Message::mutable_msg() { + + // @@protoc_insertion_point(field_mutable:Proto.Message.msg) + return msg_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline std::string* Message::release_msg() { + // @@protoc_insertion_point(field_release:Proto.Message.msg) + + return msg_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +} +inline void Message::set_allocated_msg(std::string* msg) { + if (msg != nullptr) { + + } else { + + } + msg_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), msg); + // @@protoc_insertion_point(field_set_allocated:Proto.Message.msg) } #ifdef __GNUC__ @@ -1798,26 +2069,29 @@ inline void Response_sendmsg::set_stat(bool value) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) +} // namespace Proto PROTOBUF_NAMESPACE_OPEN -template <> struct is_proto_enum< ::Request_Type> : ::std::true_type {}; +template <> struct is_proto_enum< ::Proto::Request_Type> : ::std::true_type {}; template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Request_Type>() { - return ::Request_Type_descriptor(); +inline const EnumDescriptor* GetEnumDescriptor< ::Proto::Request_Type>() { + return ::Proto::Request_Type_descriptor(); } -template <> struct is_proto_enum< ::Response_Type> : ::std::true_type {}; +template <> struct is_proto_enum< ::Proto::Response_Type> : ::std::true_type {}; template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Response_Type>() { - return ::Response_Type_descriptor(); +inline const EnumDescriptor* GetEnumDescriptor< ::Proto::Response_Type>() { + return ::Proto::Response_Type_descriptor(); } -template <> struct is_proto_enum< ::Response_login_STAT> : ::std::true_type {}; +template <> struct is_proto_enum< ::Proto::Response_login_STAT> : ::std::true_type {}; template <> -inline const EnumDescriptor* GetEnumDescriptor< ::Response_login_STAT>() { - return ::Response_login_STAT_descriptor(); +inline const EnumDescriptor* GetEnumDescriptor< ::Proto::Response_login_STAT>() { + return ::Proto::Response_login_STAT_descriptor(); } PROTOBUF_NAMESPACE_CLOSE diff --git a/IM/User.h b/IM/User.h index 1075da4..d23fe0a 100644 --- a/IM/User.h +++ b/IM/User.h @@ -7,13 +7,13 @@ #include #include -#include "IM/IMProtocol.h" +#include "IM/IMProtocol.pb.h" class User { public: - typedef unsigned int Account; + typedef uint64_t Account; User (Account id = 0) : id(id){ } virtual ~User () { } diff --git a/IM/login_server.cpp b/IM/login_server.cpp deleted file mode 100644 index 6b5b070..0000000 --- a/IM/login_server.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include "login_server.h" -#include "dao/UserDao.h" - -ConnMap* ConnMap::object_p = new ConnMap(); -//ConnMap* ConnMap::object_p = nullptr; - - - -std::shared_ptr ConnMap::find(int fd) { - pthread_mutex_lock(&m_mutex); - auto it = m_map.find(fd); - pthread_mutex_unlock(&m_mutex); - if(it == m_map.end()) { - return nullptr; - } else { - return it->second; - } -} -std::shared_ptr ConnMap::add(std::pair> p) { - auto res = find(p.first); - ::pthread_mutex_lock(&m_mutex); - if(res == nullptr) - { - m_map.insert(p); - res = p.second; - } - ::pthread_mutex_unlock(&m_mutex); - return res; -} - -bool ConnMap::del(std::pair> p) { - auto it = m_map.find(p.first); - pthread_mutex_lock(&m_mutex); - if(it == m_map.end()) - { - pthread_mutex_unlock(&m_mutex); - return false; - } - else { - m_map.erase(it); - } - pthread_mutex_unlock(&m_mutex); - return true; -} - -void login_server(std::shared_ptr pdu, std::shared_ptr p_con) { - - User user; - user.setId(pdu->getUserId()); - user.setPassword(pdu->getPassword()); - - - auto userConn = ConnMap::findConnecterById(user.getId()); - if(userConn != nullptr) { - std::cout << "用户已在线" << std::endl; - return ; - } - - User* dbUser = UserDao::Obtain(user.getId()); - - //账号不存在 - if(dbUser == nullptr) { - //std::cout << "账号不存在" << std::endl; - p_con->send("账号不存在"); - return ; - } - //登录成功 - if(user.getPassword() == dbUser->getPassword()) { - - //std::cout << "登录成功" << std::endl; - p_con->send("登录成功"); - ConnMap::addAccount(std::make_pair(user.getId(), p_con)); - - } else { //密码错误 - - //std::cout << "密码错误" << std::endl; - p_con->send("密码错误"); - } - - /* TODO: - * 从数据库获取user信息 - * 对比密码 - * 登录成功则插入sockmap中 - * 否则返回错误信息 - * <08-05-19, sky> */ -} - - - - - - - - diff --git a/IM/login_server.h b/IM/login_server.h deleted file mode 100644 index 99d340d..0000000 --- a/IM/login_server.h +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include -#include - -#include "User.h" -#include "reactor/Connecter.h" -#include "IM/IMProtocol.h" - - - -class ConnMap -{ -public: - virtual ~ConnMap () { - ::pthread_mutex_destroy(&m_mutex); - } - - //static void init() { - // object_p = new SockMap(); - //} - - //根据用户ID返回Connecter - //若用户不在线则返回-1 - static std::shared_ptr findConnecterById(int id) { - if(object_p == nullptr) { - std::cout << "object_p is nullptr" << std::endl; - } - return object_p->find(id); - } - - //添加一个在线用户 - //若已经在线返回false - static std::shared_ptr addAccount(std::pair> p) { - if(object_p == nullptr) { - std::cout << "object_p is nullptr" << std::endl; - } - return object_p->add(p); - } - - //删除一个在线用户 - //若用户不在线, 返回false - static bool delAccount(std::pair> p) { - if(object_p == nullptr) { - std::cout << "object_p is nullptr" << std::endl; - } - return object_p->del(p); - } - std::shared_ptr find(int fd); - std::shared_ptr add(std::pair> p); - bool del(std::pair> p); - -private: - ConnMap () { - ::pthread_mutex_init(&m_mutex, nullptr); - } - static ConnMap* object_p; - std::map> m_map; - pthread_mutex_t m_mutex; - -}; - -void login_server(std::shared_ptr pdu, std::shared_ptr con); diff --git a/IM/IMProtocol.proto b/IMProtocol.proto similarity index 85% rename from IM/IMProtocol.proto rename to IMProtocol.proto index ce94842..d626512 100644 --- a/IM/IMProtocol.proto +++ b/IMProtocol.proto @@ -1,5 +1,7 @@ syntax = "proto3"; +package Proto; + // message Request { @@ -25,6 +27,7 @@ message Response { LOGIN = 0; LOGOUT = 1; SENDMSG = 2; + MESSAGE = 3; } Type type = 1; @@ -32,6 +35,8 @@ message Response { Response_login response_login = 11; //Response_logout response_logout = 12; Response_sendmsg response_sendmsg = 13; + //其他账号发送的消息 + Message msg = 14; } } @@ -90,3 +95,14 @@ message Response_sendmsg { // Next available id: 1 } +// 消息推送 +message Message { + // 消息类型 + //enum MsgType { + + //} + + //MsgType type =1; + uint64 fromID =2; + string msg =3; +} diff --git a/reactor/Connecter.cpp b/reactor/Connecter.cpp index ca57c29..300cfb4 100644 --- a/reactor/Connecter.cpp +++ b/reactor/Connecter.cpp @@ -21,11 +21,10 @@ void Buffer::backPointer(size_t len) { int Connecter::recive(char* buf, size_t length) { - ::pthread_mutex_lock(&mutex); + std::lock_guard lock(m_mutex); if(readable == false) { - ::pthread_mutex_unlock(&mutex); return 0; } @@ -41,7 +40,6 @@ int Connecter::recive(char* buf, size_t length) { if(length > BUFSIZ) { - pthread_mutex_unlock(&mutex); return -1; } @@ -50,7 +48,6 @@ int Connecter::recive(char* buf, size_t length) { ::strncpy(buf, readBuf, length); ::strncpy(readBuf, readBuf+length, readBufend-length); readBufend -= length; - pthread_mutex_unlock(&mutex); return length; } @@ -63,14 +60,12 @@ int Connecter::recive(char* buf, size_t length) { //std::cout << "断开连接" << std::endl; //IM::IMReactor::optEventListen(Event(EPOLL_CTL_DEL, EPOLLIN, sockfd)); closeThisConnecter(); - pthread_mutex_unlock(&mutex); return 0; } if(re == -1) { //没有信息可以读 if(errno == EAGAIN) { - pthread_mutex_unlock(&mutex); return 0; } else { Log::log(Log::ERROR, "read error in Connecter recive"); @@ -85,76 +80,59 @@ int Connecter::recive(char* buf, size_t length) { ::strncpy(buf, readBuf, length); ::strncpy(readBuf, readBuf+length, readBufend-length); readBufend -= length; - pthread_mutex_unlock(&mutex); return length; } - - pthread_mutex_unlock(&mutex); //不足最小长度 return 0; } -bool Connecter::startTryRecive(size_t minLength, size_t maxLength) { - if(false == isConnected()) { - return false; - } +int Connecter::send(const char* msg, size_t len) { - ::pthread_mutex_lock(&mutex); + if(false == isConnected()) return -1; - if(TryReciving == true) { - ::pthread_mutex_unlock(&mutex); - throw TryReciveException("TryReciving has started"); - } + std::lock_guard lock(m_mutex); + int re = 0; - TryReciving = true; - readBufbeg = 0; - if(maxLength >= readBufMaxLenth) { - if(nullptr == ::realloc(readBuf, maxLength+10)) { - char msg[200]; - ::sprintf(msg, "realloc failed in tryRecive: maxLength = %d", static_cast(maxLength)); - - Log::log(Log::WARNING, msg); - return false; + if(writeBufHaveData) { + writeBuf.push(Buffer(msg, len)); + } else { + int re = write(sockfd, msg, len); + if(re == -1) { + Log::log(Log::ERROR, "write error"); } - } - return true; -} -int Connecter::tryRecive(char* buf, size_t length) { - - if(TryReciving == false) { - throw TryReciveException("TryReciving has not started"); + if(static_cast(re) < len) { + writeBuf.push(Buffer(msg+re, len-re)); + writeBufHaveData = true; + IMReactor::optEventListen(Event(EPOLL_CTL_ADD, EPOLLOUT, sockfd)); + } } - //当前已经加锁,不需要调用isConnected方法, 也不能调用, 否则死锁 - if(true != readable) { - return -1; - } + return re; +} - if(readBufend - readBufbeg >= length) { - ::memcpy(buf, readBuf+readBufbeg, length); - readBufbeg += length; - return length; +void Connecter::readToBuffer() { + if(readBufend - readBufbeg < readBufMaxLenth/2 && readBufbeg > readBufbeg/3) { + memcpy(readBuf, readBuf+readBufbeg, readBufend-readBufbeg); } - int re = ::read(sockfd, readBuf+readBufend, readBufMaxLenth-readBufend); if(re == 0) { /* TODO: * 从mp中删除该连接 - * <26-04-19, sky> */ - //std::cout << "close" << std::endl; - closeThisConnecter(); - return 0; + * <26-04-19, yourname> */ //std::cout << "断开连接" << std::endl; + //IM::IMReactor::optEventListen(Event(EPOLL_CTL_DEL, EPOLLIN, sockfd)); + closeThisConnecter(); + return ; } - else if(re == -1) { + if(re == -1) { //没有信息可以读 if(errno == EAGAIN) { - return 0; + return ; } else { Log::log(Log::ERROR, "read error in Connecter recive"); } @@ -162,64 +140,9 @@ int Connecter::tryRecive(char* buf, size_t length) { } else { readBufend += re; } - - //缓冲区数据加上读到的数据足够length - if(readBufend-readBufbeg >= length) { - ::memcpy(buf, readBuf+readBufbeg, length); - readBufbeg += length; - return length; - } - return 0; } -bool Connecter::commit_tryRecive() { - - if(TryReciving == false) { - throw TryReciveException("TryReciving has not started"); - } - TryReciving = false; - size_t len = readBufend - readBufbeg; - ::strncpy(readBuf, readBuf+readBufbeg, len); - readBufend -= readBufbeg; - readBufbeg = 0; - ::pthread_mutex_unlock(&mutex); - return true; -} -bool Connecter::rollback_tryRecive() { - if(TryReciving == false) { - throw TryReciveException("TryReciving has not started"); - } - TryReciving = false; - readBufbeg = 0; - ::pthread_mutex_unlock(&mutex); - return true; -} - - -int Connecter::send(const char* msg) { - - if(false == isConnected()) return -1; - - ::pthread_mutex_lock(&mutex); - int re = 0; - - if(writeBufHaveData) { - writeBuf.push(Buffer(msg)); - } else { - int len = strlen(msg); - int re = write(sockfd, msg, len); - if(re < len) { - writeBuf.push(Buffer(msg+re)); - writeBufHaveData = true; - IMReactor::optEventListen(Event(EPOLL_CTL_ADD, EPOLLOUT, sockfd)); - } - } - - pthread_mutex_unlock(&mutex); - return re; -} - void Connecter::closeThisConnecter() { char buf[100]; @@ -229,19 +152,6 @@ void Connecter::closeThisConnecter() { readable = false; writeable = false; IMReactor::optEventListen(Event(EPOLL_CTL_DEL, EPOLLIN, sockfd)); - -// if(readable) { -// readable = false; -// IMReactor::optEventListen(Event(EPOLL_CTL_DEL, EPOLLIN, sockfd)); -// } -// if(writeable || writeBufHaveData) { -// writeable = false; -// writeBufHaveData = false; -// IMReactor::optEventListen(Event(EPOLL_CTL_DEL, EPOLLOUT, sockfd)); -// while(!writeBuf.empty()) { -// writeBuf.pop(); -// } -// } } return ; } @@ -274,3 +184,137 @@ bool Connecter::onWriteable() { } return true; } + + + +bool IMConn::send(Proto::Response *response) { + if(!response->IsInitialized()) { + return false; + } + + int len = response->ByteSize(); + char buf[BUFSIZ]; + memcpy(buf, &len, sizeof(len)); + int ok = response->SerializeToArray(buf+sizeof(len), BUFSIZ-sizeof(len)); + if(ok) { + Connecter::send(buf, len+sizeof(len)); + } + return ok; +} + + +Proto::Request* IMConn::recive() { + + std::cout << "IMConn recive" << std::endl; + if(readable == false) + { + return nullptr; + } + + int len; + + if(readBufend - readBufbeg < sizeof(len) ) { + readToBuffer(); + } + if(readBufend - readBufbeg < sizeof(len) ) { + return nullptr; + } + len = *(int*)(readBuf+readBufbeg); + + if(readBufend - readBufbeg < len) { + if(readBufMaxLenth - readBufbeg < len) { + Log::log(Log::ERROR, "Connecter readBuffer less than Protocol"); + return nullptr; + } + readToBuffer(); + } + if(readBufend - readBufbeg < len) { + return nullptr; + } + + Proto::Request *request = new Proto::Request(); + bool ok = request->ParseFromArray(readBuf+readBufbeg+sizeof(len), len); + if(!ok) { + delete request; + return nullptr; + } + readBufbeg += sizeof(len) + len; + //不足最小长度 + return request; + +} + +ClientConn::ClientConn(const char* IP, const uint16_t port): Connecter(0) { + sockaddr_in addr; + sockUtil::setNetClientAddr(&addr,IP, port); + sockfd = sockUtil::connectToAddr(&addr); + sockUtil::setNoBlock(sockfd); + if(sockfd < 0) { + readable = false; + writeable = false; + } + else { + readable = true; + writeable = true; + } +} + +bool send(Proto::Request* request); +Proto::Response* recive(); + + +bool ClientConn::send(Proto::Request *request) { + if(!request->IsInitialized()) { + return false; + } + + int len = request->ByteSize(); + char buf[BUFSIZ]; + memcpy(buf, &len, sizeof(len)); + std::cout << len << std::endl; + int ok = request->SerializeToArray(buf+sizeof(len), BUFSIZ-sizeof(len)); + if(ok) { + Connecter::send(buf, len+sizeof(len)); + } + return ok; +} + + +Proto::Response* ClientConn::recive() { + + if(readable == false) + { + return 0; + } + + int len; + if(readBufend - readBufbeg < sizeof(int) ) { + readToBuffer(); + } + + if(readBufend - readBufbeg < sizeof(int) ) return nullptr; + + len = *(int*)(readBuf+readBufbeg); + if(len < 0) { + Log::log(Log::ERROR, "协议错误, len小于0"); + return nullptr; + } + if(readBufend - readBufbeg < static_cast(len)) { + readToBuffer(); + } + + if(readBufend - readBufbeg < static_cast(len)) { return nullptr; } + + Proto::Response *response = new Proto::Response(); + bool ok = response->ParseFromArray(readBuf+readBufbeg+sizeof(int), len); + if(!ok) { + delete response; + return nullptr; + } + readBufbeg += sizeof(len) + len; + + //不足最小长度 + return response; + +} + diff --git a/reactor/Connecter.h b/reactor/Connecter.h index f6652d0..a7d4fe4 100644 --- a/reactor/Connecter.h +++ b/reactor/Connecter.h @@ -11,6 +11,7 @@ #include "reactor/Addresser.h" #include "util/sockUtil.h" +#include "IM/IMProtocol.pb.h" namespace IM { @@ -18,18 +19,17 @@ namespace IM { /* 数据缓冲区, 可以暂存数据 */ - class Buffer - { + class Buffer {/*{{{*/ public: Buffer () : _begin(0), buf(nullptr), _end(0) {} - Buffer (const char* str) { - _end = strlen(str); + Buffer (const char* str, size_t len) { + _end = len; if(_end > MSGMAXSIZE) { //log(error); buf = nullptr; } else { buf = new char[MSGMAXSIZE]; - ::strncpy(buf, str, _end); + ::memcpy(buf, str, _end); } } ~Buffer () { @@ -52,10 +52,9 @@ namespace IM { size_t _begin; char * buf; size_t _end; - }; + };/*}}}*/ - class TryReciveException : public std::exception - { + class TryReciveException : public std::exception {/*{{{*/ public: TryReciveException (const char* msg) :msg(msg) {} virtual ~TryReciveException () {} @@ -66,19 +65,16 @@ namespace IM { private: const char* msg; - }; + };/*}}}*/ - class Connecter - { + class Connecter { public: Connecter(int _sockfd) : sockfd(_sockfd), readable(true), writeable(true), - TryReciving(false), readBufbeg(0), - readBufend(0), writeBufHaveData(false), readBufMaxLenth(BUFSIZ*2) + readBufbeg(0), readBufend(0), writeBufHaveData(false), readBufMaxLenth(BUFSIZ*2) { readBuf = (char*)::malloc(BUFSIZ*2); - ::pthread_mutex_init(&mutex, nullptr); } virtual ~Connecter() { @@ -87,25 +83,12 @@ namespace IM { } - //virtual void closeRead(); - - //virtual void closeWrite(); - //读取数据 + virtual int send(const char* msg, size_t len); virtual int recive(char* buf, size_t minLength = 0); - /* 尝试读取 - * 若数据不符合要求,通过rollback_tryRecive()使数据回到缓冲区,变为未读状态 - * 若符合要求,调用commit_tryRecive()提交已读取内容 - */ - virtual bool startTryRecive(size_t minLength = 0, size_t maxLength = BUFSIZ); - virtual int tryRecive(char* buf, size_t length = 0); - //确认读取内容 - virtual bool commit_tryRecive(); - //回滚数据,使tryRecive读取的数据回到缓冲区中 - virtual bool rollback_tryRecive(); - //发送数据 - virtual int send(const char* msg); + virtual void readToBuffer(); + virtual void closeThisConnecter(); //virtual void deleteThisConnecter(); @@ -113,22 +96,20 @@ namespace IM { virtual bool onWriteable(); virtual bool isConnected() { - ::pthread_mutex_lock(&mutex); + std::lock_guard lock(m_mutex); bool stat = writeable | readable; - ::pthread_mutex_unlock(&mutex); return stat; } protected: + //正在连接的socket int sockfd; - //是否是一个可用的连接 - //bool connected; bool readable; bool writeable; //是否已经startRevive - bool TryReciving; + //bool TryReciving; /* 读缓冲的开始位置,一般为0 * 当开始了tryRecive之后才会变动 @@ -145,9 +126,34 @@ namespace IM { //写缓冲 std::queue writeBuf; //锁 - ::pthread_mutex_t mutex; + //::pthread_mutex_t mutex; + std::mutex m_mutex; + }; + + + + + class IMConn : public Connecter + { + public: + IMConn (int sockfd) : Connecter(sockfd) { } + //IMConn (const char* IP, const uint16_t port); + virtual ~IMConn () {} + + bool send(Proto::Response* response); + Proto::Request* recive(); }; + class ClientConn : public Connecter + { + public: + ClientConn (int sockfd) : Connecter(sockfd) { } + ClientConn (const char* IP, const uint16_t port); + virtual ~ClientConn () {} + + bool send(Proto::Request* request); + Proto::Response* recive(); + }; } #endif /* end of include guard: CONNECTER_H_TCUVAPLY */ diff --git a/reactor/IMReactor.cpp b/reactor/IMReactor.cpp index b5d1e8a..b0b3a28 100644 --- a/reactor/IMReactor.cpp +++ b/reactor/IMReactor.cpp @@ -229,7 +229,7 @@ void IMReactor::loop() {/*{{{*/ event.data.fd = eve.getScoket(); epoll_ctl(epoll_root, eve.getOpt(), eve.getScoket(), &event); if(eve.getOpt() == EPOLL_CTL_ADD) - sockToConn[eve.getScoket()] = std::make_shared (eve.getScoket()); + sockToConn[eve.getScoket()] = std::make_shared (eve.getScoket()); else if(eve.getOpt() == EPOLL_CTL_DEL) sockToConn[eve.getScoket()].reset(); @@ -268,7 +268,7 @@ void IMReactor::loop() {/*{{{*/ int nfd = sockUtil::acceptNewConnect(sock_listen); sockUtil::setNoBlock(nfd); if(nfd == -1) break; - //std::cout << "new sockfd = " << nfd << std::endl; + std::cout << "new sockfd = " << nfd << std::endl; IMReactor::optEventListen(Event(EPOLL_CTL_ADD, EPOLLIN, nfd)); } @@ -281,6 +281,7 @@ void IMReactor::loop() {/*{{{*/ * 创建Task * 分配工作线程 */ + std::cout << "recive msg" << std::endl; auto connecter = getConnecter(cur.data.fd); std::shared_ptr task = std::make_shared (connecter); threads.addTask(task); diff --git a/reactor/IMReactor.h b/reactor/IMReactor.h index 85adb01..eedb39c 100644 --- a/reactor/IMReactor.h +++ b/reactor/IMReactor.h @@ -133,7 +133,7 @@ namespace IM { static IMReactor* getInstances(); static IMReactor* IMReactorInit(const char* IP, uint16_t port); static void optEventListen (Event event); - std::shared_ptr getConnecter(int sockfd) { + std::shared_ptr getConnecter(int sockfd) { return sockToConn[sockfd]; } void delConnecter(int sockfd) { @@ -168,7 +168,7 @@ namespace IM { //std::vector events; //std::vector> threads; ThreadPool threads; - std::map> sockToConn; + std::map> sockToConn; static IMReactor* _thisReactor; };/*}}}*/ diff --git a/reactor/task.cpp b/reactor/task.cpp index 1acea5a..9e86f5e 100644 --- a/reactor/task.cpp +++ b/reactor/task.cpp @@ -2,9 +2,9 @@ #include "reactor/IMReactor.h" #include "reactor/task.h" -#include "IM/IMProtocol.h" -#include "IM/login_server.h" +#include "server/loginTask.h" #include "dao/UserDao.h" +#include "util/Log.h" using namespace IM; @@ -12,30 +12,60 @@ using namespace IM; void ReadableTask::doit() { + std::cout << "ReadableTask" << std::endl; while(true) { - auto pdu = IM::makeIMPdu(p_con); - if(!pdu) { + auto request = p_con->recive(); + if(!request) { break; } - //std::cout << "new Pdu" << std::endl; - - switch (pdu->getCommand()) { - case IM::LOGIN: - ::IMReactor::getInstances()->addTask( - std::make_shared(std::dynamic_pointer_cast (pdu), p_con)); + switch (request->type()) { + case Proto::Request_Type_LOGIN: + if(!request->has_request_login()) { + Log::log(Log::ERROR, "协议格式错误"); + } + + { + const Proto::Request_login& request_login = request->request_login(); + std::cout << "login id: " << request_login.id() << std::endl; + std::cout << "login password: " << request_login.password() << std::endl; + Proto::Response *response = new Proto::Response(); + Proto::Response_login* response_login = new Proto::Response_login(); + LoginTask task(request_login, *response_login); + task.doit(); + response->set_allocated_response_login(response_login); + p_con->send(response); + delete request; + delete response; + } break; - case IM::LOGOUT: - std::cout << "logout" << std::endl; + case Proto::Request_Type_LOGOUT: break; - case IM::SENDMSG: - std::cout << "send message" << std::endl; + case Proto::Request_Type_SENDMSG: break; default: - std::cout << "what are you doing" << std::endl; break; - + } + + + //switch (pdu->getCommand()) { + // case IM::LOGIN: + // ::IMReactor::getInstances()->addTask( + // std::make_shared(std::dynamic_pointer_cast (pdu), p_con)); + // break; + // case IM::LOGOUT: + // std::cout << "logout" << std::endl; + // break; + // case IM::SENDMSG: + // std::cout << "send message" << std::endl; + // break; + // default: + // std::cout << "what are you doing" << std::endl; + // break; + + //} + } } @@ -60,49 +90,3 @@ void NewConnectTask::doit() { } - -void LoginTask::doit() { - User user; - user.setId(userPdu->getUserId()); - user.setPassword(userPdu->getPassword()); - - - auto userConn = ConnMap::findConnecterById(user.getId()); - if(userConn != nullptr) { - /* TODO: - * 顶掉线 - * <17-05-19, sky> */ - std::cout << "用户已在线" << std::endl; - return ; - } - - User* dbUser = UserDao::Obtain(user.getId()); - - //账号不存在 - if(dbUser == nullptr) { - //std::cout << "账号不存在" << std::endl; - p_con->send("账号不存在"); - return ; - } - //登录成功 - if(user.getPassword() == dbUser->getPassword()) { - - //std::cout << "登录成功" << std::endl; - p_con->send("登录成功"); - ConnMap::addAccount(std::make_pair(user.getId(), p_con)); - - } else { //密码错误 - - //std::cout << "密码错误" << std::endl; - p_con->send("密码错误"); - } - - /* TODO: - * 从数据库获取user信息 - * 对比密码 - * 登录成功则插入sockmap中 - * 否则返回错误信息 - * <08-05-19, sky> */ -} - - diff --git a/reactor/task.h b/reactor/task.h index 5d39765..d5ef7af 100644 --- a/reactor/task.h +++ b/reactor/task.h @@ -2,7 +2,7 @@ #define TASK_H_TKQEYUJB #include "reactor/Connecter.h" -#include "IM/IMProtocol.h" +#include "IM/IMProtocol.pb.h" using namespace IM; /* @@ -22,14 +22,14 @@ class Task { class IMTask : public Task { public: - IMTask (std::shared_ptr connecter_ptr) : + IMTask (std::shared_ptr connecter_ptr) : p_con(connecter_ptr) { } virtual ~IMTask () { } void doit() override = 0; protected: - std::shared_ptr p_con; + std::shared_ptr p_con; }; @@ -37,7 +37,7 @@ class IMTask : public Task class WriteableTask : public IMTask { public: - WriteableTask (std::shared_ptr connecter_ptr) : + WriteableTask (std::shared_ptr connecter_ptr) : IMTask(connecter_ptr) { } virtual ~WriteableTask () { } @@ -49,7 +49,7 @@ class WriteableTask : public IMTask class ReadableTask : public IMTask { public: - ReadableTask (std::shared_ptr connecter_ptr) : + ReadableTask (std::shared_ptr connecter_ptr) : IMTask(connecter_ptr) { } virtual ~ReadableTask () { } @@ -61,7 +61,7 @@ class ReadableTask : public IMTask class NewConnectTask : public IMTask { public: - NewConnectTask (std::shared_ptr connecter_ptr) : + NewConnectTask (std::shared_ptr connecter_ptr) : IMTask(connecter_ptr) { } virtual ~NewConnectTask () { } @@ -70,11 +70,12 @@ class NewConnectTask : public IMTask }; +/* class LoginTask : public IMTask { public: LoginTask (std::shared_ptr user_p, - std::shared_ptr connecter_ptr) : + std::shared_ptr connecter_ptr) : IMTask(connecter_ptr), userPdu(user_p) { } virtual ~LoginTask () { } @@ -85,6 +86,6 @@ class LoginTask : public IMTask std::shared_ptr userPdu; }; - +*/ #endif /* end of include guard: TASK_H_TKQEYUJB */ diff --git a/server.cpp b/server.cpp deleted file mode 100644 index 94cc5d6..0000000 --- a/server.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - - -#include "util/Log.h" -#include "reactor/Addresser.h" -#include - - - -int main() -{ - - Log::InitLogThread(nullptr); - auto reactor = IM::IMReactor::IMReactorInit(nullptr, 9999); - - reactor->loop(); - - return 0; -} diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt new file mode 100644 index 0000000..fc4a278 --- /dev/null +++ b/server/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.10) + +aux_source_directory(. DIR_LIB_SRCS) + + + + + +add_library(server SHARED ${DIR_LIB_SRCS}) +#target_link_libraries(server) + +SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) + diff --git a/server/loginTask.cpp b/server/loginTask.cpp new file mode 100644 index 0000000..8810696 --- /dev/null +++ b/server/loginTask.cpp @@ -0,0 +1,69 @@ +#include "reactor/IMReactor.h" +#include "IM/User.h" +#include "loginTask.h" +#include "dao/UserDao.h" + +ConnMap* ConnMap::object_p = new ConnMap(); + + + +std::shared_ptr ConnMap::find(int fd) { + std::lock_guard lock(m_mutex); + auto p = m_map.find(fd); + if(p == m_map.end()) return nullptr; + else return p->second; +} + +std::pair> ConnMap::add(std::pair> p) { + std::lock_guard lock(m_mutex); + auto it = m_map.insert(p); + if(it.second) { + return std::pair> (true, (it.first)->second); + + } else { + m_map[p.first] = p.second; + return std::pair> (false, nullptr); + } +} + +bool ConnMap::del(std::pair> p) { + std::lock_guard lock(m_mutex); + auto it = m_map.find(p.first); + if(it == m_map.end()) return false; + m_map.erase(it); + return true; +} + + + + +void LoginTask::doit() { + User user; + user.setId(request.id()); + user.setPassword(request.password()); + + + auto userConn = ConnMap::findConnecterById(user.getId()); + if(userConn != nullptr) { + response.set_stat(Proto::Response_login_STAT_ERROR); + return ; + } + + User* dbUser = UserDao::Obtain(user.getId()); + + //账号不存在 + if(dbUser == nullptr) { + response.set_stat(Proto::Response_login_STAT_ACCOUNT_NULL); + return ; + } + //登录成功 + if(user.getPassword() == dbUser->getPassword()) { + + response.set_stat(Proto::Response_login_STAT_SUCCESS); + //ConnMap::addAccount(std::make_pair(user.getId(), p_con)); + + } else { //密码错误 + response.set_stat(Proto::Response_login_STAT_PASSWORD_ERROR); + } + +} diff --git a/server/loginTask.h b/server/loginTask.h new file mode 100644 index 0000000..7b5e5fc --- /dev/null +++ b/server/loginTask.h @@ -0,0 +1,86 @@ +#ifndef LOGINTASK_H_SC9GCIS2 +#define LOGINTASK_H_SC9GCIS2 + +#include +#include +#include + +#include "IM/IMProtocol.pb.h" +#include "reactor/Connecter.h" +#include "reactor/task.h" +#include "IM/User.h" + + + +class ConnMap +{ +public: + virtual ~ConnMap () { + } + + //static void init() { + // object_p = new SockMap(); + //} + + //根据用户ID返回Connecter + //若用户不在线则返回-1 + static std::shared_ptr findConnecterById(User::Account id) { + if(object_p == nullptr) { + std::cout << "object_p is nullptr" << std::endl; + } + return object_p->find(id); + } + + //添加一个在线用户 + //若已经在线返回false + static std::pair> addAccount(std::pair> p) { + + if(object_p == nullptr) { + std::cout << "object_p is nullptr" << std::endl; + } + return object_p->add(p); + } + + //删除一个在线用户 + //若用户不在线, 返回false + static bool delAccount(std::pair> p) { + if(object_p == nullptr) { + std::cout << "object_p is nullptr" << std::endl; + } + return object_p->del(p); + } + std::shared_ptr find(int fd); + std::pair> add(std::pair> p); + bool del(std::pair> p); + +private: + ConnMap () { + } + static ConnMap* object_p; + std::map> m_map; + //pthread_mutex_t m_mutex; + std::mutex m_mutex; +}; + + + + + +class LoginTask : public Task +{ +public: + LoginTask (const Proto::Request_login& req, + Proto::Response_login& rep) : request(req), response(rep) {} + + virtual ~LoginTask () { } + + void doit() override; + +private: + const Proto::Request_login& request; + Proto::Response_login& response; + +}; + + +#endif /* end of include guard: LOGINTASK_H_SC9GCIS2 */ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5a9d2e9..495c243 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,26 +6,28 @@ cmake_minimum_required(VERSION 2.8.2) #add_executable(test testProtocol.cpp) add_executable(testReactor testReactor.cpp) +add_executable(client testProtobufLogin.cpp) #add_executable(ProtocolServer ProtocolServer.cpp Mytask.cpp) -add_executable(ProtocolClient ProtocolClient.cpp) +#add_executable(ProtocolClient ProtocolClient.cpp) #add_executable(testDao testUserDao.cpp) #add_executable(testUserDao_add testUserDao_add.cpp) #add_executable(testUserDao_select testUserDao_select.cpp) #add_executable(testUserDao_del testUserDao_del.cpp) #add_executable(testUserDao_update testUserDao_update.cpp) -add_executable(ThreadPool testThreadPool.cpp) +#add_executable(ThreadPool testThreadPool.cpp) -target_link_libraries(testReactor Util Reactor IM dao mysqlcppconn pthread) +target_link_libraries(testReactor Util Reactor IM server dao mysqlcppconn pthread) #target_link_libraries(ProtocolServer IM Util Reactor pthread) -target_link_libraries(ProtocolClient IM Util Reactor dao mysqlcppconn pthread) +#target_link_libraries(ProtocolClient IM Util Reactor dao mysqlcppconn pthread) #target_link_libraries(testDao dao IM Util Reactor mysqlcppconn gtest gtest_main pthread ) #target_link_libraries(testUserDao_add dao IM Util Reactor mysqlcppconn gtest gtest_main pthread ) #target_link_libraries(testUserDao_select dao IM Util Reactor mysqlcppconn gtest gtest_main pthread ) #target_link_libraries(testUserDao_del dao IM Util Reactor mysqlcppconn gtest gtest_main pthread ) #target_link_libraries(testUserDao_update dao IM Util Reactor mysqlcppconn gtest gtest_main pthread ) -target_link_libraries(ThreadPool Reactor IM Util dao mysqlcppconn pthread) +#target_link_libraries(ThreadPool Reactor IM Util dao mysqlcppconn pthread) +target_link_libraries(client Reactor IM Util server dao mysqlcppconn pthread) diff --git a/test/ProtocolClient.cpp b/test/ProtocolClient.cpp index 1dc59bb..6c98b20 100644 --- a/test/ProtocolClient.cpp +++ b/test/ProtocolClient.cpp @@ -59,15 +59,20 @@ int main() continue; break; } + int len = IM::IMPduToSerivlization(buf, pdu); std::cout << pdu->getHeaderLenth() << std::endl; int re = write(fd, buf, len); - int readLen = read(fd, buf, BUFSIZ); if(re == -1) { std::cout << strerror(errno) << std::endl; } else std::cout << "write " << re << "Byte" << std::endl; + + sleep(2); + int readLen = read(fd, buf, BUFSIZ); + std::cout << "read " << readLen << "Byte" << std::endl; if(readLen > 0) std::cout << "recive msg: " << buf << std::endl; + } return 0; } diff --git a/test/testProtobufLogin.cpp b/test/testProtobufLogin.cpp new file mode 100644 index 0000000..773b398 --- /dev/null +++ b/test/testProtobufLogin.cpp @@ -0,0 +1,103 @@ +#include "reactor/IMReactor.h" +#include "IM/IMProtocol.pb.h" +#include "IM/User.h" + +int main() +{ + ClientConn con("127.0.0.1", 9999); + + int cmd; + Proto::Request* request = new Proto::Request(); + + char buf[BUFSIZ]; + while(true) { + //system("clear"); + std::cout << "类型:1.login 2.logout 3.sendmsg" << std::endl; + std::cin >> cmd; + char msg[BUFSIZ]; + size_t msg_len = 0; + switch (cmd) { + case 1: + { + User::Account id; + auto login = new Proto::Request_login(); + std::cout << "your ID: "; + std::cin >> id; + login->set_id(id); + char pwd[100]; + std::cout << "密码: "; + std::cin >> pwd; + login->set_password(pwd); + request->set_allocated_request_login(login); + con.send(request); + } + break; + case 2: + //pdu = std::make_shared (); + //std::cout << "your ID: "; + //std::cin >> id; + //pdu->setUserId(id); + break; + case 3: + //pdu = std::make_shared (); + //std::cout << "your ID: "; + //std::cin >> id; + //pdu->setUserId(id); + //IM::IMPdu::UserId objId; + //std::cout << "objID : "; + //std::cin >> objId; + //std::dynamic_pointer_cast (pdu)->setObjID(objId); + //std::cout << "MSG : "; + //std::cin >> msg; + //msg_len = strlen(msg); + //std::dynamic_pointer_cast (pdu)->setBodyMsg(msg, msg_len); + break; + default: + std::cout << "What are you doing?" << std::endl; + continue; + break; + } + + sleep(2); + auto response = con.recive(); + if(!response) { + std::cout << "response is null" << std::endl; + continue; + } + switch (response->type()) { + case Proto::Response_Type_LOGIN: + { + std::cout << "login" << std::endl; + if(!response->has_response_login()) { + std::cout << "not has login" << std::endl; + break; + } + + auto stat = response->response_login(); + switch (stat.stat()) { + case Proto::Response_login_STAT_SUCCESS: + std::cout << "登录成功" << std::endl; + break; + case Proto::Response_login_STAT_PASSWORD_ERROR: + std::cout << "密码错误" << std::endl; + break; + case Proto::Response_login_STAT_ACCOUNT_NULL: + std::cout << "账号不存在" << std::endl; + break; + default: + std::cout << "error" << std::endl; + break; + + } + } + break; + default: + std::cout << "other" << std::endl; + break; + } + + } + + delete request; + return 0; +} diff --git a/workspace.vim b/workspace.vim index 1877295..205ec1a 100644 --- a/workspace.vim +++ b/workspace.vim @@ -6,3 +6,13 @@ command! Todo Ack! 'TODO|FIXME|CHANGED|BUG|HACK' let PROJECT_HOME = $PWD + + +func! Debug() + exec "packadd termdebug" + exec "let g:termdebug_wide = 163" + exec "Termdebug" + endfunc + + +