Diarkis C++Client Library API Document
DiarkisRoomBase クラス

Room機能を簡単に利用するためにIDiarkisRoomクラスをラップする基本クラス [詳解]

#include <DiarkisRoomBase.h>

DiarkisRoomBase 連携図

公開メンバ関数

 DiarkisRoomBase ()
 DiarkisRoomBaseコンストラクタ [詳解]
 
virtual ~DiarkisRoomBase ()
 DiarkisRoomBaseのデストラクタ [詳解]
 
virtual void SetupTcpRoom (const std::shared_ptr< IDiarkisTcp > &tcp, const std::shared_ptr< LoggerFactory > &loggerFactory, bool bRetry)
 TCPプロトコルを使用してRoomをセットアップします。 [詳解]
 
virtual void SetupUdpRoom (const std::shared_ptr< IDiarkisUdp > &udp, const std::shared_ptr< LoggerFactory > &loggerFactory, const std::shared_ptr< DiarkisP2PBase > &p2pBase, bool bRetry)
 UDPプロトコルでRoomをセットアップします。 [詳解]
 
std::shared_ptr< IDiarkisRoomGetRoom ()
 IDiarkisRoomクラスへのポインタを取得します。 [詳解]
 
void SetJoinRoomID (const char *roomID)
 Room IDを設定します。 [詳解]
 
void SetJoinRoomID (const std::string &roomID)
 SetJoinRoomID()と同じです [詳解]
 
virtual void SendCreateRoom (uint16_t maxMembers, bool allowEmpty, bool join, uint16_t ttl, uint32_t interval)
 新しいRoomを作成します。 [詳解]
 
virtual void SendJoinRoom (const char *uid)
 ルームに参加します。 [詳解]
 
virtual void SendJoinRoom (const std::string &uid)
 SendJoinRoom(const char*)と同じです [詳解]
 
virtual void SendJoinRoom (const char *roomID, const char *uid)
 
virtual void SendJoinRoom (const std::string &roomID, const std::string &uid)
 SendJoinRoom(const char*, const char*)と同じです [詳解]
 
virtual void SendJoinRandomRoom (const char *uid, uint32_t maxMembers, uint16_t ttl, uint32_t interval, bool allowEmpty)
 利用可能な場合はRoomに参加し、そうでない場合は新しいRoomを作成します。 [詳解]
 
virtual void SendJoinRandomRoom (const std::string &uid, uint32_t maxMembers, uint16_t ttl, uint32_t interval, bool allowEmpty)
 SendJoinRandomRoom()と同じ [詳解]
 
virtual void SendBroadcastToRoom (const uint8_t *payload, size_t payloadSize, bool reliable)
 自分自身を含むすべてのRoomメンバーにメッセージを送信する。 [詳解]
 
virtual void SendBroadcastToRoom (const std::vector< uint8_t > &payload, bool reliable)
 SendBroadcastToRoom()と同じです [詳解]
 
virtual void SendMessageToRoom (const char **memberIDs, size_t memberIDsCount, const uint8_t *payload, size_t payloadSize, bool reliable)
 特定のメンバーにメッセージを送信します。 [詳解]
 
virtual void SendMessageToRoom (const std::vector< std::string > &memberIDs, const std::vector< uint8_t > &payload, bool reliable)
 SendMessageToRoom()と同じ [詳解]
 
virtual void SendRelay (const uint8_t *payload, size_t payloadSize, bool reliable)
 自分以外のRoomメンバーにメッセージを送信します。 [詳解]
 
virtual void SendRelay (const std::vector< uint8_t > &payload, bool reliable)
 SendRelay()と同じです [詳解]
 
virtual void SendRelayTo (const char **memberIDs, size_t memberIDsCount, const uint8_t *payload, size_t payloadSize, bool reliable)
 ルームに参加している特定のメンバーにメッセージを送信します。 [詳解]
 
virtual void SendRelayTo (const std::vector< std::string > &memberIDs, const std::vector< uint8_t > &payload, bool reliable)
 SendRelayTo()と同じです [詳解]
 
virtual void SendLeaveRoom (const char *uid)
 Roomを退出します。 [詳解]
 
virtual void SendLeaveRoom (const std::string &uid)
 SendLeaveRoom()と同じ [詳解]
 
virtual void SendFindByTypeRoom (uint32_t roomType, uint32_t limit)
 同じタイプのRoomを検索します。 [詳解]
 
virtual void SendRegisterRoom (uint32_t roomType, const char *roomName, const char *roomMetadata)
 参加しているRoomに関する追加情報を登録します。 [詳解]
 
virtual void SendRegisterRoom (uint32_t roomType, const std::string &roomName, const std::string &roomMetadata)
 SendRegisterRoom()と同じです [詳解]
 
virtual void SendMigrateRoom (void)
 ルームを別のサーバーに移動します。 [詳解]
 
virtual void SendGetOwnerID (void)
 RoomのオーナーのユーザーIDを取得します。 [詳解]
 
virtual void SendGetMemberIDs (void)
 Roomに参加しているメンバーのユーザーIDのリストを取得します。 [詳解]
 
virtual void SendGetNumberOfMembers (void)
 Room内のメンバーの数を取得します。 [詳解]
 
virtual void SendUpdateProperties (const std::unordered_map< std::string, std::vector< uint8_t >> &properties, bool sync=false)
 Roomのプロパティを設定します。 [詳解]
 
virtual void SendGetProperties (const char **propertyNames, size_t propertyNamesCount)
 Roomのプロパティを取得します。 [詳解]
 
virtual void SendGetProperties (const std::vector< std::string > &propertyNames)
 SendGetProperties()と同じです [詳解]
 
virtual void SendIncrementProperty (Diarkis::StdString propertyName, int64_t delta, bool sync)
 指定されたRoomのプロパティの値を増やしたり減らしたりします。 [詳解]
 
