7 #ifndef __MUN_MASTER_DATABASE_HPP__ 8 #define __MUN_MASTER_DATABASE_HPP__ 12 #include <sqlite/SqliteAgent.hpp> 13 #include <sql/SQL.hpp> 32 static SqliteAgent s_MasterDB;
41 static std::map<uint64, RoomServerConnectInfo> s_RoomServerConnectInfo;
44 static uint32 s_MaxClientNum;
47 static std::string s_ApplicationId;
89 std::map<uint64, RoomServerConnectInfo>::iterator itr = s_RoomServerConnectInfo.find(roomUid);
90 return (s_RoomServerConnectInfo.end() == itr) ? NULL : &(itr->second);
99 s_RoomServerConnectInfo.insert( std::pair<uint64, RoomServerConnectInfo>( roomUid, roomServerConnectInfo ) );
107 s_RoomServerConnectInfo.erase( roomUid );
116 static uint64
GetAppRoomId( uint32 appId, uint64 roomId ) {
return ((uint64)appId << 32) + roomId; }
123 static uint32
GetAppId( uint64 appRoomId ) {
return appRoomId >> 32; }
130 static uint64
GetRoomId( uint64 appRoomId ) {
return appRoomId & 0xFFFFFFFF; }
144 static STREAM::ERRORCODE_ID CreateClient( uint32& masterClientId, MrsConnection pMunProxy, uint64 proxyClientId, std::string munVersion, std::string appName, std::string clientName,
bool isUpdateLobbyInfo, std::stringstream& errMsg );
151 static void DeleteClient( uint32 clientId,
bool isUpdateStats );
226 static STREAM::ERRORCODE_ID ForceJoinRoom(
MatchingDatabase* pMatchingDatabase, uint32 clientId, uint64& roomId,
MatchingPlayerInRoom& player, std::string roomName, uint64 lobbyId,
bool isVisible,
bool isOpen, uint32 maxPlayers,
STREAM::KeyValue* pRoomParameters, uint16 roomParametersLen,
STREAM::Text* pLobbyParameters, uint16 lobbyParametersLen,
bool isNeedHostPlayer );
244 static STREAM::ERRORCODE_ID RandomJoinRoom(
MatchingDatabase* pMatchingDatabase, uint32 clientId, uint64& roomId,
MatchingPlayerInRoom& player, uint64 lobbyId, uint8 lobbyKind, uint32 maxPlayers, uint8 matchingMode,
STREAM::KeyValue* pRoomParameters, uint16 roomParametersLen, std::string keyValueFilter, std::string& msg );
341 static void UpdatedRoom(
MatchingDatabase* pMatchingDatabase, uint64 roomId,
bool isRemovedRoom, std::vector< uint32 >* clientIds );
mun_masterサーバからMUNクライアントに対して送信される、ルーム内プレイヤー人数の上限変更処理結果.
Definition: MunStream.hpp:3480
static void Recv_Master_Room_Leave(MrsConnection pMunProxy, uint64 proxyClientId)
MUNクライアントからのルーム退室処理.
Definition: MunMasterDatabase.cpp:1860
static void Recv_Master_Room_Create(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomCreateRequest &request)
MUNクライアントからのルーム作成処理.
Definition: MunMasterDatabase.cpp:1240
mun_roomサーバからmun_masterサーバに対して送信される、ホストの変更処理結果.
Definition: MunStream.hpp:5216
static void Recv_Master_Lobby_ForceJoin(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterLobbyForceJoinRequest &request)
MUNクライアントからのロビー強制入室処理.
Definition: MunMasterDatabase.cpp:1117
mun_masterサーバからMUNクライアントに対して送信される、ルーム入室可否設定変更処理結果.
Definition: MunStream.hpp:3704
static void Recv_Master_SearchPlayers(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterSearchPlayersRequest &request)
MUNクライアントからのプレイヤー検索処理.
Definition: MunMasterDatabase.cpp:2244
mun_masterサーバからmun_roomサーバに対して送信される、プレイヤーのルームログイン処理結果.
Definition: MunStream.hpp:4904
static STREAM::ERRORCODE_ID JoinRoom(MatchingDatabase *pMatchingDatabase, uint32 clientId, uint64 &roomId, MatchingPlayerInRoom &player, std::string roomName)
ルームに入室する.
Definition: MunMasterDatabase.cpp:435
MUNクライアントからmun_masterサーバに対して送信される、プレイヤーパラメータ変更処理結果.
Definition: MunStream.hpp:4459
static void RemoveRoomServerConnectInfo(uint64 roomUid)
mun_roomサーバ接続情報を登録リストから削除する.
Definition: MunMasterDatabase.hpp:106
MUNクライアントからmun_masterサーバに対して送信される、プレイヤー名変更処理結果.
Definition: MunStream.hpp:4607
MUNクライアントからmun_masterサーバに対して送信される、ルーム強制入室要求.
Definition: MunStream.hpp:2774
static void Recv_RoomMaster_UpdateHostId(MrsConnection pMunRoom, STREAM::RoomMasterUpdateHostIdRequest &request)
mun_roomサーバからのホスト変更処理.
Definition: MunMasterDatabase.cpp:2609
static void Recv_Master_Check(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterCheckRequest &request)
MUNクライアントからの認証処理.
Definition: MunMasterDatabase.cpp:1003
static void Recv_Proxy_DisconnectClient(MrsConnection pMunProxy, uint64 proxyClientId)
mun_proxyサーバからの、MUNクライアント切断通知処理.
Definition: MunMasterDatabase.cpp:2432
mun_masterサーバからMUNクライアントに対して送信される、ロビー更新情報.
Definition: MunStream.hpp:2566
static void Recv_Master_Lobby_Leave(MrsConnection pMunProxy, uint64 proxyClientId)
MUNクライアントからのロビー退室処理.
Definition: MunMasterDatabase.cpp:1199
static void UpdatedLobby(MatchingDatabase *pMatchingDatabase, MatchingLobby &pLobby, bool isRemove)
ロビー情報更新後の処理.
Definition: MunMasterDatabase.cpp:391
static bool UpdateRoom(MatchingDatabase *pMatchingDatabase, uint64 roomId, bool isVisible, bool isOpen, uint32 maxPlayers)
ルーム情報の更新処理(ルームID, 可視化, 入室可否, 最大収容人数).
Definition: MunMasterDatabase.cpp:680
static void ClearRoomWeights()
ルームサーバデータベースに登録された「重み」情報をゼロクリアする.
Definition: MunMasterDatabase.cpp:908
mun_masterサーバからMUNクライアントに対して送信される、ロビー通知パラメータ変更要求.
Definition: MunStream.hpp:4009
MUNクライアントからmun_masterサーバに対して送信される、ルームパラメータ変更処理結果.
Definition: MunStream.hpp:3843
mun_masterサーバからMUNクライアントに対して送信される、ルーム入室処理結果.
Definition: MunStream.hpp:3018
static STREAM::ERRORCODE_ID CreateClient(uint32 &masterClientId, MrsConnection pMunProxy, uint64 proxyClientId, std::string munVersion, std::string appName, std::string clientName, bool isUpdateLobbyInfo, std::stringstream &errMsg)
クライアントの生成および登録処理.
Definition: MunMasterDatabase.cpp:125
static bool InitDB(MunMasterConfigure *pConfig)
データベースの初期化.
Definition: MunMasterDatabase.cpp:68
MUNクライアントからmun_masterサーバに対して送信される、ルーム入室可否設定変更要求.
Definition: MunStream.hpp:3648
static bool SetRoomWeight(uint64 roomUid, int32 weight)
データベースにルームサーバの「重み」情報を設定する.
Definition: MunMasterDatabase.cpp:866
static void LeftRoom(MatchingDatabase *pMatchingDatabase, MatchingRoom *pRoom, MatchingClient &client)
ルーム退室後の処理.
Definition: MunMasterDatabase.cpp:636
MUNクライアントからmun_masterサーバに対して送信される、ルーム作成要求.
Definition: MunStream.hpp:2630
static void InternalLeaveLobby(MatchingDatabase *pMatchingDatabase, MatchingClient &client)
ロビーから退室し、他のクライアントに通知しない.
Definition: MunMasterDatabase.cpp:344
MUNクライアントからmun_masterサーバに対して送信される、プレイヤー検索要求.
Definition: MunStream.hpp:4156
MUNクライアントからmun_masterサーバに対して送信される、ロビー強制入室要求.
Definition: MunStream.hpp:2421
MUNクライアントからmun_masterサーバに対して送信される、プレイヤー名変更要求.
Definition: MunStream.hpp:4551
mun_roomサーバからmun_masterサーバに対して送信される、mun_roomサーバの負荷情報.
Definition: MunStream.hpp:4774
mun_masterサーバからmun_roomサーバに対して送信される、プレイヤーパラメータの変更通知.
Definition: MunStream.hpp:5281
static uint32 GetAppId(uint64 appRoomId)
アプリケーションID込みのルームIDからアプリケーションIDのみを抽出して取得.
Definition: MunMasterDatabase.hpp:123
mun_roomサーバとの接続情報.
Definition: MunMasterRoomServerConnectInfo.hpp:15
任意のKey-Valueペア.
Definition: MunStream.hpp:602
static uint64 GetAppRoomId(uint32 appId, uint64 roomId)
アプリケーションID込みのルームIDの生成.
Definition: MunMasterDatabase.hpp:116
static STREAM::ERRORCODE_ID ForceJoinRoom(MatchingDatabase *pMatchingDatabase, uint32 clientId, uint64 &roomId, MatchingPlayerInRoom &player, std::string roomName, uint64 lobbyId, bool isVisible, bool isOpen, uint32 maxPlayers, STREAM::KeyValue *pRoomParameters, uint16 roomParametersLen, STREAM::Text *pLobbyParameters, uint16 lobbyParametersLen, bool isNeedHostPlayer)
ルームに強制入室する.
Definition: MunMasterDatabase.cpp:476
static IndexManager< std::string, uint32, MatchingDatabase > * GetAppMatchingDatabase()
アプリケーション単位のマッチングデータベースマネージャの取得.
Definition: MunMasterDatabase.hpp:80
static void Recv_RoomMaster_LogoutPlayer(MrsConnection pMunRoom, STREAM::RoomMasterLogoutPlayerRequest &request)
mun_roomサーバからのプレイヤーログアウト処理.
Definition: MunMasterDatabase.cpp:2579
MUNクライアントからmun_masterサーバに対して送信される、条件付きランダムルーム入室要求.
Definition: MunStream.hpp:3091
ERRORCODE_ID
エラーコードID.
Definition: MunStream.hpp:159
static void Recv_Master_Room_RandomJoin(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomRandomJoinRequest &request)
MUNクライアントからの条件付きランダムルーム入室処理.
Definition: MunMasterDatabase.cpp:1714
MUNクライアントからmun_masterサーバに対して送信される、プレイヤーパラメータ変更要求.
Definition: MunStream.hpp:4376
mun_masterサーバからMUNクライアントに対して送信される、ルーム退室処理結果.
Definition: MunStream.hpp:3332
static void Recv_Master_Room_UpdateMaxPlayers(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomUpdateMaxPlayersRequest &request)
MUNクライアントからのルーム内プレイヤー数上限変更処理.
Definition: MunMasterDatabase.cpp:1918
MUNクライアントからmun_masterサーバに対して送信される、ルームパラメータ変更要求.
Definition: MunStream.hpp:3760
static void Recv_Master_Room_ForceJoin(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomForceJoinRequest &request)
MUNクライアントからのルーム強制入室処理.
Definition: MunMasterDatabase.cpp:1425
mun_masterサーバからMUNクライアントに対して送信される、ルーム情報可視化設定変更処理結果.
Definition: MunStream.hpp:3592
mun_roomサーバからmun_masterサーバに対して送信される、プレイヤーのルームログアウト要求.
Definition: MunStream.hpp:5013
static STREAM::ERRORCODE_ID ForceJoinLobby(MatchingDatabase *pMatchingDatabase, uint32 clientId, MatchingLobby &lobby, std::string lobbyName, uint8 lobbyKind)
ロビーへ強制入室し、クライアントへ通知する.
Definition: MunMasterDatabase.cpp:254
mun_masterサーバからMUNクライアントに対して送信される、ルーム情報更新処理結果.
Definition: MunStream.hpp:4092
MUNクライアントからmun_masterサーバに対して送信される、mun_masterサーバ認証情報.
Definition: MunStream.hpp:2215
mun_roomサーバからmun_masterサーバに対して送信される、ホストの変更要求.
Definition: MunStream.hpp:5151
static STREAM::ERRORCODE_ID InternalJoinLobby(MatchingDatabase *pMatchingDatabase, uint32 clientId, MatchingLobby &lobby, std::string lobbyName, uint8 lobbyKind)
ロビーへ強制入室し、クライアントへ通知しない.
Definition: MunMasterDatabase.cpp:305
mun_masterサーバからMUNクライアントに対して送信される、ロビー強制入室処理結果.
Definition: MunStream.hpp:2474
マッチングデータベース管理クラス.
Definition: MunMasterMatchingDatabase.hpp:24
static void Recv_RoomMaster_LoginPlayer(MrsConnection pMunRoom, STREAM::RoomMasterLoginPlayerRequest &request)
mun_roomサーバからのプレイヤーログイン処理.
Definition: MunMasterDatabase.cpp:2508
static void LeaveLobby(MatchingDatabase *pMatchingDatabase, MatchingClient &client)
ロビーから退室、他のクライアントに通知する.
Definition: MunMasterDatabase.cpp:364
mun_masterサーバからMUNクライアントに対して送信される、mun_masterサーバ認証結果.
Definition: MunStream.hpp:2312
static void DeleteClient(uint32 clientId, bool isUpdateStats)
クライアントの削除.
Definition: MunMasterDatabase.cpp:203
MUNクライアントからmun_masterサーバに対して送信される、ロビー通知パラメータ変更要求.
Definition: MunStream.hpp:3926
mun_roomサーバからmun_masterサーバに対して送信される、プレイヤーのルームログアウト処理結果.
Definition: MunStream.hpp:5078
static STREAM::ERRORCODE_ID RandomJoinRoom(MatchingDatabase *pMatchingDatabase, uint32 clientId, uint64 &roomId, MatchingPlayerInRoom &player, uint64 lobbyId, uint8 lobbyKind, uint32 maxPlayers, uint8 matchingMode, STREAM::KeyValue *pRoomParameters, uint16 roomParametersLen, std::string keyValueFilter, std::string &msg)
条件に一致するルームの中からランダムに選択して入室する.
Definition: MunMasterDatabase.cpp:515
mun_masterサーバのマッチングデータベース管理.
mun_masterサーバからmun_roomサーバに対して送信される、プレイヤーパラメータの変更通知.
Definition: MunStream.hpp:5380
static void RemoveRoomAll(MrsConnection pMunRoom)
mun_room サーバのロストに伴う、mun_room に所属するルーム情報の一括削除.
Definition: MunMasterDatabase.cpp:2638
mun_roomサーバからmun_masterサーバに対して送信される、mun_roomサーバのアドレス情報.
Definition: MunStream.hpp:4672
MUNのバージョン管理クラス.
Definition: MunVersion.hpp:19
mun_masterサーバからMUNクライアントに対して送信される、プレイヤー検索処理結果.
Definition: MunStream.hpp:4239
mun_masterサーバからMUNクライアントに対して送信される、ルーム作成処理結果.
Definition: MunStream.hpp:2701
MUNクライアントからmun_masterサーバに対して送信される、ルーム情報可視化設定変更要求.
Definition: MunStream.hpp:3536
static void UpdatedRoom(MatchingDatabase *pMatchingDatabase, MatchingRoom *pRoom)
ルーム情報更新後の処理.
Definition: MunMasterDatabase.cpp:793
マッチングルーム内プレイヤー情報.
Definition: MunMasterMatchingPlayerInRoom.hpp:16
MUNクライアントからmun_masterサーバに対して送信される、ルーム入室要求.
Definition: MunStream.hpp:2918
static void Recv_Master_Stats_Update(MrsConnection pMunProxy, uint64 proxyClientId)
MUNクライアントからのサーバ統計情報の取得要求.
Definition: MunMasterDatabase.cpp:2296
mun_masterサーバのロビー情報の制御.
Definition: MunMasterMatchingLobby.hpp:16
mun_masterサーバからMUNクライアントに対して送信される、サーバ統計情報.
Definition: MunStream.hpp:4322
static void Recv_Master_Room_UpdateLobbyParameters(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomUpdateLobbyParametersRequest &request)
MUNクライアントからのロビー通知パラメータ変更処理.
Definition: MunMasterDatabase.cpp:2181
mun_masterサーバからMUNクライアントに対して送信される、ルーム強制入室処理結果.
Definition: MunStream.hpp:2845
static void Recv_RoomMaster_SetWeight(MrsConnection pMunRoom, STREAM::RoomMasterSetWeightRequest &request)
mun_roomサーバからのTCP接続におけるサーバ負荷情報受信処理.
Definition: MunMasterDatabase.cpp:2481
static void Recv_RoomMaster_SetAddress(MrsConnection pMunRoom, STREAM::RoomMasterSetAddressRequest &request)
mun_roomサーバからのTCPクライアント接続情報受信処理.
Definition: MunMasterDatabase.cpp:2449
マッチングルーム情報.
Definition: MunMasterMatchingRoom.hpp:20
static void Recv_Master_Room_UpdatePlayerParameters(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomUpdatePlayerParametersRequest &request)
MUNクライアントからのプレイヤーパラメータ変更処理.
Definition: MunMasterDatabase.cpp:2308
static void AddRoomServerConnectInfo(uint64 roomUid, RoomServerConnectInfo &roomServerConnectInfo)
mun_roomサーバ接続情報を登録リストに追加する.
Definition: MunMasterDatabase.hpp:98
static void UpdateStats(MatchingDatabase *pMatchingDatabase)
サーバ統計情報の送信処理.
Definition: MunMasterDatabase.cpp:965
static uint64 GetRoomId(uint64 appRoomId)
アプリケーションID込みのルームIDからルームIDのみを抽出して取得.
Definition: MunMasterDatabase.hpp:130
static void LeaveRoom(MatchingDatabase *pMatchingDatabase, uint32 clientId)
ルーム退室処理.
Definition: MunMasterDatabase.cpp:569
static void DeleteRoomWeight(uint64 roomUid)
データベースからルームサーバの「重み」情報を削除する.
Definition: MunMasterDatabase.cpp:890
static void Recv_Master_UpdatePlayerName(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterUpdatePlayerNameRequest &request)
MUNクライアントからのプレイヤー名変更処理.
Definition: MunMasterDatabase.cpp:2370
static void Recv_Master_Room_UpdateRoomParameters(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomUpdateRoomParametersRequest &request)
MUNクライアントからのルームパラメータ変更処理.
Definition: MunMasterDatabase.cpp:2107
可変長テキスト.
Definition: MunStream.hpp:331
マッチング処理上におけるMUNクライアント情報.
Definition: MunMasterMatchingClient.hpp:15
mun_masterサーバのデータベース管理クラス.
Definition: MunMasterDatabase.hpp:25
static uint64 SelectRoomUid()
データベース内で最も「軽い」ルームサーバのユニークIDの取得.
Definition: MunMasterDatabase.cpp:926
mun_roomサーバからmun_masterサーバに対して送信される、プレイヤーのルームログイン要求.
Definition: MunStream.hpp:4839
static void Recv_Master_Room_Join(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomJoinRequest &request)
MUNクライアントからのルーム入室処理.
Definition: MunMasterDatabase.cpp:1573
MUNクライアントからmun_masterサーバに対して送信される、ルーム内プレイヤー人数の上限変更要求.
Definition: MunStream.hpp:3424
mun_masterサーバからMUNクライアントに対して送信される、条件付きランダムルーム入室処理結果.
Definition: MunStream.hpp:3252
static void Recv_Master_Room_UpdateIsOpen(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomUpdateIsOpenRequest &request)
MUNクライアントからのルーム入室可否設定変更処理.
Definition: MunMasterDatabase.cpp:2044
static void Recv_Master_Room_UpdateIsVisible(MrsConnection pMunProxy, uint64 proxyClientId, STREAM::MasterRoomUpdateIsVisibleRequest &request)
MUNクライアントからのルーム情報可視化設定変更処理.
Definition: MunMasterDatabase.cpp:1981
static RoomServerConnectInfo * GetRoomServerConnectInfo(uint64 roomUid)
mun_roomサーバ接続情報をを登録リストから取得する.
Definition: MunMasterDatabase.hpp:88
static void JoinedRoom(MatchingDatabase *pMatchingDatabase, uint64 lobbyId, uint64 roomId, bool roomIsVisible, MatchingPlayerInRoom &player)
ルーム入室後の処理.
Definition: MunMasterDatabase.cpp:546