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

Group機能の簡単な使用のためにIDiarkisGroupクラスをラップするベースクラス [詳解]

#include <DiarkisGroupBase.h>

DiarkisGroupBase 連携図

公開メンバ関数

 DiarkisGroupBase ()
 DiarkisGroupBaseのコンストラクタ [詳解]
 
virtual ~DiarkisGroupBase ()
 DiarkisGroupBase のデストラクタ。 [詳解]
 
virtual void SetupTcpGroup (const std::shared_ptr< IDiarkisTcp > &tcp, const std::shared_ptr< LoggerFactory > &loggerFactory, bool bRetry)
 TCPプロトコルでGroupをセットアップします。 [詳解]
 
virtual void SetupUdpGroup (const std::shared_ptr< IDiarkisUdp > &udp, const std::shared_ptr< LoggerFactory > &loggerFactory, bool bRetry)
 UDPプロトコルでGroupを設定します。 [詳解]
 
virtual void SendCreateGroup (bool allowEmpty, bool join, uint16_t ttl)
 新しいグループを作成します。 [詳解]
 
virtual void SendJoinGroup (const char *groupID, const uint8_t *message, size_t messageSize)
 既存のグループに参加します。 [詳解]
 
virtual void SendJoinGroup (const std::string &groupID, const std::vector< uint8_t > &message)
 SendJoingGroup()と同じです [詳解]
 
virtual void SendRandomJoinGroup (uint16_t ttl, const uint8_t *message, size_t messageSize, uint32_t interval, bool allowEmpty=false)
 参加できるグループがある場合は、そのグループに参加し、そうでない場合は新しいグループを作成します。 [詳解]
 
virtual void SendRandomJoinGroup (uint16_t ttl, const std::vector< uint8_t > &message, uint32_t interval, bool allowEmpty=false)
 SendRandomJoinGroup()と同じです [詳解]
 
virtual void SendLeaveGroup (const char *groupID, const uint8_t *message, size_t messageSize)
 指定されたグループから離脱する。 [詳解]
 
virtual void SendLeaveGroup (const std::string &groupID, const std::vector< uint8_t > &message)
 SendLeaveGroup(const char*, const uint8_t*, size_t)と同じです [詳解]
 
virtual void SendLeaveGroup (const uint8_t *message, size_t messageSize)
 すべてのグループから脱退します。 [詳解]
 
virtual void SendLeaveGroup (const std::vector< uint8_t > &message)
 SendLeaveGroup(const uint8_t*, size_t)と同じです [詳解]
 
virtual void SendBroadcastToGroup (const uint8_t *payload, size_t payloadSize, bool reliable)
 すべての参加グループのすべてのユーザーにブロードキャストを送信します。 [詳解]
 
virtual void SendBroadcastToGroup (const std::vector< uint8_t > &payload, bool reliable)
 SendBroadcastToGroup(const uint8_t*, size_t, bool)と同じです [詳解]
 
virtual void SendBroadcastToGroup (const char *groupID, const uint8_t *payload, size_t payloadSize, bool reliable)
 指定されたグループのすべてのユーザーにブロードキャストを送信します。 [詳解]
 
virtual void SendBroadcastToGroup (const std::string &groupID, const std::vector< uint8_t > &payload, bool reliable)
 SendBroadcastToGroup(const char*, const uint8_t*, size_t, bool)と同じ [詳解]
 
bool IsJoin ()
 あなたがグループに参加しているかどうか [詳解]
 
bool IsFail ()
 グループに参加できなかったかどうか [詳解]
 
Diarkis::StdString GetGroupID ()
 参加しているグループのGroup IDを取得します。 [詳解]
 

限定公開メンバ関数

virtual void OnGroupCreation (DiarkisTransportType transportType, const DiarkisGroupEventArgs &e)
 グループが作成された時に呼び出されるコールバック関数。 [詳解]
 
virtual void OnGroupJoin (DiarkisTransportType transportType, const DiarkisGroupEventArgs &e)
 グループに参加するときに呼び出されるコールバック関数です。 [詳解]
 