virtual void SendReserveRoom (const char **userIDs, size_t userIDsCount)
 ルームに参加するメンバーを予約します。 [詳解]
 
virtual void SendReserveRoom (const std::vector< std::string > &userIDs)
 SendReserveRoom()と同じです [詳解]
 
virtual void SendCancelReservationRoom (const char *cancelRoomID, const char **userIDs, size_t userIDsCount)
 Roomの予約をキャンセルします。 [詳解]
 
virtual void SendCancelReservationRoom (const std::string &cancelRoomID, const std::vector< std::string > &userIDs)
 SendCancelReservationRoom()と同じ [詳解]
 
virtual void SendChatMessage (const char *message)
 Roomメンバーにチャットメッセージを送信します。 [詳解]
 
virtual void SendChatMessage (const std::string &message)
 SendChatMessage()と同じです [詳解]
 
virtual void SendGetChatLog (void)
 過去のチャットメッセージを取得する。 [詳解]
 
virtual void SendStartP2PSync (uint8_t linkedClients=0)
 Roomに参加しているメンバーとのP2P通信を開始します。 [詳解]
 
virtual void SendUpdateObject (RoomObjectMode mode, const std::string &name, const std::unordered_map< std::string, double > &obj, bool reliable=true)
 Roomオブジェクトを更新します。 [詳解]
 
bool IsJoin ()
 Roomに参加しているかどうか [詳解]
 
bool IsFail ()
 ルームに参加に失敗したかどうか [詳解]
 
bool IsFind ()
 FindRoomsByType によって Room が見つかったかどうか [詳解]
 
bool IsNotFind ()
 FindRoomsByTypeによってRoomが見つからなかったかどうか [詳解]
 
bool IsMigrate ()
 Roomが移行中かどうか [詳解]
 
bool IsLeave ()
 あなたがRoomを去ったかどうか [詳解]
 
bool IsReserve ()
 Roomを予約したかどうか [詳解]
 
Diarkis::StdString GetRoomID (void)
 参加しているRoomのRoom IDを取得します。 [詳解]
 
Diarkis::StdString GetOwnerUID (void)
 参加しているRoomのオーナーのユーザーIDを取得します。 [詳解]
 
Diarkis::StdString GetOwnUID (void) const
 自分のユーザーIDを取得します。 [詳解]
 
void SetOwnUID (const char *uid)
 自分のユーザーIDを設定します。 [詳解]
 
void SetOwnUID (const std::string &uid)
 SetOwnUID()と同じです [詳解]
 
void GetRoomMembers (Diarkis::StdVector< Diarkis::StdString > &memberList)
 RoomのメンバーのユーザーIDを取得します。 [詳解]
 
const Diarkis::StdVector< Diarkis::StdString > & GetRoomMembers () const
 ルームのメンバーのユーザーIDを取得する。 [詳解]
 

限定公開メンバ関数

virtual void OnRoomCreation (const DiarkisRoomCreationEventArgs &e)
 Roomが作成されたときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnRoomJoin (const DiarkisRoomJoinEventArgs &e)
 Roomに参加した時に呼ばれるコールバック関数 [詳解]
 
virtual void OnRoomLeave (const DiarkisRoomSuccessEventArgs &e)
 Room を抜けた時に呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomMigrateStart (void)
 Room マイグレーションが開始されるときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnRoomMigrateComplete (const DiarkisRoomMigrateCompleteEventArgs &e)
 Roomの移行が完了したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomMemberJoin (const DiarkisPayloadEventArgs &e)
 別のクライアントがRoomに参加したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomMemberLeave (const DiarkisPayloadEventArgs &e)
 RoomメンバーがRoomを退出するときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomUpdateProperties (const DiarkisRoomSuccessEventArgs &e)
 UpdatePropertiesでプロパティが更新されるときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnRoomGetProperties (const DiarkisRoomPropertiesEventArgs &e)
 GetPropertiesでプロパティが取得されたときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnRoomUpdateSyncProperties (const DiarkisRoomPropertiesEventArgs &e)
 UpdateProperties でプロパティが更新されたときに呼び出されるコールバック関数です。 [詳解]
 
virtual void OnRoomIncrementProperty (const DiarkisRoomIncrementPropertyEventArgs &e)
 IncrementPropertyでプロパティが変更されたときに呼び出されるコールバック関数です。 [詳解]
 
virtual void OnRoomIncrementPropertySync (const DiarkisRoomIncrementPropertySyncEventArgs &e)
 
virtual void OnRoomGetOwnerID (const DiarkisRoomGetOwnerIDEventArgs &e)
 参加中のRoomオーナーのユーザーIDが取得されたときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomMemberIDs (const DiarkisRoomMemberIDsEventArgs &e)
 参加しているRoomメンバーのユーザーIDを取得するために呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomNumberOfMembers (const DiarkisRoomNumberOfMembersEventArgs &e)
 Room内のメンバー数を取得するために呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomOwnerChange (const DiarkisRoomGetOwnerIDEventArgs &e)
 Roomの所有者が変更された時に呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomMemberBroadcast (const DiarkisPayloadEventArgs &e)
 ブロードキャストメッセージを受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomMemberMessage (const DiarkisPayloadEventArgs &e)
 MessageToでメッセージを受信した時に呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomRelay (const DiarkisPayloadEventArgs &e)
 Relayからメッセージを受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomRelayTo (const DiarkisPayloadEventArgs &e)
 RelayToによってメッセージを受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomRegister (const DiarkisRoomPayloadEventArgs &e)
 参加中のRoomに追加情報が登録されたときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomFindByType (const DiarkisRoomFindByTypeEventArgs &e)
 FindRoomsByTypeの検索結果を受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomReserve (const DiarkisRoomPayloadEventArgs &e)
 Reserveに対する応答を受け取った時に呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomCancelReserve (const DiarkisRoomPayloadEventArgs &e)
 CancelReservationへの応答を受信した時に呼び出されるコールバック関数 [詳解]
 
