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

UDP機能を簡単に使用するためにIDiarkisUdpクラスをラップする基本クラス [詳解]

#include <DiarkisUdpBase.h>

DiarkisUdpBase 連携図

公開メンバ関数

 DiarkisUdpBase ()
 DiarkisUdpBaseのコンストラクタ [詳解]
 
virtual ~DiarkisUdpBase ()
 DiarkisUdpBaseのデストラクタ [詳解]
 
virtual void Setup (const std::shared_ptr< LoggerFactory > &loggerFactory)
 セットアップ機能 [詳解]
 
bool Connect (const char *endpoint, const char *clientKey, const struct AuthInfo *auth)
 UDPサーバーと接続します [詳解]
 
bool Connect (const std::string &endpoint, const std::string &clientKey, const struct AuthInfo *auth)
 Connect(const char*, const char*, const struct AuthInfo*)と同じです [詳解]
 
bool Connect (const char *endpoint, const std::string &clientKey, const std::vector< uint8_t > &sid, const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv, const std::vector< uint8_t > &mackey)
 UDPサーバーと接続する [詳解]
 
bool ConnectAsync (const char *endpoint, const char *clientKey, const struct AuthInfo *auth)
 サーバーに非同期スレッドを使って接続します [詳解]
 
bool ConnectAsync (const std::string &endpoint, const std::string &clientKey, const struct AuthInfo *auth)
 ConnectAsync()と同じです。 [詳解]
 
bool ConnectDualModeAsync (const char *endpoint, const char *clientKey, const struct AuthInfo *auth)
 ソケットデュアルモード(IPv6の明示的サポート)を使用して非同期でサーバーに接続を試みます。 接続が成功した場合、GetConnectedEventが呼び出されます。 このメソッドでサーバーに接続すると、P2Pが無効になります。 [詳解]
 
bool ConnectDualModeAsync (const std::string &endpoint, const std::string &clientKey, const struct AuthInfo *auth)
 ConnectDualModeAsync()と同じ [詳解]
 
bool IsConnected ()
 UDPサーバーに接続しているかどうか [詳解]
 
bool IsAsyncConnectRunning () const
 非同期接続プロセスが実行されているかどうかをチェックします。 [詳解]
 
bool GetAsyncConnectResult (System::Result &result) const
 非同期接続プロセスの結果を取得します。 [詳解]
 
void Disconnect ()
 UDPサーバーを切断します。 [詳解]
 
void Update ()
 クライアントライブラリ内のUDP処理を呼び出す更新関数。定期的に呼び出す必要があります。 [詳解]
 
void SetSchedulerAddNotifyEvent (std::function< void()> notifyEventFunc)
 UDPに関連するイベントがスケジューラに追加された時に実行される関数を設定します。 [詳解]
 
bool IsOffline ()
 UDPサーバーがシャットダウンの準備をしているかどうか [詳解]
 
std::shared_ptr< IDiarkisUdpGet ()
 IDiarkisUdpへのポインタを取得します [詳解]
 
void GetGlobalAddress (Diarkis::StdString &address)
 自分の外部IPアドレスを取得します。 [詳解]
 
bool GetLocalAddress (Diarkis::StdVector< Diarkis::StdString > &addressLists)
 自分自身のローカルIPアドレスを取得します。 [詳解]
 
bool SendPing (void)
 UDPサーバーにPingを送信します。 [詳解]
 
bool SendEcho (void)
 UDPサーバーにエコーを送信します。 [詳解]
 
bool SendMigrate (void)
 現在の接続を別のサーバーに変更しようとします。 [詳解]
 
void ClearUdpBuffer (void)
 ソケットの送受信バッファをクリアします [詳解]
 
bool SetSendThreadParam (const DiarkisThreadScheduler &scheduler)
 UDP送信スレッドの優先度を指定します。 [詳解]
 
bool SetRecvThreadParam (const DiarkisThreadScheduler &scheduler)
 UDP 受信スレッドの優先度を指定します。 [詳解]
 
Result SendCheckNATType ()
 クライアントのNATタイプをチェックするためにサーバーにコマンドを送信します。 IDiarkisUdp::GetCheckNATTypeEvent(例:OnCheckNATType)で登録されたコールバックイベントがトリガーされます。 [詳解]
 

限定公開メンバ関数

virtual void OnConnect (const DiarkisConnectionEventArgs &args)
 サーバーに接続するときに呼び出されるコールバック関数です。 [詳解]
 