virtual void OnGroupLeave (DiarkisTransportType transportType, const DiarkisGroupEventArgs &e)
 グループを離れるときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnGroupMemberJoin (DiarkisTransportType transportType, const DiarkisPayloadEventArgs &e)
 他のメンバーがグループに参加したときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnGroupMemberLeave (DiarkisTransportType transportType, const DiarkisPayloadEventArgs &e)
 他のメンバーがグループを退出した時に呼び出されるコールバック関数。 [詳解]
 
virtual void OnGroupMemberBroadcast (DiarkisTransportType transportType, const DiarkisPayloadEventArgs &e)
 ブロードキャストメッセージを受信したときに呼び出されるコールバック関数。 [詳解]
 

限定公開変数類

std::shared_ptr< IDiarkisTcptcp_
 IDiarkisTcp クラスへのポインタ [詳解]
 
std::shared_ptr< IDiarkisUdpudp_
 IDiarkisUdpクラスへのポインタ [詳解]
 
std::shared_ptr< IDiarkisGroupgroup_
 IDiarkisGroupクラスへのポインタ [詳解]
 
std::shared_ptr< IDiarkisLoggerlogger_
 IDiarkisLoggerクラスへのポインタ [詳解]
 
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
 ラムダ関数のリスト [詳解]
 
Diarkis::StdString groupID_
 グループID [詳解]
 
Diarkis::StdString groupMessage_
 受信した最新のメッセージ [詳解]
 
Diarkis::StdString messageFromUid_
 最新の受信メッセージの送信元のユーザーID [詳解]
 
ConnectState groupConnect_
 グループ接続状況 [詳解]
 

詳解

Group機能の簡単な使用のためにIDiarkisGroupクラスをラップするベースクラス

構築子と解体子

◆ DiarkisGroupBase()

DiarkisGroupBase::DiarkisGroupBase ( )

DiarkisGroupBaseのコンストラクタ

呼び出し関係図:

◆ ~DiarkisGroupBase()

DiarkisGroupBase::~DiarkisGroupBase ( )
virtual

DiarkisGroupBase のデストラクタ。

関数詳解

◆ SetupTcpGroup()

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

TCPプロトコルでGroupをセットアップします。

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

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

◆ SetupUdpGroup()

void DiarkisGroupBase::SetupUdpGroup ( const std::shared_ptr< IDiarkisUdp > &  udp,
const std::shared_ptr< LoggerFactory > &  loggerFactory,
bool  bRetry 
)
virtual

UDPプロトコルでGroupを設定します。

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

引数
[in]udpIDiarkisUdpクラスへのポインタ
[in]loggerFactoryロガークラスへのポインタ
[in]bRetryGroupに参加しようと試行が失敗した後に再接続する場合、trueでこの関数を呼び出します。最初の呼び出しではfalseである必要があります。
呼び出し関係図:

◆ SendCreateGroup()

void DiarkisGroupBase::SendCreateGroup ( bool  allowEmpty,
bool  join,
uint16_t  ttl 
)
virtual

新しいグループを作成します。

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

引数
[in]allowEmptyクライアントが参加していない場合でもグループを保持するかどうかを決定します。
true = クライアントがいなくてもグループを保持します。
false = クライアントがいないと、ttl で指定された時間が経過した後にグループが破壊されます。
[in]join新しいグループを作成してから参加するかどうかを指定します。
true = 作成された後にグループに参加します。この場合、サーバーは参加リクエストに応答しません。
false = グループを作成のみします。グループに参加したい場合は、別途 Join を実行する必要があります。
[in]ttlグループが空になった後の存在期間(秒単位)を指定します。allowEmpty が true に設定されている場合にのみ使用されます。
呼び出し関係図:

◆ SendJoinGroup() [1/2]

void DiarkisGroupBase::SendJoinGroup ( const char *  groupID,
const uint8_t *  message,
size_t  messageSize 
)
virtual

既存のグループに参加します。

GetJoinEvent() に登録されたコールバックイベント(例:OnGroupJoin)がトリガーされます。
ターゲットグループのメンバーには GetMemberJoinEvent() に登録されたコールバックイベント(例:OnGroupMemberJoin)がトリガーされます。

引数
[in]groupID参加するグループのID
[in]message参加時にグループメンバーにメッセージを送信します。
たとえば、新しく参加したメンバーのユーザーIDを通知するには、ユーザーIDを含めることができます。
[in]messageSizeメッセージの長さ
呼び出し関係図:
被呼び出し関係図:

◆ SendJoinGroup() [2/2]

void DiarkisGroupBase::SendJoinGroup ( const std::string &  groupID,
const std::vector< uint8_t > &  message 
)
virtual

SendJoingGroup()と同じです

呼び出し関係図:

◆ SendRandomJoinGroup() [1/2]

void DiarkisGroupBase::SendRandomJoinGroup ( uint16_t  ttl,
const uint8_t *  message,
size_t  messageSize,
uint32_t  interval,
bool  allowEmpty = false 
)
virtual

参加できるグループがある場合は、そのグループに参加し、そうでない場合は新しいグループを作成します。

既存のグループに参加する場合、GetJoinEvent() で登録されたコールバックイベント(例:OnGroupJoin)がトリガーされます。
新しいグループが作成されると、GetCreateEvent() で登録されたコールバックイベント(例:OnGroupCreation)がトリガーされます。

引数
[in]ttlグループが空になってからの秒数の期間。allowEmpty が true に設定されている場合にのみ使用されます。
[in]message参加時にグループのメンバーにオプションのメッセージを送信します。
[in]messageSizeメッセージの長さ
[in]intervalサーバーが BroadcastTo を処理する間隔(ミリ秒単位)を指定します。デフォルト値は200msです。
interval で指定された時間のメッセージはサーバーによって編集され送信されます。
[in]allowEmptyクライアントが参加していない場合でもグループを保持するかどうかを決定します。
true = クライアントが存在しなくてもグループは保持されます。
false = クライアントがいない場合は ttl で指定された時間後にグループが破棄されます。
呼び出し関係図:
被呼び出し関係図:

◆ SendRandomJoinGroup() [2/2]

void DiarkisGroupBase::SendRandomJoinGroup ( uint16_t  ttl,
const std::vector< uint8_t > &  message,
uint32_t  interval,
bool  allowEmpty = false 
)
virtual

SendRandomJoinGroup()と同じです

呼び出し関係図:

◆ SendLeaveGroup() [1/4]

void DiarkisGroupBase::SendLeaveGroup ( const char *  groupID,
const uint8_t *  message,
size_t  messageSize 
)
virtual

指定されたグループから離脱する。

GetMemberLeaveEvent() で登録されたコールバックイベント(例:OnGroupMemberLeave)が発生する。

引数
[in]groupID離脱するグループのID
[in]message離脱時にグループメンバーにメッセージを送信する。
[in]messageSizeメッセージの長さ
呼び出し関係図:
被呼び出し関係図:

◆ SendLeaveGroup() [2/4]

void DiarkisGroupBase::SendLeaveGroup ( const std::string &  groupID,
const std::vector< uint8_t > &  message 
)
virtual

SendLeaveGroup(const char*, const uint8_t*, size_t)と同じです

呼び出し関係図:

◆ SendLeaveGroup() [3/4]

void DiarkisGroupBase::SendLeaveGroup ( const uint8_t *  message,
size_t  messageSize 
)
virtual

すべてのグループから脱退します。

GetMemberLeaveEvent() に登録したコールバックイベント(例:OnGroupMemberLeave)がトリガーされます。

引数
[in]message脱退時にグループメンバーにメッセージを送信します。
[in]messageSizeメッセージの長さ
呼び出し関係図:

◆ SendLeaveGroup() [4/4]

void DiarkisGroupBase::SendLeaveGroup ( const std::vector< uint8_t > &  message)
virtual

SendLeaveGroup(const uint8_t*, size_t)と同じです

呼び出し関係図:

◆ SendBroadcastToGroup() [1/4]

void DiarkisGroupBase::SendBroadcastToGroup ( const uint8_t *  payload,
size_t  payloadSize,
bool  reliable 
)
virtual

すべての参加グループのすべてのユーザーにブロードキャストを送信します。

GetMemberBroadcastEvent() で登録されたコールバックイベント(例:OnGroupMemberBroadcast)がトリガーされます。
送信したメッセージに対してもコールバックイベントがトリガーされます。

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

◆ SendBroadcastToGroup() [2/4]

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

SendBroadcastToGroup(const uint8_t*, size_t, bool)と同じです

