diff --git a/server/rankserver/metadata.cc b/server/rankserver/metadata.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/rankserver/metadata.h b/server/rankserver/metadata.h new file mode 100644 index 0000000..e69de29 diff --git a/server/rankserver/metamgr.cc b/server/rankserver/metamgr.cc new file mode 100644 index 0000000..9b18001 --- /dev/null +++ b/server/rankserver/metamgr.cc @@ -0,0 +1,81 @@ +#include "precompile.h" + +#include +#include + +#include "framework/cpp/utils.h" + +#include "metamgr.h" +#include "app.h" +#include "jsondatamgr.h" + +#define METAMGR_READ(field_name, def_val) MetaMgr::Instance()->field_name = \ + a8::XValue(MetaMgr::Instance()->GetSysParamAsString(#field_name, #def_val)); + +#define METAMGR_READ_STR(field_name, def_val) MetaMgr::Instance()->field_name = \ + a8::XValue(MetaMgr::Instance()->GetSysParamAsString(#field_name, def_val)).GetString(); + +class MetaDataLoader +{ +public: + + void Load() + { + if (!f8::IsOnlineEnv()) { + if (f8::IsTestEnv()) { + res_path = a8::Format("/root/pub/%d/%d/conf_test/game%d/gameserver.test/res%d/", + { + GAME_ID, + App::Instance()->instance_id, + GAME_ID, + App::Instance()->instance_id + }); + } else { + res_path = a8::Format("/root/pub/%d/%d/conf_test/game%d/gameserver.dev/res%d/", + { + GAME_ID, + App::Instance()->instance_id, + GAME_ID, + App::Instance()->instance_id + }); + } + } else { + res_path = "../res/"; + } + Check(); + } + +private: + + void Check() + { + } + + void BindToMetaData() + { + } + +private: + std::string res_path; +}; + +void MetaMgr::Init() +{ + loader_ = new MetaDataLoader(); + loader_->Load(); +} + +void MetaMgr::UnInit() +{ + delete loader_; + loader_ = nullptr; +} + +void MetaMgr::Reload() +{ + delete loader_; + loader_ = nullptr; + + loader_ = new MetaDataLoader(); + loader_->Load(); +} diff --git a/server/rankserver/metamgr.h b/server/rankserver/metamgr.h new file mode 100644 index 0000000..faa0fab --- /dev/null +++ b/server/rankserver/metamgr.h @@ -0,0 +1,23 @@ +#pragma once + +#include "metadata.h" + +class MetaDataLoader; +class MetaMgr : public a8::Singleton +{ + + private: + MetaMgr() {}; + friend class a8::Singleton; + + public: + + void Init(); + void UnInit(); + void Reload(); + + private: + MetaDataLoader* loader_ = nullptr; + + friend class MetaDataLoader; +};