virtual void OnDisconnect (bool isReconnect)
 サーバーから切断されたときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnOffline (void)
 サーバーがシャットダウンの準備をするときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnResponse (const DiarkisResponseEventArgs &args, DiarkisTransportType tt)
 サーバーからのレスポンスを受信したときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnPush (const DiarkisPushEventArgs &args, DiarkisTransportType tt)
 サーバーからプッシュを受信したときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnEcho (const DiarkisUdpEchoEventArgs &args)
 サーバーからエコーを受信した際に呼び出されるコールバック関数。 [詳解]
 
virtual void OnPing (const DiarkisUdpPingEventArgs &args)
 サーバーからのpingを受信したときに呼び出されるコールバック関数。 [詳解]
 
virtual void OnNotification (const DiarkisPushEventArgs &args)
 サーバーから通知を受信した際に呼び出されるコールバック関数。 [詳解]
 
virtual void OnCheckNATType (const DiarkisCheckNATTypeEventArgs &args)
 SendCheckNATTypeの応答によってトリガーされるコールバックイベント。 [詳解]
 
bool SetConnectionInfo (const char *clientKey, const uint8_t *sid, size_t sidSize, const uint8_t *key, size_t keySize, const uint8_t *iv, size_t ivSize, const uint8_t *mackey, size_t mackeySize)
 UDPサーバーに接続するための情報を設定します [詳解]
 
bool SetConnectionInfo (const Diarkis::StdString &clientKey, const AuthInfo &auth)
 UDPサーバーに接続するための情報を設定します [詳解]
 

限定公開変数類

std::shared_ptr< IDiarkisUdpudp_
 IDiarkisUdpクラスへのポインター [詳解]
 
std::shared_ptr< IDiarkisLoggerlogger_
 IDiarkisLoggerクラスへのポインター [詳解]
 
Diarkis::StdVector< std::function< void()> > eventUnsubscriptions_
 ラムダ関数のリスト [詳解]
 
std::function< void()> schedulerAddNotifyEventFunc_
 UDP関連のイベントがスケジューラに追加された時に呼び出されるプロセスを設定します。 [詳解]
 
bool bOffline_
 サーバーがシャットダウンの準備をしているかどうか [詳解]
 
Diarkis::StdString ownGlobalAddress_
 私のグローバルIPアドレス [詳解]
 

詳解

UDP機能を簡単に使用するためにIDiarkisUdpクラスをラップする基本クラス

構築子と解体子

◆ DiarkisUdpBase()

DiarkisUdpBase::DiarkisUdpBase ( )

DiarkisUdpBaseのコンストラクタ

◆ ~DiarkisUdpBase()

DiarkisUdpBase::~DiarkisUdpBase ( )
virtual

DiarkisUdpBaseのデストラクタ

関数詳解

◆ Setup()

void DiarkisUdpBase::Setup ( const std::shared_ptr< LoggerFactory > &  loggerFactory)
virtual

セットアップ機能

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

引数
[in]loggerFactoryロガークラスへのポインタ
呼び出し関係図:

◆ Connect() [1/3]

bool DiarkisUdpBase::Connect ( const char *  endpoint,
const char *  clientKey,
const struct AuthInfo auth 
)

UDPサーバーと接続します

引数
[in]endpointUDPサーバーアドレス
[in]clientKeyクライアントキー
[in]auth認証情報
呼び出し関係図:
被呼び出し関係図:

◆ Connect() [2/3]

bool DiarkisUdpBase::Connect ( const std::string &  endpoint,
const std::string &  clientKey,
const struct AuthInfo auth 
)

Connect(const char*, const char*, const struct AuthInfo*)と同じです

呼び出し関係図:

◆ Connect() [3/3]

bool DiarkisUdpBase::Connect ( const char *  endpoint,
const std::string &  clientKey,
const std::vector< uint8_t > &  sid,
const std::vector< uint8_t > &  key,
const std::vector< uint8_t > &  iv,
const std::vector< uint8_t > &  mackey 
)

UDPサーバーと接続する

引数
[in]endpointUDPサーバーのアドレス
[in]clientKeyクライアントキー
[in]sidセッションID
[in]key暗号化キー
[in]iv暗号化初期化ベクトル(IV)
[in]mackeyMACキー
呼び出し関係図:

◆ ConnectAsync() [1/2]

bool DiarkisUdpBase::ConnectAsync ( const char *  endpoint,
const char *  clientKey,
const struct AuthInfo auth 
)

サーバーに非同期スレッドを使って接続します

このメソッドは非同期の接続プロセスを起動した後、すぐに終了します。 非同期接続プロセスのステータスや結果を取得するために IsAsyncConnectRunning()GetAsyncConnectResult() を使用できます。

引数
[in]endpointUDPサーバーのアドレス
[in]clientKeyクライアントキー
[in]auth認証情報
呼び出し関係図:
被呼び出し関係図:

◆ ConnectAsync() [2/2]