呼び出し関係図:

◆ SendBroadcastToGroup() [3/4]

void DiarkisGroupBase::SendBroadcastToGroup ( const char *  groupID,
const uint8_t *  payload,
size_t  payloadSize,
bool  reliable 
)
virtual

指定されたグループのすべてのユーザーにブロードキャストを送信します。

GetMemberBroadcastEvent() で登録されたコールバックイベント(例:OnGroupMemberBroadcast)がトリガーされます。
ユーザーが送信したメッセージに対してもコールバックイベントがトリガーされます。

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

◆ SendBroadcastToGroup() [4/4]

void DiarkisGroupBase::SendBroadcastToGroup ( const std::string &  groupID,
const std::vector< uint8_t > &  payload,
bool  reliable 
)
virtual

◆ IsJoin()

bool DiarkisGroupBase::IsJoin ( )

あなたがグループに参加しているかどうか

◆ IsFail()

bool DiarkisGroupBase::IsFail ( )

グループに参加できなかったかどうか

◆ GetGroupID()

Diarkis::StdString DiarkisGroupBase::GetGroupID ( )

参加しているグループのGroup IDを取得します。

◆ OnGroupCreation()

void DiarkisGroupBase::OnGroupCreation ( DiarkisTransportType  transportType,
const DiarkisGroupEventArgs e 
)
protectedvirtual

グループが作成された時に呼び出されるコールバック関数。

サーバーからグループ作成の応答を受信した時に呼び出されます。

呼び出し関係図:

◆ OnGroupJoin()

void DiarkisGroupBase::OnGroupJoin ( DiarkisTransportType  transportType,
const DiarkisGroupEventArgs e 
)
protectedvirtual

グループに参加するときに呼び出されるコールバック関数です。

サーバーからグループ参加の応答を受信したときに呼び出されます。

呼び出し関係図:

◆ OnGroupLeave()

void DiarkisGroupBase::OnGroupLeave ( DiarkisTransportType  transportType,
const DiarkisGroupEventArgs e 
)
protectedvirtual

グループを離れるときに呼び出されるコールバック関数。

サーバーからグループLeaveレスポンスを受信したときに呼び出されます。

呼び出し関係図:

◆ OnGroupMemberJoin()

void DiarkisGroupBase::OnGroupMemberJoin ( DiarkisTransportType  transportType,
const DiarkisPayloadEventArgs e 
)
protectedvirtual

他のメンバーがグループに参加したときに呼び出されるコールバック関数。

サーバーからのグループ参加通知を受信したときに呼び出されます。

呼び出し関係図:

◆ OnGroupMemberLeave()

void DiarkisGroupBase::OnGroupMemberLeave ( DiarkisTransportType  transportType,
const DiarkisPayloadEventArgs e 
)
protectedvirtual

他のメンバーがグループを退出した時に呼び出されるコールバック関数。

サーバーからグループ退会通知を受信した時に呼び出されます。

呼び出し関係図:

◆ OnGroupMemberBroadcast()

void DiarkisGroupBase::OnGroupMemberBroadcast ( DiarkisTransportType  transportType,
const DiarkisPayloadEventArgs e 
)
protectedvirtual

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

グループブロードキャスト通知をサーバーから受信したときに呼び出されます。

呼び出し関係図:

メンバ詳解

◆ tcp_

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

IDiarkisTcp クラスへのポインタ

◆ udp_

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

IDiarkisUdpクラスへのポインタ

◆ group_

std::shared_ptr<IDiarkisGroup> DiarkisGroupBase::group_
protected

IDiarkisGroupクラスへのポインタ

◆ logger_

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

IDiarkisLoggerクラスへのポインタ

◆ eventUnsubscriptions_

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

ラムダ関数のリスト

◆ groupID_

Diarkis::StdString DiarkisGroupBase::groupID_
protected

グループID

◆ groupMessage_

Diarkis::StdString DiarkisGroupBase::groupMessage_
protected

受信した最新のメッセージ

◆ messageFromUid_

Diarkis::StdString DiarkisGroupBase::messageFromUid_
protected

最新の受信メッセージの送信元のユーザーID

◆ groupConnect_

ConnectState DiarkisGroupBase::groupConnect_
protected

グループ接続状況


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