Monobit Unity Networking ver.2.8.0 Server API Reference (C++)
MunMasterMatchingDatabase.hpp
Go to the documentation of this file.
1 
7 #ifndef __MUN_MASTER_MATCHING_DATABASE_HPP__
8 #define __MUN_MASTER_MATCHING_DATABASE_HPP__
9 
10 #include <vector>
11 #include <mrs.hpp>
12 #include <sqlite/SqliteAgent.hpp>
13 #include <stream/MunStream.hpp>
20 
25 {
26 protected:
28  SqliteAgent m_MatchingDB;
29 
32 
33 public:
38 
42  virtual ~MatchingDatabase();
43 
44 public:
49  bool InitDB();
50 
58  bool AddClient( uint32 clientId, std::string clientName, bool isUpdateLobbyList );
59 
64  void RemoveClient( uint32 clientId );
65 
71  MatchingClient GetClient( uint32 clientId );
72 
78  MatchingClient GetClient( std::string clientName );
79 
86  bool SetClientName( uint32 clientId, std::string clientName );
87 
92  uint32 GetClientNum();
93 
99  MatchingLobby GetLobby( uint64 lobbyId );
100 
105  void UpdateLobby( MatchingLobby& lobby );
106 
112  MatchingLobby SearchLobby( uint64 lobbyId );
113 
120  MatchingLobby SearchLobby( std::string lobbyName, uint8 lobbyKind );
121 
126  void SearchLobbies( std::vector<MatchingLobby>& lobbies );
127 
134  void SearchClientIds( std::vector<uint32>& clientIds, uint64 lobbyId, uint64 roomId );
135 
143  void SearchClientIds( std::vector<uint32>& clientIds, uint64 lobbyId, uint64 roomId, bool isUpdateLobbyList );
144 
150  void SearchClientIds( std::vector<uint32>& clientIds, bool isUpdateLobbyList );
151 
156  void SearchClientIds( std::vector<uint32>& clientIds );
157 
164  MatchingLobby CreateLobby( std::string lobbyName, uint8 lobbyKind );
165 
172  STREAM::ERRORCODE_ID JoinLobby( uint32 clientId, uint64 lobbyId );
173 
182  STREAM::ERRORCODE_ID ForceJoinLobby( uint32 clientId, MatchingLobby* pLobby, std::string lobbyName, uint8 lobbyKind );
183 
189  void LeaveLobby( uint32 clientId, uint64 lobbyId );
190 
196  MatchingRoom* GetRoom( uint64 roomId );
197 
203  MatchingRoom* GetRoom( std::string roomName );
204 
210  void SearchVisibleRooms( uint64 lobbyId, std::vector<MatchingRoom*>& rooms );
211 
228  STREAM::ERRORCODE_ID CreateRoom( uint64& roomId, std::string roomName, uint64 lobbyId, bool isVisible, bool isOpen, uint32 maxPlayers, STREAM::KeyValue* pRoomParameters, uint16 roomParametersLen, STREAM::Text* pLobbyParameters, uint16 lobbyParametersLen, uint64 roomUid, bool isNeedHostPlayer );
229 
238  STREAM::ERRORCODE_ID JoinRoom( uint32 clientId, uint64& roomId, MatchingPlayerInRoom& player, std::string roomName );
239 
258  STREAM::ERRORCODE_ID ForceJoinRoom( 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, uint64 roomUid, bool isNeedHostPlayer );
259 
275  STREAM::ERRORCODE_ID RandomJoinRoom( 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 );
276 
282  bool LeaveRoom( MatchingClient& client );
283 
292  bool UpdateRoom( uint64 roomId, bool isVisible, bool isOpen, uint32 maxPlayers );
293 
301  bool UpdateRoom( uint64 roomId, STREAM::KeyValue* pRoomParameters, uint16 roomParametersLen );
302 
310  bool UpdateRoom( uint64 roomId, STREAM::Text* pLobbyParameters, uint16 lobbyParametersLen );
311 
317  uint32 GetRoomCount( uint64 lobbyId );
318 
323  uint32 GetLobbyCountAll();
324 
329  uint32 GetRoomCountAll();
330 
336 
341  void GetOrderByPlayersRoom( std::vector<uint64>& roomIds );
342 
347  void ForceRemoveRoom(uint64 roomId);
348 };
349 
350 #endif /* __MUN_MASTER_MATCHING_DATABASE_HPP__ */
void SearchClientIds(std::vector< uint32 > &clientIds, uint64 lobbyId, uint64 roomId)
指定されたロビー/ルーム内に所属するクライアントIDリストの取得.
Definition: MunMasterMatchingDatabase.cpp:512
サーバ統計情報.
Definition: MunMasterMatchingStats.hpp:15
STREAM::ERRORCODE_ID ForceJoinRoom(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, uint64 roomUid, bool isNeedHostPlayer)
MUNクライアントをマッチングルームへ強制入室させる.
Definition: MunMasterMatchingDatabase.cpp:1160
uint32 GetRoomCount(uint64 lobbyId)
ロビーに所属するマッチングルーム数を取得.
Definition: MunMasterMatchingDatabase.cpp:1502
mun_masterサーバの統計情報の制御.
MatchingDatabase()
コンストラクタ.
Definition: MunMasterMatchingDatabase.cpp:17
MUNにおける通信データ情報.
MatchingRoom * GetRoom(uint64 roomId)
マッチングルーム情報の取得.
Definition: MunMasterMatchingDatabase.cpp:842
bool UpdateRoom(uint64 roomId, bool isVisible, bool isOpen, uint32 maxPlayers)
マッチングルームを更新する.
Definition: MunMasterMatchingDatabase.cpp:1367
mun_masterサーバのロビー情報の制御.
MatchingLobby CreateLobby(std::string lobbyName, uint8 lobbyKind)
ロビーの生成.
Definition: MunMasterMatchingDatabase.cpp:644
STREAM::ERRORCODE_ID RandomJoinRoom(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)
条件に一致するマッチングルームの中からランダムに選択してMUNクライアントを入室させる.
Definition: MunMasterMatchingDatabase.cpp:1207
STREAM::ERRORCODE_ID CreateRoom(uint64 &roomId, std::string roomName, uint64 lobbyId, bool isVisible, bool isOpen, uint32 maxPlayers, STREAM::KeyValue *pRoomParameters, uint16 roomParametersLen, STREAM::Text *pLobbyParameters, uint16 lobbyParametersLen, uint64 roomUid, bool isNeedHostPlayer)
マッチングルームを生成する.
Definition: MunMasterMatchingDatabase.cpp:914
任意のKey-Valueペア.
Definition: MunStream.hpp:602
bool InitDB()
データベースの初期化.
Definition: MunMasterMatchingDatabase.cpp:32
void SearchVisibleRooms(uint64 lobbyId, std::vector< MatchingRoom * > &rooms)
指定したロビーにルーム情報を通知しているマッチングルームリストの取得.
Definition: MunMasterMatchingDatabase.cpp:862
IndexManager< std::string, uint64, MatchingRoom > m_MatchingRoom
マッチングルームインデックスマネージャ.
Definition: MunMasterMatchingDatabase.hpp:31
STREAM::ERRORCODE_ID ForceJoinLobby(uint32 clientId, MatchingLobby *pLobby, std::string lobbyName, uint8 lobbyKind)
指定されたクライアントをロビーへ強制入室させる.
Definition: MunMasterMatchingDatabase.cpp:719
STREAM::ERRORCODE_ID JoinRoom(uint32 clientId, uint64 &roomId, MatchingPlayerInRoom &player, std::string roomName)
MUNクライアントをマッチングルームへ入室させる.
Definition: MunMasterMatchingDatabase.cpp:1034
ERRORCODE_ID
エラーコードID.
Definition: MunStream.hpp:159
uint32 GetRoomCountAll()
全ルーム数を取得.
Definition: MunMasterMatchingDatabase.cpp:1555
インデックス管理.
SqliteAgent m_MatchingDB
SQLiteデータベース管理モジュール.
Definition: MunMasterMatchingDatabase.hpp:28
virtual ~MatchingDatabase()
デストラクタ.
Definition: MunMasterMatchingDatabase.cpp:24
MatchingLobby GetLobby(uint64 lobbyId)
ロビー情報の取得.
Definition: MunMasterMatchingDatabase.cpp:303
MatchingStats GetStats()
サーバ統計情報を取得.
Definition: MunMasterMatchingDatabase.cpp:1579
void ForceRemoveRoom(uint64 roomId)
指定されたルームIDの情報を強制的に削除する
Definition: MunMasterMatchingDatabase.cpp:1670
MatchingClient GetClient(uint32 clientId)
マッチングルーム内のクライアント情報を取得する.
Definition: MunMasterMatchingDatabase.cpp:162
マッチングデータベース管理クラス.
Definition: MunMasterMatchingDatabase.hpp:24
uint32 GetClientNum()
マッチングルーム内のクライアント数を取得する.
Definition: MunMasterMatchingDatabase.cpp:274
void GetOrderByPlayersRoom(std::vector< uint64 > &roomIds)
マッチングルームIDについて、入室済みプレイヤー人数の少ない順に取得する.
Definition: MunMasterMatchingDatabase.cpp:1625
mun_masterサーバのマッチングルーム情報の制御.
bool LeaveRoom(MatchingClient &client)
MUNクライアントをマッチングルームから退室させる.
Definition: MunMasterMatchingDatabase.cpp:1263
マッチングルーム内プレイヤー情報.
Definition: MunMasterMatchingPlayerInRoom.hpp:16
mun_masterサーバのロビー情報の制御.
Definition: MunMasterMatchingLobby.hpp:16
mun_masterサーバのMUNクライアント情報の制御.
bool AddClient(uint32 clientId, std::string clientName, bool isUpdateLobbyList)
マッチングルームにクライアントを追加する.
Definition: MunMasterMatchingDatabase.cpp:112
void UpdateLobby(MatchingLobby &lobby)
ロビー情報の再取得.
Definition: MunMasterMatchingDatabase.cpp:344
マッチングルーム情報.
Definition: MunMasterMatchingRoom.hpp:20
uint32 GetLobbyCountAll()
全ロビー数を取得.
Definition: MunMasterMatchingDatabase.cpp:1531
mun_masterサーバのマッチングルーム内プレイヤー情報の制御.
void RemoveClient(uint32 clientId)
マッチングルームからクライアントを削除する.
Definition: MunMasterMatchingDatabase.cpp:135
bool SetClientName(uint32 clientId, std::string clientName)
マッチングルーム内のクライアント名を設定する.
Definition: MunMasterMatchingDatabase.cpp:243
可変長テキスト.
Definition: MunStream.hpp:331
マッチング処理上におけるMUNクライアント情報.
Definition: MunMasterMatchingClient.hpp:15
void SearchLobbies(std::vector< MatchingLobby > &lobbies)
ロビーリストの取得.
Definition: MunMasterMatchingDatabase.cpp:469
void LeaveLobby(uint32 clientId, uint64 lobbyId)
指定されたクライアントをロビーから退室させる.
Definition: MunMasterMatchingDatabase.cpp:759
STREAM::ERRORCODE_ID JoinLobby(uint32 clientId, uint64 lobbyId)
指定されたクライアントをロビーへ入室させる.
Definition: MunMasterMatchingDatabase.cpp:674
MatchingLobby SearchLobby(uint64 lobbyId)
指定したロビーIDを持つ、ロビー情報の検索.
Definition: MunMasterMatchingDatabase.cpp:386