virtual void OnChatSyncResponse (const DiarkisRoomPayloadEventArgs &e)
 チャット送信の応答を受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnChatSync (const DiarkisRoomChatEventArgs &e)
 チャットを受信した際に呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomChatLog (const DiarkisRoomChatLogEventArgs &e)
 GetChatLogの応答を受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnStartP2PSync (const DiarkisP2PEventArgs &e)
 StartP2PSyncプッシュ通知を受信したときに呼び出されるコールバック関数 [詳解]
 
virtual void OnRoomObjectUpdate (const DiarkisRoomObjectUpdateEventArgs &e)
 UpdateObject プッシュが受信されたときに呼び出されるコールバックイベント [詳解]
 
virtual void OnRoomObjectUpdateResponse (const DiarkisRoomObjectUpdateResponseEventArgs &e)
 Roomオブジェクトの更新に対する応答が受信されたときに呼び出されるコールバックイベントです。 [詳解]
 
virtual void OnOffline ()
 サーバーがシャットダウンの準備ができているときに呼び出されるコールバックイベント [詳解]
 

限定公開変数類

std::shared_ptr< IDiarkisTcptcp_
 IDiarkisTcpクラスへのポインタ [詳解]
 
std::shared_ptr< IDiarkisUdpudp_
 IDiarkisUdpクラスへのポインタ [詳解]
 
std::shared_ptr< IDiarkisRoomroom_
 IDiarkisRoom クラスへのポインター [詳解]
 
std::shared_ptr< DiarkisP2PBasep2pBase_
 DiarkisP2PBaseクラスへのポインタ [詳解]
 
std::shared_ptr< IDiarkisLoggerlogger_
 IDiarkisLoggerクラスへのポインタ [詳解]
 
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
 ラムダ関数のリスト [詳解]
 
Diarkis::StdString roomID_
 参加しているRoomのRoom ID [詳解]
 
ConnectState roomConnect_
 Roomの状態 [詳解]
 
std::recursive_mutex list_mutex_
 roomMemberIDsのミューテックス [詳解]
 
Diarkis::StdVector< Diarkis::StdStringroomMemberIDs_
 RoomメンバーのユーザーIDのリスト [詳解]
 
Diarkis::StdString ownUID_
 自分のユーザーID [詳解]
 
Diarkis::StdString ownerID_
 RoomオーナーのユーザーID [詳解]
 
int64_t createAtServer_
 現在いるRoomがサーバー上で作成された時間 [詳解]
 
bool bReserved_
 あなたがRoomを予約したかどうか [詳解]
 

詳解

Room機能を簡単に利用するためにIDiarkisRoomクラスをラップする基本クラス

構築子と解体子

◆ DiarkisRoomBase()

DiarkisRoomBase::DiarkisRoomBase ( )

DiarkisRoomBaseコンストラクタ

呼び出し関係図:

◆ ~DiarkisRoomBase()

DiarkisRoomBase::~DiarkisRoomBase ( )
virtual

DiarkisRoomBaseのデストラクタ

関数詳解

◆ SetupTcpRoom()

void DiarkisRoomBase::SetupTcpRoom ( const std::shared_ptr< IDiarkisTcp > &  tcp,
const std::shared_ptr< LoggerFactory > &  loggerFactory,
bool  bRetry 
)
virtual

TCPプロトコルを使用してRoomをセットアップします。

ロガーとコールバック関数を登録します。

引数
[in]tcpIDiarkisTcpクラスへのポインタ
[in]loggerFactoryロガークラスへのポインタ
[in]bRetryRoomに参加しようと失敗した後に再接続する場合はtrueでこの関数を呼び出します。最初の呼び出しはfalseでなければなりません。
呼び出し関係図:

◆ SetupUdpRoom()

void DiarkisRoomBase::SetupUdpRoom ( const std::shared_ptr< IDiarkisUdp > &  udp,
const std::shared_ptr< LoggerFactory > &  loggerFactory,
const std::shared_ptr< DiarkisP2PBase > &  p2pBase,
bool  bRetry 
)
virtual

UDPプロトコルでRoomをセットアップします。

ロガーとコールバック関数を登録します。

引数
[in]udpIDiarkisUdpクラスへのポインタ
[in]loggerFactoryクライアントライブラリ用のRoomログ
[in]p2pBaseDiarkisP2PBaseクラスへのポインタ
[in]bRetryRoomに参加する際に失敗した後の再接続時にtrueでこの関数を呼び出します。最初の呼び出しはfalseである必要があります。
呼び出し関係図:

◆ GetRoom()

std::shared_ptr< IDiarkisRoom > DiarkisRoomBase::GetRoom ( )

IDiarkisRoomクラスへのポインタを取得します。

◆ SetJoinRoomID() [1/2]

void DiarkisRoomBase::SetJoinRoomID ( const char *  roomID)

Room IDを設定します。

引数
[in]roomID設定するRoom ID
被呼び出し関係図:

◆ SetJoinRoomID() [2/2]

void DiarkisRoomBase::SetJoinRoomID ( const std::string &  roomID)

SetJoinRoomID()と同じです

呼び出し関係図:

◆ SendCreateRoom()

void DiarkisRoomBase::SendCreateRoom ( uint16_t  maxMembers,
bool  allowEmpty,
bool  join,
uint16_t  ttl,
uint32_t  interval 
)
virtual

新しいRoomを作成します。

GetCreateEvent() で登録されたコールバックイベント(たとえば RoomCreation)がトリガーされます。

