Monobit Unity Networking ver.2.8.0 Server API Reference (C++)
MunResolverDatabase.hpp
Go to the documentation of this file.
1 
7 #ifndef __MUN_RESOLVER_DATABASE_HPP__
8 #define __MUN_RESOLVER_DATABASE_HPP__
9 
10 #include <map>
11 #include <mrs.hpp>
12 #include <sqlite/SqliteAgent.hpp>
13 #include <sql/SQL.hpp>
14 #include <stream/MunStream.hpp>
15 #include <version/MunVersion.hpp>
17 
22 {
23 private:
25  static MunVersion s_MunVersion;
26 
28  static SqliteAgent s_ResolverDB;
29 
31  static std::map< uint64, ProxyServerConnectInfo > s_ProxyServerConnectInfo;
32 
33 
34  static STREAM::ResolverResolveAddressResponse s_ResolverResolveAddressResponse;
35 
36 
37 protected:
44  std::map<uint64, ProxyServerConnectInfo>::iterator itr = s_ProxyServerConnectInfo.find( proxyUid );
45  return ( s_ProxyServerConnectInfo.end() == itr ) ? NULL: &(itr->second);
46  }
47 
53  static void AddProxyServerConnectInfo( uint64 proxyUid, ProxyServerConnectInfo& proxyServerConnectInfo ) {
54  s_ProxyServerConnectInfo.insert( std::pair<uint64, ProxyServerConnectInfo>( proxyUid, proxyServerConnectInfo ) );
55  }
56 
61  static void RemoveProxyServerConnectInfo( uint64 proxyUid ) {
62  s_ProxyServerConnectInfo.erase( proxyUid );
63  }
64 
71  static bool SetProxyWeight( uint64 proxyUid, int32 weight );
72 
77  static void DeleteProxyWeight( uint64 proxyUid );
78 
83  static uint64 SelectProxyUid();
84 
85 public:
90  static bool InitDB();
91 
96  static void Recv_Resolver_ResolveAddress(MrsConnection pMunClient, STREAM::ResolverResolveAddressRequest& request);
97 
103  static void Recv_ProxyResolver_SetAddress(uint64 connectId, STREAM::ProxyResolverSetAddressRequest& request);
104 
110  static void Recv_ProxyResolver_SetWeight(uint64 connectId, STREAM::ProxyResolverSetWeightRequest& request);
111 };
112 
113 #endif /* __MUN_RESOLVER_DATABASE_HPP__ */
static bool SetProxyWeight(uint64 proxyUid, int32 weight)
データベースにmun_proxyサーバの負荷情報を設定する.
Definition: MunResolverDatabase.cpp:64
mun_proxyサーバからmun_resolverサーバに対して送信される、mun_proxyサーバのアドレス情報.
Definition: MunStream.hpp:1863
MUNにおける通信データ情報.
static ProxyServerConnectInfo * GetProxyServerConnectInfo(uint64 proxyUid)
mun_proxyサーバ接続情報を登録リストから取得する.
Definition: MunResolverDatabase.hpp:43
static void AddProxyServerConnectInfo(uint64 proxyUid, ProxyServerConnectInfo &proxyServerConnectInfo)
mun_proxyサーバ接続情報を登録リストに追加する.
Definition: MunResolverDatabase.hpp:53
static void Recv_Resolver_ResolveAddress(MrsConnection pMunClient, STREAM::ResolverResolveAddressRequest &request)
MUNクライアントからの mun_proxyサーバのリスニング情報取得処理.
Definition: MunResolverDatabase.cpp:144
MUNクライアントからmun_resolverサーバに対して送信される、mun_proxyサーバのアドレス情報取得要求.
Definition: MunStream.hpp:1744
mun_resolverサーバのデータベース管理クラス.
Definition: MunResolverDatabase.hpp:21
static void Recv_ProxyResolver_SetWeight(uint64 connectId, STREAM::ProxyResolverSetWeightRequest &request)
mun_proxyサーバからのサーバ負荷情報受信処理.
Definition: MunResolverDatabase.cpp:243
static void Recv_ProxyResolver_SetAddress(uint64 connectId, STREAM::ProxyResolverSetAddressRequest &request)
mun_proxyサーバからのクライアント接続情報受信処理.
Definition: MunResolverDatabase.cpp:212
static void RemoveProxyServerConnectInfo(uint64 proxyUid)
mun_proxyサーバ接続情報を登録リストから削除する.
Definition: MunResolverDatabase.hpp:61
static void DeleteProxyWeight(uint64 proxyUid)
データベースからmun_proxyサーバの負荷情報を削除する.
Definition: MunResolverDatabase.cpp:88
MUNのバージョン管理クラス.
Definition: MunVersion.hpp:19
mun_resolverサーバからMUNクライアントに対して送信される、mun_proxyサーバのアドレス情報取得結果.
Definition: MunStream.hpp:1800
mun_proxyサーバとの接続情報.
static uint64 SelectProxyUid()
データベース内で最も負荷が軽いmun_proxyサーバのユニークIDを取得する.
Definition: MunResolverDatabase.cpp:108
mun_proxyサーバの接続情報.
Definition: MunResolverProxyConnectInfo.hpp:15
mun_proxyサーバからmun_resolverサーバに対して送信される、mun_proxyサーバの負荷情報.
Definition: MunStream.hpp:1965
MUNのバージョン管理.
static bool InitDB()
データベース初期化.
Definition: MunResolverDatabase.cpp:28