Monobit Unity Networking ver.2.8.0 Server API Reference (C++)
MatchingDatabase Class Reference

マッチングデータベース管理クラス. More...

#include <MunMasterMatchingDatabase.hpp>

Collaboration diagram for MatchingDatabase:

Public Member Functions

 MatchingDatabase ()
 コンストラクタ.
 
virtual ~MatchingDatabase ()
 デストラクタ.
 
bool InitDB ()
 データベースの初期化. More...
 
bool AddClient (uint32 clientId, std::string clientName, bool isUpdateLobbyList)
 マッチングルームにクライアントを追加する. More...
 
void RemoveClient (uint32 clientId)
 マッチングルームからクライアントを削除する. More...
 
MatchingClient GetClient (uint32 clientId)
 マッチングルーム内のクライアント情報を取得する. More...
 
MatchingClient GetClient (std::string clientName)
 マッチングルーム内のクライアント情報を取得する. More...
 
bool SetClientName (uint32 clientId, std::string clientName)
 マッチングルーム内のクライアント名を設定する. More...
 
uint32 GetClientNum ()
 マッチングルーム内のクライアント数を取得する. More...
 
MatchingLobby GetLobby (uint64 lobbyId)
 ロビー情報の取得. More...
 
void UpdateLobby (MatchingLobby &lobby)
 ロビー情報の再取得. More...
 
MatchingLobby SearchLobby (uint64 lobbyId)
 指定したロビーIDを持つ、ロビー情報の検索. More...
 
MatchingLobby SearchLobby (std::string lobbyName, uint8 lobbyKind)
 指定したロビー名と種類を持つ、ロビー情報の検索. More...
 
void SearchLobbies (std::vector< MatchingLobby > &lobbies)
 ロビーリストの取得. More...
 
void SearchClientIds (std::vector< uint32 > &clientIds, uint64 lobbyId, uint64 roomId)
 指定されたロビー/ルーム内に所属するクライアントIDリストの取得. More...
 
void SearchClientIds (std::vector< uint32 > &clientIds, uint64 lobbyId, uint64 roomId, bool isUpdateLobbyList)
 指定されたロビー/ルーム内に所属するクライアントIDリストの取得. More...
 
void SearchClientIds (std::vector< uint32 > &clientIds, bool isUpdateLobbyList)
 指定されたロビーリスト更新フラグの設定値を指定しているクライアントIDリストの取得. More...
 
void SearchClientIds (std::vector< uint32 > &clientIds)
 クライアントIDリストの取得. More...
 
MatchingLobby CreateLobby (std::string lobbyName, uint8 lobbyKind)
 ロビーの生成. More...
 
STREAM::ERRORCODE_ID JoinLobby (uint32 clientId, uint64 lobbyId)
 指定されたクライアントをロビーへ入室させる. More...
 
STREAM::ERRORCODE_ID ForceJoinLobby (uint32 clientId, MatchingLobby *pLobby, std::string lobbyName, uint8 lobbyKind)
 指定されたクライアントをロビーへ強制入室させる. More...
 
void LeaveLobby (uint32 clientId, uint64 lobbyId)
 指定されたクライアントをロビーから退室させる. More...
 
MatchingRoomGetRoom (uint64 roomId)
 マッチングルーム情報の取得. More...
 
MatchingRoomGetRoom (std::string roomName)
 マッチングルーム情報の取得. More...
 
void SearchVisibleRooms (uint64 lobbyId, std::vector< MatchingRoom * > &rooms)
 指定したロビーにルーム情報を通知しているマッチングルームリストの取得. More...
 
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)
 マッチングルームを生成する. More...
 
STREAM::ERRORCODE_ID JoinRoom (uint32 clientId, uint64 &roomId, MatchingPlayerInRoom &player, std::string roomName)
 MUNクライアントをマッチングルームへ入室させる. More...
 
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クライアントをマッチングルームへ強制入室させる. More...
 
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クライアントを入室させる. More...
 
bool LeaveRoom (MatchingClient &client)
 MUNクライアントをマッチングルームから退室させる. More...
 
