完成dbproxy逻辑

This commit is contained in:
aozhiwei 2018-11-01 14:26:18 +08:00
parent 7ca0b59845
commit de22262a6c
6 changed files with 33 additions and 16 deletions

View File

@ -17,6 +17,7 @@
#include "handlermgr.h"
#include "ss_msgid.pb.h"
#include "ss_proto.pb.h"
#include "dbpool.h"
struct MsgNode
{
@ -83,6 +84,7 @@ void App::Init(int argc, char* argv[])
HandlerMgr::Instance()->Init();
a8::Timer::Instance()->Init();
JsonDataMgr::Instance()->Init();
DBPool::Instance()->Init();
GSListener::Instance()->Init();
uuid.SetMachineId(instance_id);
@ -107,6 +109,7 @@ void App::UnInit()
return;
}
GSListener::Instance()->UnInit();
DBPool::Instance()->UnInit();
JsonDataMgr::Instance()->UnInit();
a8::Timer::Instance()->UnInit();
HandlerMgr::Instance()->UnInit();
@ -279,6 +282,13 @@ void App::DispatchMsg()
hdr.buflen = pdelnode->buflen;
hdr.offset = 0;
hdr.ip_saddr = pdelnode->ip_saddr;
switch (pdelnode->sockfrom) {
case SF_GameServer:
{
ProcessGSMsg(hdr);
}
break;
}
if (pdelnode->buf) {
free(pdelnode->buf);
}
@ -294,17 +304,21 @@ void App::DispatchMsg()
}
}
void App::ProcessClientMsg(MsgHdr& hdr)
void App::ProcessGSMsg(MsgHdr& hdr)
{
if (hdr.msgid < 100) {
return;
NetMsgHandler* handler = GetNetMsgHandler(&HandlerMgr::Instance()->gsmsghandler,
hdr.msgid);
if (handler) {
switch (handler->handlerid) {
case HID_DBPool:
{
ProcessNetMsg(handler, DBPool::Instance(), hdr);
}
break;
}
}
}
void App::ProcessTargetServerMsg(MsgHdr& hdr)
{
}
void App::ProcessIMMsg()
{
if (!im_work_node_ && im_top_node_) {

View File

@ -41,8 +41,7 @@ private:
void DispatchMsg();
void ProcessIMMsg();
void ProcessClientMsg(MsgHdr& hdr);
void ProcessTargetServerMsg(MsgHdr& hdr);
void ProcessGSMsg(MsgHdr& hdr);
void InitLog();
void UnInitLog();

View File

@ -7,8 +7,12 @@ namespace ss
}
class DBThread;
class DBPool
class DBPool : public a8::Singleton<DBPool>
{
private:
DBPool() {};
friend class a8::Singleton<DBPool>;
public:
enum { HID = HID_DBPool };
@ -26,4 +30,3 @@ class DBPool
DBThread* db_single_thread_ = nullptr;
std::vector<DBThread*> db_thread_pool_;
};

View File

@ -3,8 +3,9 @@
#include <a8/mutable_xobject.h>
#include "handlermgr.h"
#include "GSListener.h"
#include "dbpool.h"
#include "ss_proto.pb.h"
void _GMAppEcho(a8::HTTPRequest& request, a8::MutableXObject* xobj)
{
@ -25,6 +26,8 @@ void HandlerMgr::UnInit()
void HandlerMgr::RegisterNetMsgHandlers()
{
RegisterNetMsgHandler(&gsmsghandler, &DBPool::_SS_Ping);
RegisterNetMsgHandler(&gsmsghandler, &DBPool::_SS_GSM_ExecAsyncSql);
}
void HandlerMgr::ProcGMMsg(int sockhandle, const std::string& url, const std::string& querystr)

View File

@ -21,8 +21,6 @@ class HandlerMgr : public a8::Singleton<HandlerMgr>
void Init();
void UnInit();
NetMsgHandlerObject gcmsghandler;
NetMsgHandlerObject rsmsghandler;
NetMsgHandlerObject gsmsghandler;
void ProcGMMsg(int sockhandle, const std::string& url, const std::string& quyerstr);

View File

@ -3,8 +3,8 @@ package ss;
//id定义
enum SSMessageId_e
{
_SS_Ping = 150;
_SS_Pong = 151;
_SS_Ping = 100;
_SS_Pong = 101;
_SS_GSM_ExecAsyncSql = 152;
_SS_DPM_ExecAsyncSql = 153;
}