bool DiarkisUdpBase::ConnectAsync ( const std::string &  endpoint,
const std::string &  clientKey,
const struct AuthInfo auth 
)

ConnectAsync()と同じです。

呼び出し関係図:

◆ ConnectDualModeAsync() [1/2]

bool DiarkisUdpBase::ConnectDualModeAsync ( const char *  endpoint,
const char *  clientKey,
const struct AuthInfo auth 
)

ソケットデュアルモード(IPv6の明示的サポート)を使用して非同期でサーバーに接続を試みます。 接続が成功した場合、GetConnectedEventが呼び出されます。 このメソッドでサーバーに接続すると、P2Pが無効になります。

引数
[in]endpointUDPサーバーアドレス
[in]clientKeyクライアントキー
[in]auth認証情報
呼び出し関係図:
被呼び出し関係図:

◆ ConnectDualModeAsync() [2/2]

bool DiarkisUdpBase::ConnectDualModeAsync ( const std::string &  endpoint,
const std::string &  clientKey,
const struct AuthInfo auth 
)

ConnectDualModeAsync()と同じ

呼び出し関係図:

◆ IsConnected()

bool DiarkisUdpBase::IsConnected ( )

UDPサーバーに接続しているかどうか

◆ IsAsyncConnectRunning()

bool DiarkisUdpBase::IsAsyncConnectRunning ( ) const

非同期接続プロセスが実行されているかどうかをチェックします。

戻り値
非同期接続プロセスが実行されている場合はtrue

◆ GetAsyncConnectResult()

bool DiarkisUdpBase::GetAsyncConnectResult ( System::Result result) const

非同期接続プロセスの結果を取得します。

引数
[out]result非同期接続プロセスのSystem::Result
戻り値
メソッドの処理が成功したかどうか

◆ Disconnect()

void DiarkisUdpBase::Disconnect ( )

UDPサーバーを切断します。

呼び出し関係図:

◆ Update()

void DiarkisUdpBase::Update ( )

クライアントライブラリ内のUDP処理を呼び出す更新関数。定期的に呼び出す必要があります。

◆ SetSchedulerAddNotifyEvent()

void DiarkisUdpBase::SetSchedulerAddNotifyEvent ( std::function< void()>  notifyEventFunc)

UDPに関連するイベントがスケジューラに追加された時に実行される関数を設定します。

◆ IsOffline()

bool DiarkisUdpBase::IsOffline ( )

UDPサーバーがシャットダウンの準備をしているかどうか

◆ Get()

std::shared_ptr< IDiarkisUdp > DiarkisUdpBase::Get ( )

IDiarkisUdpへのポインタを取得します

◆ GetGlobalAddress()

void DiarkisUdpBase::GetGlobalAddress ( Diarkis::StdString address)

自分の外部IPアドレスを取得します。

◆ GetLocalAddress()

bool DiarkisUdpBase::GetLocalAddress ( Diarkis::StdVector< Diarkis::StdString > &  addressLists)

自分自身のローカルIPアドレスを取得します。

◆ SendPing()

bool DiarkisUdpBase::SendPing ( void  )

UDPサーバーにPingを送信します。

サーバーからレスポンスが受信されると、GetPingEvent()で登録されたコールバックイベント(例:OnPing)がトリガーされます。

◆ SendEcho()

bool DiarkisUdpBase::SendEcho ( void  )

UDPサーバーにエコーを送信します。

サーバーから応答が受信されると、GetEchoEvent()で登録されたコールバックイベント(例:OnEcho)がトリガーされます。

◆ SendMigrate()

bool DiarkisUdpBase::SendMigrate ( void  )

現在の接続を別のサーバーに変更しようとします。

移行後もSID、暗号化キー、IV、およびMACキーは維持されます。

◆ ClearUdpBuffer()

void DiarkisUdpBase::ClearUdpBuffer ( void  )

ソケットの送受信バッファをクリアします

◆ SetSendThreadParam()

bool DiarkisUdpBase::SetSendThreadParam ( const DiarkisThreadScheduler scheduler)

UDP送信スレッドの優先度を指定します。

UDP送信スレッドの優先度を指定します。設定された場合は、Connect() 関数の前に呼び出す必要があります。
呼び出されない場合、OS標準のスレッドポリシーと優先度が適用されます。
ポリシーはUnixシステムにのみ有効な設定であり、Windowsに指定されても影響しません。

引数
[in]schedulerスレッドスケジューリング設定。ポリシー、優先度、およびアフィニティ マスクを設定してください。

◆ SetRecvThreadParam()

bool DiarkisUdpBase::SetRecvThreadParam ( const DiarkisThreadScheduler scheduler)

UDP 受信スレッドの優先度を指定します。