bool UpdateRoom (uint64 roomId, bool isVisible, bool isOpen, uint32 maxPlayers)
 マッチングルームを更新する. More...
 
bool UpdateRoom (uint64 roomId, STREAM::KeyValue *pRoomParameters, uint16 roomParametersLen)
 マッチングルームを更新する. More...
 
bool UpdateRoom (uint64 roomId, STREAM::Text *pLobbyParameters, uint16 lobbyParametersLen)
 マッチングルームを更新する. More...
 
uint32 GetRoomCount (uint64 lobbyId)
 ロビーに所属するマッチングルーム数を取得. More...
 
uint32 GetLobbyCountAll ()
 全ロビー数を取得. More...
 
uint32 GetRoomCountAll ()
 全ルーム数を取得. More...
 
MatchingStats GetStats ()
 サーバ統計情報を取得. More...
 
void GetOrderByPlayersRoom (std::vector< uint64 > &roomIds)
 マッチングルームIDについて、入室済みプレイヤー人数の少ない順に取得する. More...
 
void ForceRemoveRoom (uint64 roomId)
 指定されたルームIDの情報を強制的に削除する More...
 

Protected Attributes

SqliteAgent m_MatchingDB
 SQLiteデータベース管理モジュール. More...
 
IndexManager< std::string, uint64, MatchingRoomm_MatchingRoom
 マッチングルームインデックスマネージャ. More...
 

Detailed Description

マッチングデータベース管理クラス.

Member Function Documentation

bool MatchingDatabase::AddClient ( uint32  clientId,
std::string  clientName,
bool  isUpdateLobbyList 
)

マッチングルームにクライアントを追加する.

Parameters
clientIdクライアントID.
clientNameクライアント名.
isUpdateLobbyListロビーリストを更新するかどうかのフラグ.
Returns
追加に成功したら true、失敗したら false を返す。

Here is the caller graph for this function:

MatchingLobby MatchingDatabase::CreateLobby ( std::string  lobbyName,
uint8  lobbyKind 
)

ロビーの生成.

Parameters
lobbyNameロビー名.
lobbyKindロビーの種類.
Returns
ロビー情報を返す。

Here is the caller graph for this function:

STREAM::ERRORCODE_ID MatchingDatabase::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 
)

マッチングルームを生成する.

Parameters
roomId生成結果として得られるマッチングルームID.
roomNameマッチングルーム名.
lobbyId所属するロビーID.
isVisibleルーム情報をロビーに通知するかどうかのフラグ.
isOpen他プレイヤーのルーム入室を許可するかどうかのフラグ.
maxPlayersルームに入室可能なプレイヤー人数の上限(0であれば無制限).
pRoomParametersルームパラメータの先頭アドレス.
roomParametersLenpRoomParameters に含まれるルームパラメータの登録数.
pLobbyParametersロビー通知パラメータの先頭アドレス.
lobbyParametersLenpLobbyParameters に含まれるロビー通知パラメータの登録数.
roomUidmun_roomサーバ上の識別ユニークID.
isNeedHostPlayerホストプレイヤーが必要かどうかのフラグ.
Returns
実行結果のエラーコードを返す。
Parameters
roomId生成結果として得られるマッチングルームID.
roomNameマッチングルーム名.
lobbyId所属するロビーID.
isVisibleルーム情報をロビーに通知するかどうかのフラグ.
isOpen他プレイヤーのルーム入室を許可するかどうかのフラグ.
maxPlayersルームに入室可能なプレイヤー人数の上限(0であれば無制限).
pRoomParametersルームパラメータの先頭アドレス.
roomParametersLenpRoomParameters に含まれるルームパラメータの登録数.
pLobbyParametersロビー通知パラメータの先頭アドレス.
lobbyParametersLenpLobbyParameters に含まれるロビー通知パラメータの登録数.
roomUidmun_roomサーバ上の識別ユニークID.
isNeedHostPlayerホストプレイヤーが必要かどうかのフラグ.
Returns

Here is the call graph for this function:

Here is the caller graph for this function:

