![]() |
Diarkis C++Client Library API Document
|
P2P 機能を簡単に使用するために IDiarkisP2P クラスをラップする基本クラス [詳解]
#include <DiarkisP2PBase.h>
公開メンバ関数 | |
DiarkisP2PBase () | |
DiarkisP2PBaseコンストラクタ [詳解] | |
virtual | ~DiarkisP2PBase () |
DiarkisP2PBaseデストラクタ [詳解] | |
virtual void | SetupP2P (const std::shared_ptr< IDiarkisUdp > &udp, const std::shared_ptr< LoggerFactory > &loggerFactory, const char *uid) |
UDPプロトコルを使用したDirectMessageを設定します。 [詳解] | |
virtual void | ConnectClient (const char *uid, const char **address, size_t addressCount, size_t timeoutInMilliseconds=5000, bool bBuffering=true) |
指定されたユーザーIDへのP2P接続を試みます。 [詳解] | |
virtual void | ConnectClient (const std::string &uid, const std::vector< std::string > &address, size_t timeoutInMilliseconds=5000, bool bBuffering=true) |
ConnectClient()と同じです [詳解] | |
virtual void | SetEncryptionKeys (bool bEncryption, const uint8_t *key, size_t keySize, const uint8_t *iv, size_t ivSize, const uint8_t *mkey, size_t mkeySize) |
暗号化キーを設定します。 [詳解] | |
virtual void | SetEncryptionKeys (bool bEncryption, const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv, const std::vector< uint8_t > &mkey) |
SetEncryptionKeys()と同じ [詳解] | |
virtual uint16_t | SendUnicast (const uint8_t *payload, size_t payloadSize, RudpType type, const char *uid) |
1つのピアにメッセージを送信します。 [詳解] | |
virtual uint16_t | SendUnicast (const uint8_t *payload, size_t payloadSize, RudpType type, const std::string &uid) |
SendUnicast()と同じ [詳解] | |
virtual uint16_t | SendUnicast (const std::vector< uint8_t > &payload, RudpType type, const std::string &uid) |
SendUnicast()と同じです [詳解] | |
virtual uint16_t | SendMulticast (const uint8_t *payload, size_t payloadSize, RudpType type, const char **uids, size_t uidsLen) |
複数のピアにメッセージを送信します。 [詳解] | |
virtual uint16_t | SendMulticast (const uint8_t *payload, size_t payloadSize, RudpType type, const std::vector< std::string > &uid) |
SendMulticast()と同じです [詳解] | |
virtual uint16_t | SendMulticast (const std::vector< uint8_t > &payload, RudpType type, const std::vector< std::string > &uid) |
SendMulticast()と同じです [詳解] | |
virtual uint16_t | SendBroadcast (const uint8_t *payload, size_t payloadSize, RudpType type) |
すべてのピアにメッセージを送信します。 [詳解] | |
virtual uint16_t | SendBroadcast (const std::vector< uint8_t > &payload, RudpType type) |
SendBroadcast()と同じ [詳解] | |
void | Disconnect () |
すべてのピアとのP2P接続を切断します。 [詳解] | |
bool | Disconnect (const char *uid) |
指定したユーザーとのP2P接続を切断します。 [詳解] | |
void | Update () |
接続の状態やその他の情報を更新するための関数。定期的に呼び出す必要があります。 [詳解] | |
void | SetSchedulerAddNotifyEvent (std::function< void()> notifyEventFunc) |
P2P関連のイベントがスケジューラに追加されたときに呼び出されるプロセスを設定します。 [詳解] | |
uint16_t | GetConnectedNum () |
P2Pによって接続されているピアの数を取得します。 [詳解] | |
void | GetPeerUids (Diarkis::StdVector< Diarkis::StdString > &output) |
P2Pで接続されたピアのユーザーIDを取得します。 [詳解] | |
限定公開メンバ関数 | |
virtual void | OnP2PReady (const DiarkisReadyEventArgs &args) |
P2P接続が成功したときに呼び出されるコールバックイベントです。 [詳解] | |
virtual void | OnP2PFail (const DiarkisFailEventArgs &args) |
ホールパンチが失敗したときに呼び出されるコールバックイベントです。 [詳解] | |
virtual void | OnP2PDisconnect (const DiarkisP2PDisconnectEventArgs &args) |
P2P接続が切断された際に呼び出されるコールバックイベント [詳解] | |
virtual void | OnP2PMessage (const DiarkisMessageEventArgs &args) |
P2Pでメッセージを受信したときに呼び出されるコールバックイベント [詳解] | |
virtual void | OnP2PException (const DiarkisExceptionEventArgs &args) |
P2Pで送受信が失敗した際に呼び出されるコールバックイベント [詳解] | |
void | RegisterPeer (const Diarkis::StdString &uid, const std::shared_ptr< Peer > &p2p) |
IDiarkisP2Pインスタンスを登録します [詳解] | |
uint64_t | UnregisterPeer (const Diarkis::StdString &uid) |
IDiarkisP2Pインスタンスの登録を解除します [詳解] | |
限定公開変数類 | |
Diarkis::StdUnorderedMap< Diarkis::StdString, std::shared_ptr< Peer > > | p2pList_ |
P2P接続のリスト。 キー:UID、値:IDiarkisP2Pへのポインタ [詳解] | |
std::recursive_mutex | p2pListMutex_ |
P2PリストMutex [詳解] | |
std::shared_ptr< IDiarkisUdp > | udp_ |
IDiarkisUdpクラスへのポインター [詳解] | |
std::shared_ptr< LoggerFactory > | loggerFactory_ |
ロガークラスへのポインター [詳解] | |
std::shared_ptr< IDiarkisLogger > | logger_ |
ロガークラスへのポインタ [詳解] | |
std::function< void()> | schedulerAddNotifyEventFunc_ |
P2P 関連のイベントが追加された時に呼ばれるコールバック関数 [詳解] | |
Diarkis::StdString | ownGlobalAddress_ |
私のグローバルIPアドレス [詳解] | |
Diarkis::StdString | myUid_ |
私のユーザーID [詳解] | |
P2P 機能を簡単に使用するために IDiarkisP2P クラスをラップする基本クラス
DiarkisP2PBase::DiarkisP2PBase | ( | ) |
DiarkisP2PBaseコンストラクタ
|
virtual |
DiarkisP2PBaseデストラクタ
|
virtual |
UDPプロトコルを使用したDirectMessageを設定します。
ロガーとコールバック関数を登録します。
[in] | udp | IDiarkisUdpクラスへのポインター |
[in] | loggerFactory | ロガークラスへのポインター |
[in] | uid | あなたのユーザーID |
|
virtual |
指定されたユーザーIDへのP2P接続を試みます。
接続に成功した場合、GetReadyEvent()で登録されたコールバックイベント(例:OnP2PReady)がトリガーされます。 接続に失敗した場合、GetFailEvent()で登録されたコールバックイベント(例:OnP2PFail)がトリガーされます。
[in] | uid | あなたのユーザーID |
[in] | address | 接続するエンドポイントのリスト |
[in] | addressCount | アドレスの長さ |
[in] | timeoutInMilliseconds | ホールパンチのタイムアウト時間 |
[in] | bBuffering | パケットの送受信時にバッファリングが行われるかどうか |
|
virtual |
|
virtual |
暗号化キーを設定します。
[in] | bEncryption | 暗号化するかどうか |
[in] | key | 暗号化キー |
[in] | keySize | キーの長さ |
[in] | iv | 初期化ベクトル |
[in] | ivSize | ivの長さ |
[in] | mkey | メッセージ認証コード |
[in] | mkeySize | mkeyの長さ |
|
virtual |
|
virtual |
1つのピアにメッセージを送信します。
メッセージを受信すると、GetMessageEvent()で登録されたコールバックイベント(例:OnP2PMessage)がトリガーされます。
[in] | payload | 送信するデータ |
[in] | payloadSize | ペイロードの長さ |
[in] | type | 使用するRUDPタイプ |
[in] | uid | データを送信するピアのユーザーID |
|
virtual |
|
virtual |
|
virtual |
複数のピアにメッセージを送信します。
メッセージを受信すると、GetMessageEvent() で登録されているコールバックイベント (例: OnP2PMessage) がトリガーされます。
[in] | payload | 送信するデータ |
[in] | payloadSize | ペイロードの長さ |
[in] | type | 使用するRUDPタイプ |
[in] | uids | データを送信するピアのユーザーIDのリスト |
[in] | uidsLen | uidsの長さ |
|
virtual |
|
virtual |
|
virtual |
すべてのピアにメッセージを送信します。
メッセージを受信すると、GetMessageEvent() で登録されたコールバックイベント(例:OnP2PMessage)がトリガーされます。
[in] | payload | 送信するデータ |
[in] | payloadSize | ペイロードの長さ |
[in] | type | 使用するRUDPタイプ |
|
virtual |
void DiarkisP2PBase::Disconnect | ( | ) |
すべてのピアとのP2P接続を切断します。
GetDisconnectEvent() で登録されたコールバックイベント(例:OnP2PDisconnect)は、切断されたピアのためにトリガーされます。
bool DiarkisP2PBase::Disconnect | ( | const char * | uid | ) |
指定したユーザーとのP2P接続を切断します。
GetDisconnectEvent() で登録されたコールバックイベント(例: OnP2PDisconnect)がトリガーされます。
[in] | uid | 切断するユーザーのユーザーID。 |
void DiarkisP2PBase::Update | ( | ) |
接続の状態やその他の情報を更新するための関数。定期的に呼び出す必要があります。
void DiarkisP2PBase::SetSchedulerAddNotifyEvent | ( | std::function< void()> | notifyEventFunc | ) |
P2P関連のイベントがスケジューラに追加されたときに呼び出されるプロセスを設定します。
uint16_t DiarkisP2PBase::GetConnectedNum | ( | ) |
P2Pによって接続されているピアの数を取得します。
void DiarkisP2PBase::GetPeerUids | ( | Diarkis::StdVector< Diarkis::StdString > & | output | ) |
P2Pで接続されたピアのユーザーIDを取得します。
|
protectedvirtual |
P2P接続が成功したときに呼び出されるコールバックイベントです。
|
protectedvirtual |
ホールパンチが失敗したときに呼び出されるコールバックイベントです。
指定された時間内にホールパンチが完了しなかったときにトリガーされます。
|
protectedvirtual |
P2P接続が切断された際に呼び出されるコールバックイベント
|
protectedvirtual |
P2Pでメッセージを受信したときに呼び出されるコールバックイベント
|
protectedvirtual |
P2Pで送受信が失敗した際に呼び出されるコールバックイベント
ソケットが閉じられ、送受信が不可能になった時にトリガーされます。
|
protected |
IDiarkisP2Pインスタンスを登録します
[in] | uid | ピアのUID |
[in] | p2p | IDiarkisP2Pインスタンスへのポインタ |
|
protected |
IDiarkisP2Pインスタンスの登録を解除します
[in] | uid | ピアのUID |
|
protected |
P2P接続のリスト。 キー:UID、値:IDiarkisP2Pへのポインタ
|
protected |
P2PリストMutex
|
protected |
IDiarkisUdpクラスへのポインター
|
protected |
ロガークラスへのポインター
|
protected |
ロガークラスへのポインタ
|
protected |
P2P 関連のイベントが追加された時に呼ばれるコールバック関数
|
protected |
私のグローバルIPアドレス
|
protected |
私のユーザーID