引数
[in]maxMembers作成されるRoomに参加できるクライアントの最大数。
[in]allowEmptyクライアントが一人も参加していなくてもRoomを保持するかどうかを決定します。
[in]join作成後にRoomに参加するかどうかを決定します。
true = 作成後にRoomに参加します。サーバーからJoinレスポンスは送信されません。
false = Roomを作成のみします。Roomに参加する場合は別途Joinを行う必要があります。
[in]ttl空になった後のRoomの期間を秒単位で指定します。allowEmptyにtrueが指定されている場合のみ使用されます。
[in]intervalサーバーがBroadcastメッセージなどを処理する間隔をミリ秒単位で指定します。
intervalの値が大きい場合、サーバーの負荷が軽減されますが、メッセージの受信に遅延が生じます。intervalの値が小さい場合、
サーバーの負荷が増加しますが、メッセージはサーバーから直ちに送信されます。
デフォルト値は200ミリ秒です。
呼び出し関係図:

◆ SendJoinRoom() [1/4]

void DiarkisRoomBase::SendJoinRoom ( const char *  uid)
virtual

ルームに参加します。

GetJoinEvent() で登録したコールバックイベント(例:OnRoomJoin)がトリガーされます。
ルームのメンバーに関連する GetMemberJoinEvent() で登録したコールバックイベント(例:OnRoomMemberJoin)がトリガーされます。 uid で指定したユーザー ID は、コールバックイベントから受け取ることができます。

引数
[in]uidあなたのユーザー ID
被呼び出し関係図:

◆ SendJoinRoom() [2/4]

void DiarkisRoomBase::SendJoinRoom ( const std::string &  uid)
virtual

SendJoinRoom(const char*)と同じです

呼び出し関係図:

◆ SendJoinRoom() [3/4]

void DiarkisRoomBase::SendJoinRoom ( const char *  roomID,
const char *  uid 
)
virtual
呼び出し関係図:

◆ SendJoinRoom() [4/4]

void DiarkisRoomBase::SendJoinRoom ( const std::string &  roomID,
const std::string &  uid 
)
virtual

SendJoinRoom(const char*, const char*)と同じです

呼び出し関係図:

◆ SendJoinRandomRoom() [1/2]

void DiarkisRoomBase::SendJoinRandomRoom ( const char *  uid,
uint32_t  maxMembers,
uint16_t  ttl,
uint32_t  interval,
bool  allowEmpty 
)
virtual

利用可能な場合はRoomに参加し、そうでない場合は新しいRoomを作成します。

新しいRoomが作成されると、GetCreateEvent()で登録されたコールバックイベント(例:OnRoomCreation)と
GetJoinEvent()で登録されたコールバックイベント(例:OnRoomJoin)がトリガされます。
既存のRoomに参加する際には、GetJoinEvent()で登録されたコールバックイベントのみがトリガされます。

引数
[in]uidあなたのユーザーID
[in]maxMembers作成されるRoomに参加できるクライアントの最大数。
[in]ttlRoomが空になってからの秒数を、allowEmptyがtrueに設定されている場合にのみ使用。
[in]intervalサーバーがメッセージを処理する間隔をミリ秒単位で指定します。
メッセージは、サーバーで指定された間隔時間ごとにまとめて送信されます。
intervalの値が大きいと、サーバー負荷が軽減されますが、メッセージの受信に遅延が生じます。
intervalの値が小さいと、サーバー負荷が増加しますが、メッセージはサーバーから直ちに送信されます。
デフォルト値は200 msです。
[in]allowEmpty誰も参加していない場合でもクライアントがRoomを維持するかどうかを決定します。
呼び出し関係図:
被呼び出し関係図:

◆ SendJoinRandomRoom() [2/2]

void DiarkisRoomBase::SendJoinRandomRoom ( const std::string &  uid,
uint32_t  maxMembers,
uint16_t  ttl,
uint32_t  interval,
bool  allowEmpty 
)
virtual

SendJoinRandomRoom()と同じ

呼び出し関係図:

◆ SendBroadcastToRoom() [1/2]

void DiarkisRoomBase::SendBroadcastToRoom ( const uint8_t *  payload,
size_t  payloadSize,
bool  reliable 
)
virtual

自分自身を含むすべてのRoomメンバーにメッセージを送信する。

GetMemberBroadcastEvent() で登録されたコールバックイベント(例:OnRoomMemberBroadcast)をトリガーします。

引数
[in]payload送信するメッセージ
[in]payloadSizeペイロードの長さ
[in]reliableメッセージを信頼性のある通信(RUDP)経由で送信するかどうかを決定します;TCPプロトコルでは無視されます。
呼び出し関係図:
被呼び出し関係図:

◆ SendBroadcastToRoom() [2/2]

void DiarkisRoomBase::SendBroadcastToRoom ( const std::vector< uint8_t > &  payload,
bool  reliable 
)
virtual

SendBroadcastToRoom()と同じです

呼び出し関係図:

◆ SendMessageToRoom() [1/2]

void DiarkisRoomBase::SendMessageToRoom ( const char **  memberIDs,
size_t  memberIDsCount,
const uint8_t *  payload,
size_t  payloadSize,
bool  reliable 
)
virtual

特定のメンバーにメッセージを送信します。

GetMemberMessageEvent() で登録されたコールバックイベント(例:OnRoomMemberMessage)がトリガーされます。

引数
[in]memberIDs送信するメンバーのユーザーIDのリスト
[in]memberIDsCountmemberIDの数
[in]payload送信するメッセージ
[in]payloadSizeペイロードの長さ
[in]reliableメッセージが信頼性のある通信(RUDP)を介して送信されるかどうかを決定します。TCPプロトコルの場合は無視されます。
呼び出し関係図:
被呼び出し関係図:

◆ SendMessageToRoom() [2/2]

void DiarkisRoomBase::SendMessageToRoom ( const std::vector< std::string > &  memberIDs,
const std::vector< uint8_t > &  payload,
bool  reliable 
)
virtual

SendMessageToRoom()と同じ

呼び出し関係図:

◆ SendRelay() [1/2]

void DiarkisRoomBase::SendRelay ( const uint8_t *  payload,
size_t  payloadSize,
bool  reliable 
)
virtual

自分以外のRoomメンバーにメッセージを送信します。