STREAM::ERRORCODE_ID MatchingDatabase::ForceJoinLobby ( uint32  clientId,
MatchingLobby pLobby,
std::string  lobbyName,
uint8  lobbyKind 
)

指定されたクライアントをロビーへ強制入室させる.

Parameters
clientId強制入室させるクライアントID.
pLobby強制入室させた結果として取得したロビー情報.
lobbyName強制入室させるロビー名.
lobbyKind強制入室させるロビーの種類.
Returns
実行結果のエラーコードを返す。

Here is the call graph for this function:

Here is the caller graph for this function:

STREAM::ERRORCODE_ID MatchingDatabase::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クライアントをマッチングルームへ強制入室させる.

Parameters
clientId入室させるMUNクライアントのID.
roomId入室結果として得られるマッチングルームID.
player入室結果として得られるルーム内プレイヤー情報.
roomNameマッチングルーム名.
lobbyId所属するロビーID.
isVisibleルーム情報をロビーに通知するかどうかのフラグ.
isOpen他プレイヤーのルーム入室を許可するかどうかのフラグ.
maxPlayersルームに入室可能なプレイヤー人数の上限(0であれば無制限).
pRoomParametersルームパラメータの先頭アドレス.
roomParametersLenpRoomParameters に含まれるルームパラメータの登録数.
pLobbyParametersロビー通知パラメータの先頭アドレス.
lobbyParametersLenpLobbyParameters に含まれるロビー通知パラメータの登録数.
roomUidmun_roomサーバ上の識別ユニークID.
isNeedHostPlayerホストプレイヤーが必要かどうかのフラグ.
Returns
実行結果のエラーコードを返す。

Here is the call graph for this function:

Here is the caller graph for this function:

void MatchingDatabase::ForceRemoveRoom ( uint64  roomId)

指定されたルームIDの情報を強制的に削除する

Parameters
roomId削除対象となるルームID.

Here is the call graph for this function:

Here is the caller graph for this function:

MatchingClient MatchingDatabase::GetClient ( uint32  clientId)

マッチングルーム内のクライアント情報を取得する.

Parameters
clientIdクライアントID.
Returns
マッチングルーム内のクライアント情報を返す。

Here is the caller graph for this function:

MatchingClient MatchingDatabase::GetClient ( std::string  clientName)

マッチングルーム内のクライアント情報を取得する.

Parameters
clientNameクライアント名.
Returns
マッチングルーム内のクライアント情報を返す。
uint32 MatchingDatabase::GetClientNum ( )

マッチングルーム内のクライアント数を取得する.

Returns
マッチングルーム内のクライアント数を返す。

Here is the caller graph for this function:

MatchingLobby MatchingDatabase::GetLobby ( uint64  lobbyId)

ロビー情報の取得.

Parameters
lobbyIdロビーID.
Returns
ロビー情報を返す。

Here is the caller graph for this function:

uint32 MatchingDatabase::GetLobbyCountAll ( )

全ロビー数を取得.

Returns
全ロビー数を返す。

Here is the caller graph for this function:

void MatchingDatabase::GetOrderByPlayersRoom ( std::vector< uint64 > &  roomIds)

マッチングルームIDについて、入室済みプレイヤー人数の少ない順に取得する.

Parameters
roomIds取得結果として得られたマッチングルームIDリスト.

Here is the caller graph for this function:

MatchingRoom * MatchingDatabase::GetRoom ( uint64  roomId)

マッチングルーム情報の取得.

Parameters
roomIdルームID.
Returns
マッチングルーム情報を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

MatchingRoom * MatchingDatabase::GetRoom ( std::string  roomName)

マッチングルーム情報の取得.

Parameters
roomNameルーム名.
Returns
マッチングルーム情報を返す。

Here is the call graph for this function:

uint32 MatchingDatabase::GetRoomCount ( uint64  lobbyId)

ロビーに所属するマッチングルーム数を取得.

Parameters
lobbyId所属するロビーID.
Returns
ロビーに所属するマッチングルーム数を返す。

Here is the caller graph for this function:

uint32 MatchingDatabase::GetRoomCountAll ( )

全ルーム数を取得.

Returns
全ルーム数を返す。

Here is the caller graph for this function:

MatchingStats MatchingDatabase::GetStats ( )

サーバ統計情報を取得.

Returns
サーバ統計情報を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

bool MatchingDatabase::InitDB ( )

データベースの初期化.

Returns
初期化に成功したら true、失敗したら false を返す。

Here is the caller graph for this function:

STREAM::ERRORCODE_ID MatchingDatabase::JoinLobby ( uint32  clientId,
uint64  lobbyId 
)

指定されたクライアントをロビーへ入室させる.

Parameters
clientId入室させるクライアントID.
lobbyId入室させるロビーID.
Returns
実行結果のエラーコードを返す。

Here is the caller graph for this function:

STREAM::ERRORCODE_ID MatchingDatabase::JoinRoom ( uint32  clientId,
uint64 &  roomId,
MatchingPlayerInRoom player,
std::string  roomName 
)

MUNクライアントをマッチングルームへ入室させる.

Parameters
clientId入室させるMUNクライアントのID.
roomId入室結果として得られるマッチングルームID.
player入室結果として得られるルーム内プレイヤー情報.
roomNameマッチングルーム名.
Returns
実行結果のエラーコードを返す。

Here is the call graph for this function:

Here is the caller graph for this function:

void MatchingDatabase::LeaveLobby ( uint32  clientId,
uint64  lobbyId 
)

指定されたクライアントをロビーから退室させる.

Parameters
clientId退室させるクライアントID.
lobbyId入室させるロビーID.

Here is the caller graph for this function:

bool MatchingDatabase::LeaveRoom ( MatchingClient client)

MUNクライアントをマッチングルームから退室させる.

Parameters
client退室させるMUNクライアント情報.
Returns
ルーム退室の結果、ルームが消失する場合には true、消失しない場合には false を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

STREAM::ERRORCODE_ID MatchingDatabase::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クライアントを入室させる.

Parameters
clientId入室させるMUNクライアントのID.
roomId入室結果として得られるマッチングルームID.
player入室結果として得られるルーム内プレイヤー情報.
lobbyId所属するロビーID.
lobbyKind所属するロビーの種類.
maxPlayersルームに入室可能なプレイヤー人数の上限(0であれば無制限).
matchingModeマッチメイキング方法.
pRoomParameters一致検索に使用するルームパラメータの先頭アドレス.
roomParametersLenpRoomParameters に含まれるルームパラメータの登録数.
keyValueFilter範囲検索に使用するクエリー照合パラメータ.
msg出力メッセージストリーム.
Returns
実行結果のエラーコードを返す。

Here is the call graph for this function:

Here is the caller graph for this function:

void MatchingDatabase::RemoveClient ( uint32  clientId)

マッチングルームからクライアントを削除する.

Parameters
clientIdクライアントID.

Here is the call graph for this function:

Here is the caller graph for this function:

void MatchingDatabase::SearchClientIds ( std::vector< uint32 > &  clientIds,
uint64  lobbyId,
uint64  roomId 
)

指定されたロビー/ルーム内に所属するクライアントIDリストの取得.

Parameters
clientIds実行することで取得したクライアントIDリスト.
lobbyIdクライアントIDの取得対象となるロビーID.
roomIdクライアントIDの取得対象となるルームID.

Here is the caller graph for this function:

void MatchingDatabase::SearchClientIds ( std::vector< uint32 > &  clientIds,
uint64  lobbyId,
uint64  roomId,
bool  isUpdateLobbyList 
)

指定されたロビー/ルーム内に所属するクライアントIDリストの取得.

Parameters
clientIds実行することで取得したクライアントIDリスト.
lobbyIdクライアントIDの取得対象となるロビーID.
roomIdクライアントIDの取得対象となるルームID.
isUpdateLobbyListロビーリストを更新するかどうかのフラグ.
void MatchingDatabase::SearchClientIds ( std::vector< uint32 > &  clientIds,
bool  isUpdateLobbyList 
)

