From 27fc3ab90b34348129770d7060b04f1d7c228e86 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 4 May 2020 12:11:14 +0800 Subject: [PATCH] 1 --- server/imserver/app.cc | 3 ++ server/imserver/dbengine.cc | 58 +++++++++++++++++++++++++++++++++++++ server/imserver/dbengine.h | 33 +++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 server/imserver/dbengine.cc create mode 100644 server/imserver/dbengine.h diff --git a/server/imserver/app.cc b/server/imserver/app.cc index 5883998..912550f 100644 --- a/server/imserver/app.cc +++ b/server/imserver/app.cc @@ -21,6 +21,7 @@ #include "ss_msgid.pb.h" #include "ss_proto.pb.h" #include "playermgr.h" +#include "dbengine.h" #include "MSConnMgr.h" #include "IMConnMgr.h" @@ -127,6 +128,7 @@ bool App::Init(int argc, char* argv[]) WSListener::Instance()->Init(); IMListener::Instance()->Init(); PlayerMgr::Instance()->Init(); + DBEngine::Instance()->Init(); a8::UdpLog::Instance()->Info("friend_imserver starting instance_id:%d pid:%d ", { @@ -173,6 +175,7 @@ bool App::Init(int argc, char* argv[]) void App::UnInit() { a8::XPrintf("friend_imserver terminating instance_id:%d pid:%d\n", {instance_id, getpid()}); + DBEngine::Instance()->UnInit(); PlayerMgr::Instance()->UnInit(); IMListener::Instance()->UnInit(); WSListener::Instance()->UnInit(); diff --git a/server/imserver/dbengine.cc b/server/imserver/dbengine.cc new file mode 100644 index 0000000..dd523af --- /dev/null +++ b/server/imserver/dbengine.cc @@ -0,0 +1,58 @@ +#include "precompile.h" + +#include "dbengine.h" + +void DBEngine::Init() +{ + f8::DBPool::Instance()->Init(); + f8::DBPool::Instance()->SetThreadNum(16); +} + +void DBEngine::UnInit() +{ + f8::DBPool::Instance()->UnInit(); +} + +void DBEngine::ExecAsyncQuery(a8::XObject conn_info, + const char* querystr, + std::vector args, + a8::XParams param, + f8::AsyncDBOnOkFunc on_ok, + f8::AsyncDBOnErrorFunc on_error, + long long hash_code) +{ + f8::DBPool::Instance()->ExecAsyncQuery( + conn_info, + querystr, + args, + param, + on_ok, + on_error, + hash_code + ); +} + +void DBEngine::ExecAsyncScript(a8::XObject conn_info, + const char* querystr, + std::vector args, + a8::XParams param, + f8::AsyncDBOnOkFunc on_ok, + f8::AsyncDBOnErrorFunc on_error, + long long hash_code) +{ + f8::DBPool::Instance()->ExecAsyncScript( + conn_info, + querystr, + args, + param, + on_ok, + on_error, + hash_code + ); +} + +a8::XObject DBEngine::GetConnInfoByHash(long long hash_code) +{ + a8::XObject conn_info; + return conn_info; +} diff --git a/server/imserver/dbengine.h b/server/imserver/dbengine.h new file mode 100644 index 0000000..001b06d --- /dev/null +++ b/server/imserver/dbengine.h @@ -0,0 +1,33 @@ +#pragma once + +#include "framework/cpp/dbpool.h" + +class DBEngine : public a8::Singleton +{ + private: + DBEngine() {}; + friend class a8::Singleton; + + public: + void Init(); + void UnInit(); + + //执行异步并行查询 + void ExecAsyncQuery(a8::XObject conn_info, + const char* querystr, + std::vector args, + a8::XParams param, + f8::AsyncDBOnOkFunc on_ok, + f8::AsyncDBOnErrorFunc on_error, + long long hash_code = 0); + //执行异步并行sql + void ExecAsyncScript(a8::XObject conn_info, + const char* querystr, + std::vector args, + a8::XParams param, + f8::AsyncDBOnOkFunc on_ok, + f8::AsyncDBOnErrorFunc on_error, + long long hash_code = 0); + + a8::XObject GetConnInfoByHash(long long hash_code); +};