ブロードキャストとは異なり、メッセージはサーバーによってコンパイルされません。
GetRelayEvent()で登録されたコールバックイベント(例:OnRelay)がトリガーされます。

引数
[in]payload送信するメッセージ
[in]payloadSizeペイロードの長さ
[in]reliableメッセージが信頼性のある通信(RUDP)を介して送信されるかどうかを決定します。TCPプロトコルには無視されます。
呼び出し関係図:
被呼び出し関係図:

◆ SendRelay() [2/2]

void DiarkisRoomBase::SendRelay ( const std::vector< uint8_t > &  payload,
bool  reliable 
)
virtual

SendRelay()と同じです

呼び出し関係図:

◆ SendRelayTo() [1/2]

void DiarkisRoomBase::SendRelayTo ( const char **  memberIDs,
size_t  memberIDsCount,
const uint8_t *  payload,
size_t  payloadSize,
bool  reliable 
)
virtual

ルームに参加している特定のメンバーにメッセージを送信します。

MessageToとは異なり、メッセージはサーバーによってコンパイルされません。
GetRelayToEvent()で登録されたコールバックイベント(例:OnRelayTo)がトリガーされます。

引数
[in]memberIDs送信するメンバーのユーザーIDのリスト
[in]memberIDsCountmemberIDの数
[in]payload送信するメッセージ
[in]payloadSizeペイロードの長さ
[in]reliableメッセージが信頼性のある通信(RUDP)を介して送信されるかどうかを決定します;TCPプロトコルでは無視されます。
呼び出し関係図:
被呼び出し関係図:

◆ SendRelayTo() [2/2]

void DiarkisRoomBase::SendRelayTo ( const std::vector< std::string > &  memberIDs,
const std::vector< uint8_t > &  payload,
bool  reliable 
)
virtual

SendRelayTo()と同じです

呼び出し関係図:

◆ SendLeaveRoom() [1/2]

void DiarkisRoomBase::SendLeaveRoom ( const char *  uid)
virtual

Roomを退出します。

GetLeaveEvent()で登録されたコールバックイベント(例:OnRoomLeave)がトリガーされます。
ルームからの退出が成功した場合、GetMemberLeaveEvent()で登録されたコールバックイベント(例:OnRoomMemberLeave)が
Roomの各メンバーでトリガーされます。

引数
[in]uid自分のユーザーID
呼び出し関係図:
被呼び出し関係図:

◆ SendLeaveRoom() [2/2]

void DiarkisRoomBase::SendLeaveRoom ( const std::string &  uid)
virtual

SendLeaveRoom()と同じ

呼び出し関係図:

◆ SendFindByTypeRoom()

void DiarkisRoomBase::SendFindByTypeRoom ( uint32_t  roomType,
uint32_t  limit 
)
virtual

同じタイプのRoomを検索します。

GetFindByTypeEvnet()で登録されたコールバックイベント(例:OnRoomFindByType)がトリガーされます。
コールバックイベントでは、検索結果としてRoomのリストを受け取ることができます。

引数
[in]roomType検索するRoomのタイプ
[in]limit検索結果のリスト内のRoomの最大数
呼び出し関係図:

◆ SendRegisterRoom() [1/2]

void DiarkisRoomBase::SendRegisterRoom ( uint32_t  roomType,
const char *  roomName,
const char *  roomMetadata 
)
virtual

参加しているRoomに関する追加情報を登録します。

FindRoomsByTypeでのRoomの検索に影響を与えます。

引数
[in]roomTypeRoomの種類
[in]roomNameRoomの名前
[in]roomMetadataRoomの拡張文字列
呼び出し関係図:
被呼び出し関係図:

◆ SendRegisterRoom() [2/2]

void DiarkisRoomBase::SendRegisterRoom ( uint32_t  roomType,
const std::string &  roomName,
const std::string &  roomMetadata 
)
virtual

SendRegisterRoom()と同じです

呼び出し関係図:

◆ SendMigrateRoom()

void DiarkisRoomBase::SendMigrateRoom ( void  )
virtual

ルームを別のサーバーに移動します。

ルームのオーナーだけがこの関数を呼び出すことができます。
成功補には、サーバーからルームの各メンバーに通知が送信され、
GetMigrateEvent()(例:OnRoomMigrate)で登録されたコールバックイベントがトリガーされます。
ライブラリは内部的に現在参加しているルームから離れて、新しいルームに参加します。

呼び出し関係図:

◆ SendGetOwnerID()

void DiarkisRoomBase::SendGetOwnerID ( void  )
virtual

RoomのオーナーのユーザーIDを取得します。

GetOwnerIDEvent()で登録されたコールバックイベント(例:OnGetOwnerID)がトリガーされます。

◆ SendGetMemberIDs()

void DiarkisRoomBase::SendGetMemberIDs ( void  )
virtual

Roomに参加しているメンバーのユーザーIDのリストを取得します。

GetMemberIDSEvent() で登録されたコールバックイベント(例:OnRoomMemberIDs)がトリガーされます。

被呼び出し関係図:

◆ SendGetNumberOfMembers()

void DiarkisRoomBase::SendGetNumberOfMembers ( void  )
virtual

Room内のメンバーの数を取得します。

GetNumberOfMembersEvent()で登録されたコールバックイベント(例:OnRoomNumberOfMembers)がトリガーされます。

◆ SendUpdateProperties()

void DiarkisRoomBase::SendUpdateProperties ( const std::unordered_map< std::string, std::vector< uint8_t >> &  properties,
bool  sync = false 
)
virtual

Roomのプロパティを設定します。

GetUpdatePropertiesEvent()で登録されたコールバックイベント(例:OnRoomUpdateProperties)がトリガーされます。

引数
[in]properties登録するプロパティとデータを指定します。
[in]sync他のクライアントに通知されるかどうかを決定します。
呼び出し関係図:

◆ SendGetProperties() [1/2]

void DiarkisRoomBase::SendGetProperties ( const char **  propertyNames,
size_t  propertyNamesCount 
)
virtual

Roomのプロパティを取得します。

GetGetPropertiesEvent()で登録されたコールバックイベント(例:OnRoomGetProperties)がトリガーされます。

引数
[in]propertyNames取得するプロパティの名前を指定します。
[in]propertyNamesCountプロパティ名の数
呼び出し関係図:
被呼び出し関係図:

◆ SendGetProperties() [2/2]

void DiarkisRoomBase::SendGetProperties ( const std::vector< std::string > &  propertyNames)
virtual

SendGetProperties()と同じです

呼び出し関係図:

◆ SendIncrementProperty()

void DiarkisRoomBase::SendIncrementProperty ( Diarkis::StdString  propertyName,
int64_t  delta,
bool  sync 
)
virtual

指定されたRoomのプロパティの値を増やしたり減らしたりします。

GetIncrementPropertyEvent() で登録されたコールバックイベント(例:OnRoomIncrementProperty)がトリガーされます。

引数
[in]propertyName増やすもしくは減らすプロパティの名前。
[in]delta増やすもしくは減らす値のサイズ
[in]sync他のクライアントに通知されるかどうかを決定します。 trueの場合、GetIncrementPropertySyncEvent() で登録されたコールバックイベントがトリガーされます。
呼び出し関係図:

◆ SendReserveRoom() [1/2]

void DiarkisRoomBase::SendReserveRoom ( const char **  userIDs,
size_t  userIDsCount 
)
virtual

ルームに参加するメンバーを予約します。

GetReserveEvent() で登録されたコールバックイベント(例:OnRoomReserve)がトリガーされます。

引数
[in]userIDs予約するメンバーのユーザーIDのリスト。
[in]userIDsCountユーザーIDの数
呼び出し関係図:
被呼び出し関係図:

◆ SendReserveRoom() [2/2]

void DiarkisRoomBase::SendReserveRoom ( const std::vector< std::string > &  userIDs)
virtual

SendReserveRoom()と同じです

呼び出し関係図:

◆ SendCancelReservationRoom() [1/2]

void DiarkisRoomBase::SendCancelReservationRoom ( const char *  cancelRoomID,
const char **  userIDs,
size_t  userIDsCount 
)
virtual

Roomの予約をキャンセルします。

GetCancelReservationEvent()で登録されたコールバックイベント(例:OnRoomReserve)がトリガーされます。

引数
[in]cancelRoomIDキャンセルするRoomのRoom ID
[in]userIDsキャンセルするメンバーのユーザーIDのリスト
[in]userIDsCountユーザーIDの数
呼び出し関係図:
被呼び出し関係図:

◆ SendCancelReservationRoom() [2/2]

void DiarkisRoomBase::SendCancelReservationRoom ( const std::string &  cancelRoomID,
const std::vector< std::string > &  userIDs 
)
virtual

SendCancelReservationRoom()と同じ

呼び出し関係図:

◆ SendChatMessage() [1/2]

void DiarkisRoomBase::SendChatMessage ( const char *  message)
virtual

Roomメンバーにチャットメッセージを送信します。

メッセージはサーバーに保存され、過去のメッセージはGetChatLog()を使用して取得することができます。
この関数を実行するクライアントは、GetChatSyncResponseEvent()で登録されているコールバックイベント(例:OnRoomResponseSync)をトリガーします。
メンバーは、GetChatSyncEvent()で登録されているコールバックイベント(例:OnRoomChatSync)をトリガーします。

引数
[in]message送信するメッセージ
呼び出し関係図:
被呼び出し関係図:

◆ SendChatMessage() [2/2]

void DiarkisRoomBase::SendChatMessage ( const std::string &  message)
virtual

SendChatMessage()と同じです

呼び出し関係図:

◆ SendGetChatLog()

void DiarkisRoomBase::SendGetChatLog ( void  )
virtual

過去のチャットメッセージを取得する。

GetChatLogEvent() で登録されたコールバックイベント(例: OnRoomChatLog)が発生します。

呼び出し関係図:

◆ SendStartP2PSync()

void DiarkisRoomBase::SendStartP2PSync ( uint8_t  linkedClients = 0)
virtual

Roomに参加しているメンバーとのP2P通信を開始します。

GetStartP2PSyncEvent()で登録されたコールバックイベント(例:OnStartP2PSync)をトリガーします。
コールバックイベントでピアアドレスのリストを受け取ります。
この関数はRoomのメンバーのうちの1人だけが実行する必要があります。

引数
[in]linkedClientsP2P接続を確立するクライアントの数を指定します。
0 = マッチしたメンバー全員のアドレスを受け取ります。
n = マッチしたメンバーの中からn人のランダムに選択されたメンバーのアドレスを受け取ります。

◆ SendUpdateObject()

void DiarkisRoomBase::SendUpdateObject ( RoomObjectMode  mode,
const std::string &  name,
const std::unordered_map< std::string, double > &  obj,
bool  reliable = true 
)
virtual

Roomオブジェクトを更新します。

成功した場合、GetObjectUpdateEvent() で登録されたコールバックイベント(例:OnRoomObjectUpdate)がトリガーされます。
通知は、自分を含むRoomのすべてのメンバーに送信されます。

引数
[in]modeオブジェクトを操作するモード。
[in]nameオブジェクトの名前
[in]objキーと値のリストでオブジェクトを指定します。
例:obj["x"] = 123.4;
例:obj["y"] = 567.8;
例:obj["hp"] = 300.0;
mode が OBJ_DEL_MODE の場合、このパラメータは使用されません(対象のオブジェクトは削除されるため)。
[in]reliable信頼性のある通信(RUDP経由)で送信するかどうかを決定します。TCPプロトコルでは無視されます。
呼び出し関係図:

◆ IsJoin()

bool DiarkisRoomBase::IsJoin ( )