指定されたロビーリスト更新フラグの設定値を指定しているクライアントIDリストの取得.

Parameters
clientIds実行することで取得したクライアントIDリスト.
isUpdateLobbyListロビーリストを更新するかどうかのフラグ.
void MatchingDatabase::SearchClientIds ( std::vector< uint32 > &  clientIds)

クライアントIDリストの取得.

Parameters
clientIds実行することで取得したクライアントIDリスト.
void MatchingDatabase::SearchLobbies ( std::vector< MatchingLobby > &  lobbies)

ロビーリストの取得.

Parameters
lobbies実行することで取得したロビーリスト.

Here is the caller graph for this function:

MatchingLobby MatchingDatabase::SearchLobby ( uint64  lobbyId)

指定したロビーIDを持つ、ロビー情報の検索.

Parameters
lobbyIdロビーID.
Returns
ロビー情報を返す。

Here is the caller graph for this function:

MatchingLobby MatchingDatabase::SearchLobby ( std::string  lobbyName,
uint8  lobbyKind 
)

指定したロビー名と種類を持つ、ロビー情報の検索.

Parameters
lobbyNameロビー名.
lobbyKindロビーの種類.
Returns
ロビー情報を返す。
void MatchingDatabase::SearchVisibleRooms ( uint64  lobbyId,
std::vector< MatchingRoom * > &  rooms 
)

指定したロビーにルーム情報を通知しているマッチングルームリストの取得.

Parameters
lobbyId抽出対象となるロビーID.
rooms取得結果として得られたマッチングルームリスト.

Here is the call graph for this function:

Here is the caller graph for this function:

bool MatchingDatabase::SetClientName ( uint32  clientId,
std::string  clientName 
)

マッチングルーム内のクライアント名を設定する.

Parameters
clientIdクライアントID.
clientNameクライアント名.
Returns
成功ならtrue、失敗ならfalseを返す。

Here is the caller graph for this function:

void MatchingDatabase::UpdateLobby ( MatchingLobby lobby)

ロビー情報の再取得.

Parameters
pLobbyロビー情報.
lobbyロビー情報.

Here is the call graph for this function:

Here is the caller graph for this function:

bool MatchingDatabase::UpdateRoom ( uint64  roomId,
bool  isVisible,
bool  isOpen,
uint32  maxPlayers 
)

マッチングルームを更新する.

Parameters
roomIdマッチングルームID.
isVisibleルーム情報をロビーに通知するかどうかのフラグ.
isOpen他プレイヤーのルーム入室を許可するかどうかのフラグ.
maxPlayersルームに入室可能なプレイヤー人数の上限(0であれば無制限).
Returns
更新に成功したら true、失敗したら false を返す。

Here is the call graph for this function:

Here is the caller graph for this function:

bool MatchingDatabase::UpdateRoom ( uint64  roomId,
STREAM::KeyValue pRoomParameters,
uint16  roomParametersLen 
)

マッチングルームを更新する.

Parameters
roomIdマッチングルームID.
pRoomParametersルームパラメータの先頭アドレス.
roomParametersLenpRoomParameters に含まれるルームパラメータの登録数.
Returns
更新に成功したら true、失敗したら false を返す。

Here is the call graph for this function:

bool MatchingDatabase::UpdateRoom ( uint64  roomId,
STREAM::Text pLobbyParameters,
uint16  lobbyParametersLen 
)

マッチングルームを更新する.

Parameters
roomIdマッチングルームID.
pLobbyParametersロビー通知パラメータの先頭アドレス.
lobbyParametersLenpLobbyParameters に含まれるロビー通知パラメータの登録数.
Returns
更新に成功したら true、失敗したら false を返す。

Here is the call graph for this function:

Member Data Documentation

SqliteAgent MatchingDatabase::m_MatchingDB
protected

SQLiteデータベース管理モジュール.

IndexManager<std::string, uint64, MatchingRoom> MatchingDatabase::m_MatchingRoom
protected

マッチングルームインデックスマネージャ.


The documentation for this class was generated from the following files: