From c4913f6fdbad09f0714a3fcdf1a1a9f2d887a1bc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 16 Jun 2020 15:39:50 +0800 Subject: [PATCH] 1 --- server/masterserver/cachemgr.cc | 17 +++++++++++++++++ server/masterserver/jsondatamgr.cc | 5 +++++ server/masterserver/jsondatamgr.h | 1 + server/masterserver/typeconvert.cc | 26 ++++++++++++++++++++++++++ server/masterserver/typeconvert.h | 22 ++++++++++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 server/masterserver/typeconvert.cc create mode 100644 server/masterserver/typeconvert.h diff --git a/server/masterserver/cachemgr.cc b/server/masterserver/cachemgr.cc index f7725c8..bd569d9 100644 --- a/server/masterserver/cachemgr.cc +++ b/server/masterserver/cachemgr.cc @@ -1,6 +1,10 @@ #include "precompile.h" +#include + #include "cachemgr.h" +#include "app.h" +#include "jsondatamgr.h" void CacheMgr::Init() { @@ -14,7 +18,20 @@ void CacheMgr::UnInit() void CacheMgr::_SS_IM_UserOnline(f8::MsgHdr& hdr, const ss::SS_IM_UserOnline& msg) { + for (auto& user_info : msg.user_infos()) { + unsigned int code = a8::openssl::Crc32 + ( + (unsigned char*)user_info.base_data().account_id().data(), + user_info.base_data().account_id().size() + ); + int instance_id = code % JsonDataMgr::Instance()->GetMasterSvrNum() + 1; + if (App::Instance()->instance_id == instance_id) { + Friend* friend_data = GetFriendData(user_info.base_data().account_id()); + if (friend_data) { + } + } + } } void CacheMgr::_SS_IM_UserOffline(f8::MsgHdr& hdr, const ss::SS_IM_UserOffline& msg) diff --git a/server/masterserver/jsondatamgr.cc b/server/masterserver/jsondatamgr.cc index c391f75..14ae7d5 100644 --- a/server/masterserver/jsondatamgr.cc +++ b/server/masterserver/jsondatamgr.cc @@ -39,3 +39,8 @@ std::shared_ptr JsonDataMgr::GetConf() } return masterserver_cluster_json_[App::Instance()->instance_id - 1]; } + +int JsonDataMgr::GetMasterSvrNum() +{ + return masterserver_cluster_json_.Size(); +} diff --git a/server/masterserver/jsondatamgr.h b/server/masterserver/jsondatamgr.h index d772f01..a7ae5e7 100644 --- a/server/masterserver/jsondatamgr.h +++ b/server/masterserver/jsondatamgr.h @@ -11,6 +11,7 @@ class JsonDataMgr : public a8::Singleton void UnInit(); std::shared_ptr GetConf(); + int GetMasterSvrNum(); std::string ip; int listen_port = 0; diff --git a/server/masterserver/typeconvert.cc b/server/masterserver/typeconvert.cc new file mode 100644 index 0000000..79dad39 --- /dev/null +++ b/server/masterserver/typeconvert.cc @@ -0,0 +1,26 @@ +#include "precompile.h" + +#include "typeconvert.h" +#include "cs_proto.pb.h" +#include "ss_proto.pb.h" + +void TypeConvert::Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb) +{ + +} + +void TypeConvert::Convert(const ss::MFBaseUserDataDB& base_data_pb, const BaseUserData& base_data) +{ + +} + +void TypeConvert::Convert(const BaseUserData& base_data, cs::MFBaseUserData& base_data_pb) +{ + +} + +void TypeConvert::Convert(const UserTempCustomData& temp_custom_data, + cs::MFUserTempCustomData& tmpe_custom_data_pb) +{ + +} diff --git a/server/masterserver/typeconvert.h b/server/masterserver/typeconvert.h new file mode 100644 index 0000000..342483f --- /dev/null +++ b/server/masterserver/typeconvert.h @@ -0,0 +1,22 @@ +#pragma once + +namespace cs +{ + class MFBaseUserData; + class MFUserTempCustomData; +} + +namespace ss +{ + class MFBaseUserDataDB; +} + +class TypeConvert +{ + public: + static void Convert(const BaseUserData& base_data, ss::MFBaseUserDataDB& base_data_pb); + static void Convert(const ss::MFBaseUserDataDB& base_data_pb, const BaseUserData& base_data); + static void Convert(const BaseUserData& base_data, cs::MFBaseUserData& base_data_pb); + static void Convert(const UserTempCustomData& temp_custom_data, + cs::MFUserTempCustomData& tmpe_custom_data_pb); +};