UDP 受信スレッドの優先度を指定します。設定された場合は、Connect() 関数を呼び出す前に呼び出す必要があります。
呼び出されない場合、OS の標準スレッドポリシーと優先度が適用されます。
policy は Unix システムにのみ有効な設定であり、指定されていても Windows には影響しません。

引数
[in]schedulerスレッドのスケジューリング設定。ポリシー、優先度、アフィニティマスクを設定します。

◆ SendCheckNATType()

Result DiarkisUdpBase::SendCheckNATType ( )

クライアントのNATタイプをチェックするためにサーバーにコマンドを送信します。 IDiarkisUdp::GetCheckNATTypeEvent(例:OnCheckNATType)で登録されたコールバックイベントがトリガーされます。

◆ OnConnect()

void DiarkisUdpBase::OnConnect ( const DiarkisConnectionEventArgs args)
protectedvirtual

サーバーに接続するときに呼び出されるコールバック関数です。

呼び出し関係図:

◆ OnDisconnect()

void DiarkisUdpBase::OnDisconnect ( bool  isReconnect)
protectedvirtual

サーバーから切断されたときに呼び出されるコールバック関数。

呼び出し関係図:

◆ OnOffline()

void DiarkisUdpBase::OnOffline ( void  )
protectedvirtual

サーバーがシャットダウンの準備をするときに呼び出されるコールバック関数。

◆ OnResponse()

void DiarkisUdpBase::OnResponse ( const DiarkisResponseEventArgs args,
DiarkisTransportType  tt 
)
protectedvirtual

サーバーからのレスポンスを受信したときに呼び出されるコールバック関数。

呼び出し関係図:

◆ OnPush()

void DiarkisUdpBase::OnPush ( const DiarkisPushEventArgs args,
DiarkisTransportType  tt 
)
protectedvirtual

サーバーからプッシュを受信したときに呼び出されるコールバック関数。

呼び出し関係図:

◆ OnEcho()

void DiarkisUdpBase::OnEcho ( const DiarkisUdpEchoEventArgs args)
protectedvirtual

サーバーからエコーを受信した際に呼び出されるコールバック関数。

呼び出し関係図:

◆ OnPing()

void DiarkisUdpBase::OnPing ( const DiarkisUdpPingEventArgs args)
protectedvirtual

サーバーからのpingを受信したときに呼び出されるコールバック関数。

呼び出し関係図:

◆ OnNotification()

void DiarkisUdpBase::OnNotification ( const DiarkisPushEventArgs args)
protectedvirtual

サーバーから通知を受信した際に呼び出されるコールバック関数。

呼び出し関係図:

◆ OnCheckNATType()

void DiarkisUdpBase::OnCheckNATType ( const DiarkisCheckNATTypeEventArgs args)
protectedvirtual

SendCheckNATTypeの応答によってトリガーされるコールバックイベント。

呼び出し関係図:

◆ SetConnectionInfo() [1/2]

bool DiarkisUdpBase::SetConnectionInfo ( const char *  clientKey,
const uint8_t *  sid,
size_t  sidSize,
const uint8_t *  key,
size_t  keySize,
const uint8_t *  iv,
size_t  ivSize,
const uint8_t *  mackey,
size_t  mackeySize 
)
protected

UDPサーバーに接続するための情報を設定します

引数
[in]clientKeyクライアントキー
[in]sidセッションID
[in]sidSizesidの長さ
[in]key暗号化キー
[in]keySizeキーの長さ
[in]iv暗号化初期化ベクトル(IV)
[in]ivSizeivの長さ
[in]mackeyMACキー
[in]mackeySizemackeyの長さ
呼び出し関係図:
被呼び出し関係図:

◆ SetConnectionInfo() [2/2]

bool DiarkisUdpBase::SetConnectionInfo ( const Diarkis::StdString clientKey,
const AuthInfo auth 
)
protected

UDPサーバーに接続するための情報を設定します

引数
[in]clientKeyクライアントキー
[in]auth認証情報
呼び出し関係図:

メンバ詳解

◆ udp_

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

IDiarkisUdpクラスへのポインター

◆ logger_

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

IDiarkisLoggerクラスへのポインター

◆ eventUnsubscriptions_

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

ラムダ関数のリスト

◆ schedulerAddNotifyEventFunc_

std::function<void()> DiarkisUdpBase::schedulerAddNotifyEventFunc_
protected

UDP関連のイベントがスケジューラに追加された時に呼び出されるプロセスを設定します。

◆ bOffline_

bool DiarkisUdpBase::bOffline_
protected

サーバーがシャットダウンの準備をしているかどうか

◆ ownGlobalAddress_

Diarkis::StdString DiarkisUdpBase::ownGlobalAddress_
protected

私のグローバルIPアドレス


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