Roomに参加しているかどうか

◆ IsFail()

bool DiarkisRoomBase::IsFail ( )

ルームに参加に失敗したかどうか

◆ IsFind()

bool DiarkisRoomBase::IsFind ( )

FindRoomsByType によって Room が見つかったかどうか

◆ IsNotFind()

bool DiarkisRoomBase::IsNotFind ( )

FindRoomsByTypeによってRoomが見つからなかったかどうか

◆ IsMigrate()

bool DiarkisRoomBase::IsMigrate ( )

Roomが移行中かどうか

◆ IsLeave()

bool DiarkisRoomBase::IsLeave ( )

あなたがRoomを去ったかどうか

◆ IsReserve()

bool DiarkisRoomBase::IsReserve ( )

Roomを予約したかどうか

◆ GetRoomID()

Diarkis::StdString DiarkisRoomBase::GetRoomID ( void  )

参加しているRoomのRoom IDを取得します。

◆ GetOwnerUID()

Diarkis::StdString DiarkisRoomBase::GetOwnerUID ( void  )

参加しているRoomのオーナーのユーザーIDを取得します。

◆ GetOwnUID()

Diarkis::StdString DiarkisRoomBase::GetOwnUID ( void  ) const

自分のユーザーIDを取得します。

◆ SetOwnUID() [1/2]

void DiarkisRoomBase::SetOwnUID ( const char *  uid)

自分のユーザーIDを設定します。

引数
[in]uidユーザーID
被呼び出し関係図:

◆ SetOwnUID() [2/2]

void DiarkisRoomBase::SetOwnUID ( const std::string &  uid)

SetOwnUID()と同じです

呼び出し関係図:

◆ GetRoomMembers() [1/2]

void DiarkisRoomBase::GetRoomMembers ( Diarkis::StdVector< Diarkis::StdString > &  memberList)

RoomのメンバーのユーザーIDを取得します。

引数
[in]memberList結果を書き込む配列

◆ GetRoomMembers() [2/2]

const Diarkis::StdVector< Diarkis::StdString > & DiarkisRoomBase::GetRoomMembers ( ) const

ルームのメンバーのユーザーIDを取得する。

◆ OnRoomCreation()

void DiarkisRoomBase::OnRoomCreation ( const DiarkisRoomCreationEventArgs e)
protectedvirtual

Roomが作成されたときに呼び出されるコールバック関数。

サーバーからRoom作成の応答を受け取ったときに呼び出されます。

呼び出し関係図:

◆ OnRoomJoin()

void DiarkisRoomBase::OnRoomJoin ( const DiarkisRoomJoinEventArgs e)
protectedvirtual

Roomに参加した時に呼ばれるコールバック関数

サーバーからRoom Joinの応答を受信した時に呼ばれる。

呼び出し関係図:

◆ OnRoomLeave()

void DiarkisRoomBase::OnRoomLeave ( const DiarkisRoomSuccessEventArgs e)
protectedvirtual

Room を抜けた時に呼び出されるコールバック関数

サーバーから Room Leave レスポンスを受信した時に呼び出されます。

呼び出し関係図:

◆ OnRoomMigrateStart()

void DiarkisRoomBase::OnRoomMigrateStart ( void  )
protectedvirtual

Room マイグレーションが開始されるときに呼び出されるコールバック関数。

Room オーナーが Migrate を実行すると、サーバーから各メンバーに通知されます。

◆ OnRoomMigrateComplete()

void DiarkisRoomBase::OnRoomMigrateComplete ( const DiarkisRoomMigrateCompleteEventArgs e)
protectedvirtual

Roomの移行が完了したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomMemberJoin()

void DiarkisRoomBase::OnRoomMemberJoin ( const DiarkisPayloadEventArgs e)
protectedvirtual

別のクライアントがRoomに参加したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomMemberLeave()

void DiarkisRoomBase::OnRoomMemberLeave ( const DiarkisPayloadEventArgs e)
protectedvirtual

RoomメンバーがRoomを退出するときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomUpdateProperties()

void DiarkisRoomBase::OnRoomUpdateProperties ( const DiarkisRoomSuccessEventArgs e)
protectedvirtual

UpdatePropertiesでプロパティが更新されるときに呼び出されるコールバック関数。

呼び出し関係図:

◆ OnRoomGetProperties()

void DiarkisRoomBase::OnRoomGetProperties ( const DiarkisRoomPropertiesEventArgs e)
protectedvirtual

GetPropertiesでプロパティが取得されたときに呼び出されるコールバック関数。

呼び出し関係図:

◆ OnRoomUpdateSyncProperties()

void DiarkisRoomBase::OnRoomUpdateSyncProperties ( const DiarkisRoomPropertiesEventArgs e)
protectedvirtual

UpdateProperties でプロパティが更新されたときに呼び出されるコールバック関数です。

呼び出し関係図:

◆ OnRoomIncrementProperty()

void DiarkisRoomBase::OnRoomIncrementProperty ( const DiarkisRoomIncrementPropertyEventArgs e)
protectedvirtual

IncrementPropertyでプロパティが変更されたときに呼び出されるコールバック関数です。

呼び出し関係図:

◆ OnRoomIncrementPropertySync()

void DiarkisRoomBase::OnRoomIncrementPropertySync ( const DiarkisRoomIncrementPropertySyncEventArgs e)
protectedvirtual
呼び出し関係図:

◆ OnRoomGetOwnerID()

void DiarkisRoomBase::OnRoomGetOwnerID ( const DiarkisRoomGetOwnerIDEventArgs e)
protectedvirtual

参加中のRoomオーナーのユーザーIDが取得されたときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomMemberIDs()

void DiarkisRoomBase::OnRoomMemberIDs ( const DiarkisRoomMemberIDsEventArgs e)
protectedvirtual

参加しているRoomメンバーのユーザーIDを取得するために呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomNumberOfMembers()

void DiarkisRoomBase::OnRoomNumberOfMembers ( const DiarkisRoomNumberOfMembersEventArgs e)
protectedvirtual

Room内のメンバー数を取得するために呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomOwnerChange()

void DiarkisRoomBase::OnRoomOwnerChange ( const DiarkisRoomGetOwnerIDEventArgs e)
protectedvirtual

Roomの所有者が変更された時に呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomMemberBroadcast()

void DiarkisRoomBase::OnRoomMemberBroadcast ( const DiarkisPayloadEventArgs e)
protectedvirtual

ブロードキャストメッセージを受信したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomMemberMessage()

void DiarkisRoomBase::OnRoomMemberMessage ( const DiarkisPayloadEventArgs e)
protectedvirtual

MessageToでメッセージを受信した時に呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomRelay()

void DiarkisRoomBase::OnRoomRelay ( const DiarkisPayloadEventArgs e)
protectedvirtual

Relayからメッセージを受信したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomRelayTo()

void DiarkisRoomBase::OnRoomRelayTo ( const DiarkisPayloadEventArgs e)
protectedvirtual

RelayToによってメッセージを受信したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomRegister()

void DiarkisRoomBase::OnRoomRegister ( const DiarkisRoomPayloadEventArgs e)
protectedvirtual

参加中のRoomに追加情報が登録されたときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomFindByType()

void DiarkisRoomBase::OnRoomFindByType ( const DiarkisRoomFindByTypeEventArgs e)
protectedvirtual

FindRoomsByTypeの検索結果を受信したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomReserve()

void DiarkisRoomBase::OnRoomReserve ( const DiarkisRoomPayloadEventArgs e)
protectedvirtual

Reserveに対する応答を受け取った時に呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomCancelReserve()

void DiarkisRoomBase::OnRoomCancelReserve ( const DiarkisRoomPayloadEventArgs e)
protectedvirtual

CancelReservationへの応答を受信した時に呼び出されるコールバック関数

呼び出し関係図:

◆ OnChatSyncResponse()

void DiarkisRoomBase::OnChatSyncResponse ( const DiarkisRoomPayloadEventArgs e)
protectedvirtual

チャット送信の応答を受信したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnChatSync()

void DiarkisRoomBase::OnChatSync ( const DiarkisRoomChatEventArgs e)
protectedvirtual

チャットを受信した際に呼び出されるコールバック関数

呼び出し関係図:

◆ OnRoomChatLog()

void DiarkisRoomBase::OnRoomChatLog ( const DiarkisRoomChatLogEventArgs e)
protectedvirtual

GetChatLogの応答を受信したときに呼び出されるコールバック関数

呼び出し関係図:

◆ OnStartP2PSync()

void DiarkisRoomBase::OnStartP2PSync ( const DiarkisP2PEventArgs e)
protectedvirtual

StartP2PSyncプッシュ通知を受信したときに呼び出されるコールバック関数

@ ~Japanese

呼び出し関係図:

◆ OnRoomObjectUpdate()

void DiarkisRoomBase::OnRoomObjectUpdate ( const DiarkisRoomObjectUpdateEventArgs e)
protectedvirtual

UpdateObject プッシュが受信されたときに呼び出されるコールバックイベント

呼び出し関係図:

◆ OnRoomObjectUpdateResponse()

void DiarkisRoomBase::OnRoomObjectUpdateResponse ( const DiarkisRoomObjectUpdateResponseEventArgs e)
protectedvirtual

Roomオブジェクトの更新に対する応答が受信されたときに呼び出されるコールバックイベントです。

呼び出し関係図:

◆ OnOffline()

void DiarkisRoomBase::OnOffline ( )
protectedvirtual

サーバーがシャットダウンの準備ができているときに呼び出されるコールバックイベント

メンバ詳解

◆ tcp_

std::shared_ptr<IDiarkisTcp> DiarkisRoomBase::tcp_
protected

IDiarkisTcpクラスへのポインタ

◆ udp_

std::shared_ptr<IDiarkisUdp> DiarkisRoomBase::udp_
protected

IDiarkisUdpクラスへのポインタ

◆ room_

std::shared_ptr<IDiarkisRoom> DiarkisRoomBase::room_
protected

IDiarkisRoom クラスへのポインター

◆ p2pBase_

std::shared_ptr<DiarkisP2PBase> DiarkisRoomBase::p2pBase_
protected

DiarkisP2PBaseクラスへのポインタ

◆ logger_

std::shared_ptr<IDiarkisLogger> DiarkisRoomBase::logger_
protected

IDiarkisLoggerクラスへのポインタ

◆ eventUnsubscriptions_

Diarkis::StdVector<std::function<void()> > DiarkisRoomBase::eventUnsubscriptions_
protected

ラムダ関数のリスト

◆ roomID_

Diarkis::StdString DiarkisRoomBase::roomID_
protected

参加しているRoomのRoom ID

◆ roomConnect_

ConnectState DiarkisRoomBase::roomConnect_
protected

Roomの状態

◆ list_mutex_

std::recursive_mutex DiarkisRoomBase::list_mutex_
protected

roomMemberIDsのミューテックス

◆ roomMemberIDs_

Diarkis::StdVector<Diarkis::StdString> DiarkisRoomBase::roomMemberIDs_
protected

RoomメンバーのユーザーIDのリスト

◆ ownUID_

Diarkis::StdString DiarkisRoomBase::ownUID_
protected

自分のユーザーID

~@japanese

◆ ownerID_

Diarkis::StdString DiarkisRoomBase::ownerID_
protected

RoomオーナーのユーザーID

◆ createAtServer_

int64_t DiarkisRoomBase::createAtServer_
protected

現在いるRoomがサーバー上で作成された時間

◆ bReserved_

bool DiarkisRoomBase::bReserved_
protected

あなたがRoomを予約したかどうか


このクラス詳解は次のファイルから抽出されました: