![]() |
Diarkis C++Client Library API Document
|
Diarkisライブラリを操作するインタフェースの基本クラス [詳解]
#include <DiarkisInterfaceBase.h>
クラス | |
struct | ActiveInstanceList |
struct | AsyncGetEndpointArgs |
エンドポイントプロセスを非同期で取得する際に渡す引数 [詳解] | |
struct | RuntimeThreadData |
公開型 | |
enum | AsyncGetEndpointStatus { AsyncGetEndpointStatus::NotRunning, AsyncGetEndpointStatus::Running, AsyncGetEndpointStatus::Finish } |
エンドポイントを非同期で取得するプロセスの実行状況 [詳解] | |
公開メンバ関数 | |
DiarkisInterfaceBase (const char *userId, bool bInitBaseClass=true) | |
Diarkis インターフェースクラスのコンストラクタ [詳解] | |
DiarkisInterfaceBase (const std::string &userId, bool bInitBaseClass=true) | |
DiarkisInterfaceBase()と同じです [詳解] | |
virtual | ~DiarkisInterfaceBase () |
Diarkis インターフェースクラスのデストラクタ [詳解] | |
void | UpdateComponents () |
UDP、TCP、P2Pの更新機能 [詳解] | |
bool | ConnectTcp (void) |
TCPサーバーに接続する。 [詳解] | |
virtual bool | SetupTcp (void) |
DiarkisTcpBaseクラスを初期化する [詳解] | |
bool | ConnectTcp (const char *tcpEndpoint) |
TCPサーバーに接続します。接続の状態は、DiarkisTCPBase::IsConnected() で確認できます。 [詳解] | |
bool | ConnectTcp (const std::string &tcpEndpoint) |
ConnectTcp()と同じです [詳解] | |
bool | ConnectUdp (void) |
UDPサーバーに接続する。 [詳解] | |
bool | GetEndpoint (const char *host, const char *clientKey, const char *serverType, char *endpoint, size_t endpointBuf) |
HTTPサーバーからサーバー接続情報を取得します [詳解] | |
bool | GetEndpoint (const std::string &host, const std::string &clientKey, const std::string &type, Diarkis::StdString &endpoint) |
GetEndpoint()と同じ [詳解] | |
virtual bool | SetupUdp (void) |
DiarkisUdpBaseクラスを初期化する [詳解] | |
bool | ConnectUdp (const char *udpEndpoint, const char *type, struct AuthInfo *auth) |
UDPサーバーに接続します。接続の状態はDiarkisUDPBase::IsConnected()で確認できます。 [詳解] | |
bool | ConnectUdp (const char *udpEndpoint) |
ConnectUdp(const char*, const char*, struct AuthInfo*)と同じです [詳解] | |
bool | ConnectUdp (const std::string &udpEndpoint) |
ConnectUdp(const char*, const char*, struct AuthInfo*)と同じです [詳解] | |
bool | ConnectUdpAsync (const char *udpEndpoint) |
UDPサーバーに接続します。接続の状態はDiarkisUDPBase::IsConnected()で確認できます。 [詳解] | |
bool | ConnectUdpAsync (const std::string &udpEndpoint) |
ConnectUdpAsync()と同じです [詳解] | |
bool | ConnectUdpDualModeAsync (const char *udpEndpoint) |
ソケットデュアルモード(IPv6の明示的なサポート)を使用して非同期でサーバーに接続を試みます。 接続が成功した場合、GetConnectedEventが呼び出されます。 このメソッドでサーバーに接続すると、P2Pが無効になります。 [詳解] | |
bool | ConnectUdpDualModeAsync (const std::string &udpEndpoint) |
ConnectUdpDualModeAsync()と同じです [詳解] | |
void | GetAuthInfo (struct AuthInfo *auth) |
GetEndpoint() で取得した AuthInfo を取得します。 [詳解] | |
virtual void | SetupP2P (void) |
P2P設定関数 [詳解] | |
void | CloseP2P (void) |
すべてのP2P接続を切断します [詳解] | |
virtual void | SetupRoom (bool bRetry=false) |
virtual void | SetupSession (bool bRetry=false) |
Session機能のセットアップ関数 [詳解] | |
virtual void | SetupRpc () |
RPCのセットアップ関数 [詳解] | |
virtual void | SetupField (void) |
Field関数のセットアップ関数 [詳解] | |
virtual void | SetupGroup (bool bRetry) |
Group関数のセットアップ関数です [詳解] | |
virtual void | SetupMatchMaker (void) |
MatchMaker機能の設定関数 [詳解] | |
virtual void | SetupDirectMessage (void) |
DirectMessageのセットアップ関数 [詳解] | |
virtual void | SetupProfile (uint32_t interval, uint32_t buffer, bool p2pRandomStart=true) |
プロファイル機能の設定 [詳解] | |
void | SetHost (const char *host) |
接続するためのHTTPサーバーアドレスを設定する [詳解] | |
void | SetHost (const std::string &host) |
SetHost()と同じ [詳解] | |
Diarkis::StdString | GetHost () const |
HTTPサーバーアドレスを取得する [詳解] | |
const Diarkis::StdString & | GetClientKey () const |
接続先のクライアントキーを取得する [詳解] | |
void | SetClientKey (const char *clientKey) |
接続先のクライアントキーを設定する [詳解] | |
void | SetClientKey (const std::string &clientKey) |
SetClientKey()と同じです [詳解] | |
const Diarkis::StdString & | GetUid () const |
ユーザーIDを取得する [詳解] | |
Diarkis::StdString | GetSid () const |
SIDを取得する [詳解] | |
void | SetSid (const char *sid) |
SIDを設定する [詳解] | |
void | SetSid (const std::string &sid) |
SetSid()と同じです [詳解] | |
std::shared_ptr< LoggerFactory > | GetLoggerFactory () |
ロガーを取得する [詳解] | |
std::shared_ptr< ILoggerBackend > | GetConsoleLoggerBackend () |
コンソール出力ログを取得する(現在は未使用) [詳解] | |
std::shared_ptr< ILoggerBackend > | GetDebugLoggerBackend () |
デバッグ出力ログを取得する [詳解] | |
std::shared_ptr< DiarkisUdpBase > | GetUdpBase () |
DiarkisUdpBaseクラスを取得する [詳解] | |
std::shared_ptr< DiarkisTcpBase > | GetTcpBase () |
DiarkisTcpBaseクラスを取得する [詳解] | |
std::shared_ptr< DiarkisP2PBase > | GetP2PBase () |
DiarkisP2PBase クラスを取得する [詳解] | |
std::shared_ptr< DiarkisRoomBase > | GetRoomBase () |
DiarkisRoomBaseクラスを取得する [詳解] | |
std::shared_ptr< DiarkisSessionBase > | GetSessionBase () |
DiarkisSessionBaseクラスを取得する [詳解] | |
std::shared_ptr< DiarkisGroupBase > | GetGroupBase () |
DiarkisGroupBaseクラスを取得します [詳解] | |
std::shared_ptr< DiarkisFieldBase > | GetFieldBase () |
DiarkisFieldBaseクラスを取得する [詳解] | |
std::shared_ptr< DiarkisMatchMakerBase > | GetMatchMakerBase () |
DiarkisMatchMakerBase クラスを取得する [詳解] | |
std::shared_ptr< DiarkisRpcBase > | GetRpcBase () |
DiarkisRpcBaseクラスを取得する [詳解] | |
std::shared_ptr< DiarkisDirectMessageBase > | GetDirectMessageBase () |
DiarkisDirectMessageBaseクラスを取得する [詳解] | |
std::shared_ptr< Diarkis::Network::IDiarkisProfile > | GetProfile () |
プロファイリング機能のためのインターフェースであるIDiarkisProfileクラスを取得します [詳解] | |
void | Stop () |
更新ループを停止する [詳解] | |
void | Disconnect () |
TCP、UDP、およびP2P接続を切断する [詳解] | |
void | SendPing (void) |
UDPサーバーにpingを送信する [詳解] | |
void | SendEcho (void) |
UDPサーバーにエコーを送信します [詳解] | |
bool | IsOffline (void) |
UDPまたはTCPサーバーがシャットダウンの準備をしているかどうか [詳解] | |
void | StartP2P (void) |
DiarkisRoomBase::SendStartP2PSync()を呼び出します [詳解] | |
uint16_t | GetP2PConnectedNum (void) |
P2P接続されたクライアントの数を取得します [詳解] | |
void | CreateRoom (uint16_t maxMembers, bool allowEmpty, bool join, uint16_t ttl, uint32_t interval) |
新しいRoomを作成します。 [詳解] | |
void | RandomJoinRoom (uint16_t maxMembers, uint16_t ttl, uint32_t interval, bool allowEmpty) |
利用可能な場合は部屋に参加し、そうでない場合は新しい部屋を作成します。 [詳解] | |
void | JoinRoom () |
ルームに参加します。 [詳解] | |
void | JoinRoom (const char *roomID) |
ルームに参加します。 [詳解] | |
void | JoinRoom (const std::string &roomID) |
JoinRoom(const char*)と同じです [詳解] | |
void | SendMessageToRoom (const char **memberIDs, size_t memberIDsCount, const uint8_t *payload, size_t payloadSize, bool reliable) |
特定のメンバーにメッセージを送信します。 [詳解] | |
void | SendMessageToRoom (const std::vector< std::string > &memberIDs, const std::vector< uint8_t > &payload, bool reliable) |
SendMessageToRoom()と同じです [詳解] | |
void | SendLeaveRoom () |
Roomから退出する。 [詳解] | |
void | FindByTypeRoom (uint32_t roomType, uint32_t limit) |
同じタイプのRoomを検索します。 [詳解] | |
void | RegisterRoom (uint32_t roomType, const char *roomName, const char *roomMetadata) |
参加しているRoomに関する追加情報を登録します。 [詳解] | |
void | RegisterRoom (uint32_t roomType, const std::string &roomName, const std::string &roomMetadata) |
RegisterRoom()と同じです [詳解] | |
void | SendMigrateRoom (void) |
ルームを別のサーバーに移動します。 [詳解] | |
void | SendGetOwnerID (void) |
ルームのオーナーのユーザーIDを取得します。 [詳解] | |
void | SendGetMemberIDs (void) |
Roomに参加しているメンバーのユーザーIDのリストを取得します。 [詳解] | |
Diarkis::StdString | GetRoomID () |
参加しているRoomのRoom IDを取得します。 [詳解] | |
void | SendCreateGroup (bool allowEmpty, bool join, uint16_t ttl) |
新しいグループを作成します。 [詳解] | |
void | SendJoinGroup (const char *groupID, const char *message) |
既存のグループに参加します。 [詳解] | |
void | SendJoinGroup (const std::string &groupID, const std::string &message) |
SendJoinGroup()と同じです [詳解] | |
void | SendRandomJoinGroup (uint16_t ttl, const char *message, uint32_t interval=200) |
参加できるグループがあれば、そのグループに参加し、そうでない場合は新しいグループを作成します。 [詳解] | |
void | SendRandomJoinGroup (uint16_t ttl, const std::string &message, uint32_t interval=200) |
SendRandomJoinGroup()と同じです [詳解] | |
void | SendLeaveGroup (const char *groupID, const char *message) |
指定されたグループから退出します。 [詳解] | |
void | SendLeaveGroup (const std::string &groupID, const std::string &message) |
SendLeaveGroup()と同じです [詳解] | |
Diarkis::StdString | GetGroupID () |
参加しているGroupのIDを取得する。 [詳解] | |
void | ClearUdpBuffer () |
Socketの送受信バッファをクリアする [詳解] | |
bool | RequestEndpointAsync (const char *host, const char *clientKey, const char *type, DiarkisThreadPolicy policy, int priority, uint32_t affinityMask, uint32_t stackSize) |
HTTPサーバーに接続し、非同期処理を行ってTCP/UDPエンドポイントを取得します。 [詳解] | |
bool | RequestEndpointAsync (const std::string &host, const std::string &clientKey, const std::string &type, DiarkisThreadPolicy policy, int priority, uint32_t affinityMask, uint32_t stackSize) |
RequestEndpointAsyncと同じです [詳解] | |
AsyncGetEndpointStatus | GetEndpointAsyncStatus () const |
サーバーエンドポイントを非同期で取得するプロセスの進行状況を取得する [詳解] | |
bool | GetAsyncEndpointResult (Diarkis::StdString &endpoint) const |
非同期でエンドポイントを取得する結果を取得する [詳解] | |
静的公開メンバ関数 | |
static bool | DiarkisInit (const char *logDirName, LogOutType out=DEBUG_OUT, bool bLog=true, std::shared_ptr< ILoggerBackend > customLogger=nullptr) |
Diarkisの初期化 [詳解] | |
static bool | DiarkisInit (const std::string &logDirName, LogOutType out=DEBUG_OUT, bool bLog=true, std::shared_ptr< ILoggerBackend > customLogger=nullptr) |
DiarkisInit()と同じです [詳解] | |
static bool | DiarkisDestroy () |
Diarkis終了処理 [詳解] | |
限定公開メンバ関数 | |
void | InitAndStartup (bool bInitBaseClass) |
ログと各モジュールのクラスを初期化する [詳解] | |
void | SchedulerAddNotifyEvent () |
TCP/UDP/P2Pのスケジューラにイベントが追加されたときに実行されるイベントです。 [詳解] | |
void | TerminateGetEndpointAsyncThread () |
エンドポイント非同期プロセスの取得スレッドを終了する [詳解] | |
静的限定公開メンバ関数 | |
static void | CreateLogFolder () |
ログ出力先のフォルダを作成する [詳解] | |
static Diarkis::System::Result | RuntimeLoop (void *owner) |
Diarkisクライアントライブラリの更新を呼び出すためのループ関数 [詳解] | |
static void | InitializeLoggerEnvironment () |
ログアウトタイプに応じてDiarkisのロガーを初期化します [詳解] | |
static bool | IsLogOutputTypeFile () |
ログがファイルに出力されているかを返す。 [詳解] | |
static Diarkis::System::Result | GetEndpointAsync (void *owner) |
RequestEndpointAsync() によって実行されるスレッド [詳解] | |
限定公開変数類 | |
std::shared_ptr< DiarkisTcpBase > | tcpBase_ |
DiarkisTcpBaseクラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisUdpBase > | udpBase_ |
DiarkisUdpBase クラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisP2PBase > | p2pBase_ |
DiarkisP2PBase クラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisRoomBase > | roomBase_ |
DiarkisRoomBaseクラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisSessionBase > | sessionBase_ |
DiarkisSessionBaseクラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisGroupBase > | groupBase_ |
DiarkisGroupBaseクラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisFieldBase > | fieldBase_ |
DiarkisFieldBaseクラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisMatchMakerBase > | matchMakerBase_ |
DiarkisMatchMakerBaseクラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisRpcBase > | rpcBase_ |
DiarkisRpcBase クラスへのポインタ [詳解] | |
std::shared_ptr< DiarkisDirectMessageBase > | dmBase_ |
DiarkisDirectMessageBaseクラスへのポインター [詳解] | |
std::shared_ptr< Diarkis::Network::IDiarkisProfile > | profile_ |
IDiarkisProfileクラスへのポインタ [詳解] | |
Diarkis::StdString | host_ |
接続するHTTPサーバーのアドレス [詳解] | |
Diarkis::StdString | clientKey_ |
接続するHTTPサーバーのクライアントキー [詳解] | |
const Diarkis::StdString | uid_ |
自分のユーザーID [詳解] | |
Diarkis::StdString | serverType_ |
サーバータイプ [詳解] | |
Diarkis::StdString | sid_ |
セッションID [詳解] | |
AuthInfo | authInfo_ |
認証情報 [詳解] | |
std::shared_ptr< IDiarkisLogger > | logger_ |
ロガークラスへのポインター [詳解] | |
std::shared_ptr< LoggerFactory > | loggerFactory_ |
LoggerFactoryへのポインタ [詳解] | |
std::mutex | connectioninfoMutex_ |
GetEndpointメソッドで変更される変数用のミューテックス [詳解] | |
std::mutex | asyncGetEndpointMutex_ |
非同期でエンドポイントを取得する全体のプロセスのためのミューテックス [詳解] | |
AsyncGetEndpointArgs | asyncGetEndpointArgs_ |
エンドポイントプロセスを非同期で取得する際の引数 [詳解] | |
AsyncGetEndpointStatus | asyncGetEndpointStatus_ |
エンドポイントを非同期で取得するプロセスの進行状況 [詳解] | |
bool | asyncGetEndpointResult_ |
エンドポイントを非同期で取得するプロセスの結果 [詳解] | |
Diarkis::StdString | asyncEndpointResult_ |
エンドポイントを非同期で取得するプロセスの結果 [詳解] | |
AuthInfo | asyncAuthResult_ |
エンドポイントを非同期で取得するプロセスの結果 [詳解] | |
std::shared_ptr< Diarkis::System::DiarkisThread > | getEndpointAsyncThread_ |
エンドポイントを非同期で取得するプロセスに使用されるスレッド [詳解] | |
std::atomic< bool > | internalSchedulerUpdated_ |
スケジューラが更新されている場合に有効になるフラグ [詳解] | |
静的限定公開変数類 | |
static RuntimeThreadData | runtimeThreadData_ |
ランタイムスレッドのデータ [詳解] | |
static ActiveInstanceList | activeInstances_ |
アクティブインスタンスのリストです。 [詳解] | |
static std::shared_ptr< LoggerFactory > | globalLoggerFactory_ = nullptr |
DiarkisInterfaceBaseのグローバルプロセスのロギングに使用されるLoggerFactory [詳解] | |
static std::shared_ptr< Diarkis::StdString > | logDir_ = nullptr |
ログ出力ディレクトリ名 [詳解] | |
static std::shared_ptr< ThreadedLoggerBackend > | threadLoggerBackend_ = nullptr |
集団出力用のスレッド化されたロガー [詳解] | |
static std::shared_ptr< ILoggerBackend > | consoleLoggerBackend_ = nullptr |
コンソール出力用のロガー [詳解] | |
static std::shared_ptr< ILoggerBackend > | debugLoggerBackend_ = nullptr |
デバッグ出力のためのロガー [詳解] | |
static std::shared_ptr< ILoggerBackend > | fileLoggerBackend_ = nullptr |
ファイル出力用のロガー [詳解] | |
static std::shared_ptr< ILoggerBackend > | customLoggerBackend_ = nullptr |
カスタムロガー [詳解] | |
static std::shared_ptr< ILoggerBackend > | aggregatedLoggerBackend_ = nullptr |
LoggerFactoryで使用されるロガーインターフェース [詳解] | |
static LogOutType | logOutType_ = LogOutType::FILE_OUT |
デバッグ出力のタイプ [詳解] | |
static bool | bOutputLog_ = false |
ログ出力するかどうか [詳解] | |
Diarkisライブラリを操作するインタフェースの基本クラス
|
strong |
DiarkisInterfaceBase::DiarkisInterfaceBase | ( | const char * | userId, |
bool | bInitBaseClass = true |
||
) |
DiarkisInterfaceBase::DiarkisInterfaceBase | ( | const std::string & | userId, |
bool | bInitBaseClass = true |
||
) |
|
virtual |
|
static |
Diarkisの初期化
[in] | logDirName | ログ出力ディレクトリ名 |
[in] | out | ログ出力先を指定します (FILE_OUT、DEBUG_OUT)。 |
[in] | bLog | ログを出力するかどうか |
[in] | customLogger | カスタムロガー指定。Diarkis内部ログをアプリ側のログに出力するために使用されます。 |
|
static |
|
static |
Diarkis終了処理
void DiarkisInterfaceBase::UpdateComponents | ( | ) |
UDP、TCP、P2Pの更新機能
bool DiarkisInterfaceBase::ConnectTcp | ( | void | ) |
TCPサーバーに接続する。
|
virtual |
DiarkisTcpBaseクラスを初期化する
bool DiarkisInterfaceBase::ConnectTcp | ( | const char * | tcpEndpoint | ) |
TCPサーバーに接続します。接続の状態は、DiarkisTCPBase::IsConnected() で確認できます。
[in] | tcpEndpoint | TCPサーバーのアドレス |
bool DiarkisInterfaceBase::ConnectTcp | ( | const std::string & | tcpEndpoint | ) |
bool DiarkisInterfaceBase::ConnectUdp | ( | void | ) |
UDPサーバーに接続する。
bool DiarkisInterfaceBase::GetEndpoint | ( | const char * | host, |
const char * | clientKey, | ||
const char * | serverType, | ||
char * | endpoint, | ||
size_t | endpointBuf | ||
) |
HTTPサーバーからサーバー接続情報を取得します
[in] | host | HTTPサーバーアドレス |
[in] | clientKey | HTTPサーバーのクライアントキー |
[in] | serverType | サーバータイプ |
[in] | endpoint | 取得したサーバーアドレス |
[in] | endpointBuf | エンドポイントの長さ |
bool DiarkisInterfaceBase::GetEndpoint | ( | const std::string & | host, |
const std::string & | clientKey, | ||
const std::string & | type, | ||
Diarkis::StdString & | endpoint | ||
) |
|
virtual |
DiarkisUdpBaseクラスを初期化する
bool DiarkisInterfaceBase::ConnectUdp | ( | const char * | udpEndpoint, |
const char * | type, | ||
struct AuthInfo * | auth | ||
) |
UDPサーバーに接続します。接続の状態はDiarkisUDPBase::IsConnected()で確認できます。
[in] | udpEndpoint | UDPサーバーのアドレス |
[in] | type | サーバータイプ |
[in] | auth | 認証情報 |
bool DiarkisInterfaceBase::ConnectUdp | ( | const char * | udpEndpoint | ) |
bool DiarkisInterfaceBase::ConnectUdp | ( | const std::string & | udpEndpoint | ) |
bool DiarkisInterfaceBase::ConnectUdpAsync | ( | const char * | udpEndpoint | ) |
UDPサーバーに接続します。接続の状態はDiarkisUDPBase::IsConnected()で確認できます。
このメソッドは非同期接続プロセスを起動した後、すぐにリターンします。 非同期プロセスの進行状況はDiarkisUdpbase::IsAsyncConnectRunning()を使用して観察できます。 非同期プロセスの結果はDiarkisUdpbase::GetAsyncConnectResult()を使用して取得できます。 接続が成功したかどうかはDiarkisUdpBase::IsConnected()で確認されます。
[in] | udpEndpoint | UDPサーバーのアドレス |
bool DiarkisInterfaceBase::ConnectUdpAsync | ( | const std::string & | udpEndpoint | ) |
bool DiarkisInterfaceBase::ConnectUdpDualModeAsync | ( | const char * | udpEndpoint | ) |
ソケットデュアルモード(IPv6の明示的なサポート)を使用して非同期でサーバーに接続を試みます。 接続が成功した場合、GetConnectedEventが呼び出されます。 このメソッドでサーバーに接続すると、P2Pが無効になります。
[in] | udpEndpoint | リモートエンドポイントのアドレス/ホスト名 |
bool DiarkisInterfaceBase::ConnectUdpDualModeAsync | ( | const std::string & | udpEndpoint | ) |
void DiarkisInterfaceBase::GetAuthInfo | ( | struct AuthInfo * | auth | ) |
GetEndpoint() で取得した AuthInfo を取得します。
[in] | auth | AuthInfo を格納するためのポインタ |
|
virtual |
P2P設定関数
P2P接続はUDPプロトコルを使用している場合のみ利用可能です。
void DiarkisInterfaceBase::CloseP2P | ( | void | ) |
すべてのP2P接続を切断します
|
virtual |
|
virtual |
Session機能のセットアップ関数
この関数を呼び出す前に、使用するプロトコルに応じてSetupUdpまたはSetupTcpを呼び出す必要があります。
[in] | bRetry | セッションに参加できなかった後に再接続する場合はtrueで呼び出します。 この関数を最初に呼び出すときは、falseで呼び出す必要があります。 |
|
virtual |
RPCのセットアップ関数
|
virtual |
Field関数のセットアップ関数
この関数を呼び出す前に、使用するプロトコルに応じてSetupUdpまたはSetupTcpを呼び出す必要があります。
|
virtual |
Group関数のセットアップ関数です
この関数を呼び出す前に、使用するプロトコルに応じてSetupUdpまたはSetupTcpを呼び出す必要があります。
[in] | bRetry | グループに参加できなかった後に再接続する場合はtrueで呼び出します。 この関数を最初に呼び出すときは、falseで呼び出す必要があります。 |
|
virtual |
MatchMaker機能の設定関数
この関数を呼び出す前に、使用するプロトコルに応じてSetupUdpまたはSetupTcpを呼び出す必要があります。
|
virtual |
DirectMessageのセットアップ関数
この関数を呼び出す前に、使用するプロトコルに応じて、SetupUdpまたはSetupTcpを呼び出す必要があります。
|
virtual |
プロファイル機能の設定
P2PまたはRoomに接続されたクライアント間でプロファイルデータを交換します
[in] | interval | プロファイルパケットを送信する間隔(デフォルト5000 ms、最小300 ms) |
[in] | buffer | 格納されるプロファイリングデータの数(デフォルトは16で、最新の16データを保存します。最小8、最大256) |
[in] | p2pRandomStart | P2Pで各接続されたユーザーにプロファイルパケットを同時に送信しないように、初期送信タイミングをランダムな時間で段階的にするかどうか |
void DiarkisInterfaceBase::SetHost | ( | const char * | host | ) |
接続するためのHTTPサーバーアドレスを設定する
void DiarkisInterfaceBase::SetHost | ( | const std::string & | host | ) |
Diarkis::StdString DiarkisInterfaceBase::GetHost | ( | ) | const |
HTTPサーバーアドレスを取得する
const Diarkis::StdString & DiarkisInterfaceBase::GetClientKey | ( | ) | const |
接続先のクライアントキーを取得する
void DiarkisInterfaceBase::SetClientKey | ( | const char * | clientKey | ) |
接続先のクライアントキーを設定する
~@japanese
void DiarkisInterfaceBase::SetClientKey | ( | const std::string & | clientKey | ) |
const Diarkis::StdString & DiarkisInterfaceBase::GetUid | ( | ) | const |
ユーザーIDを取得する
Diarkis::StdString DiarkisInterfaceBase::GetSid | ( | ) | const |
SIDを取得する
void DiarkisInterfaceBase::SetSid | ( | const char * | sid | ) |
SIDを設定する
void DiarkisInterfaceBase::SetSid | ( | const std::string & | sid | ) |
std::shared_ptr< LoggerFactory > DiarkisInterfaceBase::GetLoggerFactory | ( | ) |
ロガーを取得する
std::shared_ptr< ILoggerBackend > DiarkisInterfaceBase::GetConsoleLoggerBackend | ( | ) |
コンソール出力ログを取得する(現在は未使用)
std::shared_ptr< ILoggerBackend > DiarkisInterfaceBase::GetDebugLoggerBackend | ( | ) |
デバッグ出力ログを取得する
std::shared_ptr< DiarkisUdpBase > DiarkisInterfaceBase::GetUdpBase | ( | ) |
DiarkisUdpBaseクラスを取得する
std::shared_ptr< DiarkisTcpBase > DiarkisInterfaceBase::GetTcpBase | ( | ) |
DiarkisTcpBaseクラスを取得する
std::shared_ptr< DiarkisP2PBase > DiarkisInterfaceBase::GetP2PBase | ( | ) |
DiarkisP2PBase クラスを取得する
std::shared_ptr< DiarkisRoomBase > DiarkisInterfaceBase::GetRoomBase | ( | ) |
DiarkisRoomBaseクラスを取得する
std::shared_ptr< DiarkisSessionBase > DiarkisInterfaceBase::GetSessionBase | ( | ) |
DiarkisSessionBaseクラスを取得する
std::shared_ptr< DiarkisGroupBase > DiarkisInterfaceBase::GetGroupBase | ( | ) |
DiarkisGroupBaseクラスを取得します
std::shared_ptr< DiarkisFieldBase > DiarkisInterfaceBase::GetFieldBase | ( | ) |
DiarkisFieldBaseクラスを取得する
std::shared_ptr< DiarkisMatchMakerBase > DiarkisInterfaceBase::GetMatchMakerBase | ( | ) |
DiarkisMatchMakerBase クラスを取得する
std::shared_ptr< DiarkisRpcBase > DiarkisInterfaceBase::GetRpcBase | ( | ) |
DiarkisRpcBaseクラスを取得する
std::shared_ptr< DiarkisDirectMessageBase > DiarkisInterfaceBase::GetDirectMessageBase | ( | ) |
DiarkisDirectMessageBaseクラスを取得する
std::shared_ptr< Diarkis::Network::IDiarkisProfile > DiarkisInterfaceBase::GetProfile | ( | ) |
プロファイリング機能のためのインターフェースであるIDiarkisProfileクラスを取得します
void DiarkisInterfaceBase::Stop | ( | ) |
更新ループを停止する
void DiarkisInterfaceBase::Disconnect | ( | ) |
TCP、UDP、およびP2P接続を切断する
void DiarkisInterfaceBase::SendPing | ( | void | ) |
UDPサーバーにpingを送信する
void DiarkisInterfaceBase::SendEcho | ( | void | ) |
UDPサーバーにエコーを送信します
bool DiarkisInterfaceBase::IsOffline | ( | void | ) |
UDPまたはTCPサーバーがシャットダウンの準備をしているかどうか
void DiarkisInterfaceBase::StartP2P | ( | void | ) |
uint16_t DiarkisInterfaceBase::GetP2PConnectedNum | ( | void | ) |
P2P接続されたクライアントの数を取得します
void DiarkisInterfaceBase::CreateRoom | ( | uint16_t | maxMembers, |
bool | allowEmpty, | ||
bool | join, | ||
uint16_t | ttl, | ||
uint32_t | interval | ||
) |
新しいRoomを作成します。
GetCreateEvent() で登録されたコールバックイベント(例:OnRoomCreation)がトリガーされます。
[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 msです。 |
void DiarkisInterfaceBase::RandomJoinRoom | ( | uint16_t | maxMembers, |
uint16_t | ttl, | ||
uint32_t | interval, | ||
bool | allowEmpty | ||
) |
利用可能な場合は部屋に参加し、そうでない場合は新しい部屋を作成します。
新しい部屋が作成されると、GetCreateEvent()(例:OnRoomCreationに登録されたコールバックイベント)と
GetJoinEvent()(例:OnRoomJoinに登録されたコールバックイベント)に登録されたコールバックイベントがトリガーされます。
既存の部屋に参加する場合、GetJoinEvent()に登録されたコールバックイベントのみがトリガーされます。
[in] | maxMembers | 作成される部屋に参加できるクライアントの最大数。 |
[in] | ttl | 部屋が空になってからの期間(秒単位)、allowEmptyがtrueに設定されている場合にのみ使用されます。 |
[in] | interval | サーバーがメッセージを処理する間隔をミリ秒単位で指定します。 メッセージはサーバーで指定された間隔時間にまとめて送信されます。 intervalの値が大きい場合、サーバーの負荷が軽減されますが、メッセージの受信に遅延が生じます。 intervalの値が小さい場合、サーバーの負荷が増加しますが、メッセージはサーバーから直ちに送信されます。 デフォルト値は200 msです。 |
[in] | allowEmpty | 誰も参加しないときでもクライアントが部屋を保持するかどうかを決定します。 |
void DiarkisInterfaceBase::JoinRoom | ( | ) |
ルームに参加します。
GetJoinEvent() で登録されたコールバックイベント(例:OnRoomJoin)がトリガーされます。
ルームのメンバーには GetMemberJoinEvent() で登録されたコールバックイベント(例:OnRoomMemberJoin)がトリガーされます。 uid で指定されたユーザーIDはコールバックイベントから受け取ることができます。
void DiarkisInterfaceBase::JoinRoom | ( | const char * | roomID | ) |
ルームに参加します。
GetJoinEvent() で登録されたコールバックイベント(例:OnRoomJoin)がトリガーされます。
GetMemberJoinEvent() で登録されたコールバックイベント(例:OnRoomMemberJoin)が、ルームのメンバーにトリガーされます。 uid で指定されたユーザーIDは、コールバックイベントから受け取ることができます。
[in] | roomID | 参加するルームのID |
void DiarkisInterfaceBase::JoinRoom | ( | const std::string & | roomID | ) |
void DiarkisInterfaceBase::SendMessageToRoom | ( | const char ** | memberIDs, |
size_t | memberIDsCount, | ||
const uint8_t * | payload, | ||
size_t | payloadSize, | ||
bool | reliable | ||
) |
特定のメンバーにメッセージを送信します。
GetMemberMessageEvent() で登録されたコールバックイベント(例:OnRoomMemberMessage)がトリガーされます。
[in] | memberIDs | 送信するメンバーのユーザーIDのリスト |
[in] | memberIDsCount | memberIDの数 |
[in] | payload | 送信するメッセージ |
[in] | payloadSize | ペイロードの長さ |
[in] | reliable | メッセージが信頼性のある通信(RUDP)を介して送信されるかどうかを決定します。TCPプロトコルの場合は無視されます。 |
void DiarkisInterfaceBase::SendMessageToRoom | ( | const std::vector< std::string > & | memberIDs, |
const std::vector< uint8_t > & | payload, | ||
bool | reliable | ||
) |
void DiarkisInterfaceBase::SendLeaveRoom | ( | ) |
Roomから退出する。
GetLeaveEvent()で登録されたコールバックイベント(例:OnRoomLeave)がトリガーされる。
退出が成功した場合、GetMemberLeaveEvent()で登録されたコールバックイベント(例:OnRoomMemberLeave)が
Roomの各メンバーに対してトリガーされる。
void DiarkisInterfaceBase::FindByTypeRoom | ( | uint32_t | roomType, |
uint32_t | limit | ||
) |
同じタイプのRoomを検索します。
GetFindByTypeEvnet()で登録されたコールバックイベント(たとえば、OnRoomFindByType)がトリガーされます。
コールバックイベントでは、検索結果のRoomリストを受け取ることができます。
[in] | roomType | 検索するRoomのタイプ |
[in] | limit | 検索結果のRoomリストの最大数 |
void DiarkisInterfaceBase::RegisterRoom | ( | uint32_t | roomType, |
const char * | roomName, | ||
const char * | roomMetadata | ||
) |
参加しているRoomに関する追加情報を登録します。
FindRoomsByTypeによるタイプの検索に影響します。
[in] | roomType | Roomのタイプ |
[in] | roomName | Roomの名前 |
[in] | roomMetadata | Roomの拡張された文字列 |
void DiarkisInterfaceBase::RegisterRoom | ( | uint32_t | roomType, |
const std::string & | roomName, | ||
const std::string & | roomMetadata | ||
) |
void DiarkisInterfaceBase::SendMigrateRoom | ( | void | ) |
ルームを別のサーバーに移動します。
ルームのオーナーのみがこの関数を呼び出すことができます。
正常に実行されると、サーバーからルームの各メンバーに通知が送信されます。
また、GetMigrateEvent()(例:OnRoomMigrateで登録されたコールバックイベント)がトリガーされます。
ライブラリは内部的に現在参加しているルームから離脱し、新しいルームに参加します。
void DiarkisInterfaceBase::SendGetOwnerID | ( | void | ) |
ルームのオーナーのユーザーIDを取得します。
GetOwnerIDEvent() で登録されたコールバックイベント(例:OnGetOwnerID)がトリガーされます。
void DiarkisInterfaceBase::SendGetMemberIDs | ( | void | ) |
Roomに参加しているメンバーのユーザーIDのリストを取得します。
GetMemberIDSEvent() に登録されたコールバックイベント(例:OnRoomMemberIDs)がトリガーされます。
Diarkis::StdString DiarkisInterfaceBase::GetRoomID | ( | ) |
参加しているRoomのRoom IDを取得します。
void DiarkisInterfaceBase::SendCreateGroup | ( | bool | allowEmpty, |
bool | join, | ||
uint16_t | ttl | ||
) |
新しいグループを作成します。
GetCreateEvent() で登録されたコールバックイベント(例:OnGroupCreation)がトリガーされます。
[in] | allowEmpty | クライアントが誰も参加していない場合にもグループを保持するかどうかを決定します。 true = クライアントがいなくてもグループを保持します。 false = クライアントがいなければ、ttl で指定された時間が経過した後、グループは破棄されます。 |
[in] | join | 新しいグループが作成された後に参加するかどうかを決定します。 true = 作成された後にグループに参加します。この場合、サーバーは Join リクエストに応答しません。 false = グループの作成のみ行います。グループに参加したい場合は、別途 Join を実行する必要があります。 |
[in] | ttl | グループが空になった後の存在時間(秒単位)を指定します。allowEmpty が true に設定されている場合にのみ使用されます。 |
void DiarkisInterfaceBase::SendJoinGroup | ( | const char * | groupID, |
const char * | message | ||
) |
既存のグループに参加します。
GetJoinEvent() に登録されたコールバックイベント(例:OnGroupJoin)がトリガーされます。
対象グループのメンバーについて、GetMemberJoinEvent() に登録されたコールバックイベント(例:OnGroupMemberJoin)がトリガーされます。
[in] | groupID | 参加するグループのID |
[in] | message | 参加時にグループメンバーにメッセージを送信します。 たとえば、新たに参加したメンバーのユーザーIDを通知するために、ユーザーIDを含めることができます。 |
void DiarkisInterfaceBase::SendJoinGroup | ( | const std::string & | groupID, |
const std::string & | message | ||
) |
void DiarkisInterfaceBase::SendRandomJoinGroup | ( | uint16_t | ttl, |
const char * | message, | ||
uint32_t | interval = 200 |
||
) |
参加できるグループがあれば、そのグループに参加し、そうでない場合は新しいグループを作成します。
既存のグループに参加すると、GetJoinEvent()に登録されたコールバックイベント(例:OnGroupJoin)がトリガーされます。
新しいグループが作成されると、GetCreateEvent()に登録されたコールバックイベント(例:OnGroupCreation)がトリガーされます。
[in] | ttl | グループが空になってからの経過時間(秒単位)、allowEmptyがtrueに設定されている場合にのみ使用されます。 |
[in] | message | グループメンバーが参加するときにオプションのメッセージを送信します。 |
[in] | interval | サーバーがBroadcastToを処理する間隔(ミリ秒単位)を指定します。デフォルト値は200msです。 intervalで指定された時間のメッセージはサーバーによって編集され送信されます。 |
void DiarkisInterfaceBase::SendRandomJoinGroup | ( | uint16_t | ttl, |
const std::string & | message, | ||
uint32_t | interval = 200 |
||
) |
void DiarkisInterfaceBase::SendLeaveGroup | ( | const char * | groupID, |
const char * | message | ||
) |
指定されたグループから退出します。
GetMemberLeaveEvent() で登録されたコールバックイベント(例: OnGroupMemberLeave )がトリガーされます。
[in] | groupID | 退出するグループのID |
[in] | message | 退出時にグループメンバーにメッセージを送信します。 |
void DiarkisInterfaceBase::SendLeaveGroup | ( | const std::string & | groupID, |
const std::string & | message | ||
) |
Diarkis::StdString DiarkisInterfaceBase::GetGroupID | ( | ) |
参加しているGroupのIDを取得する。
void DiarkisInterfaceBase::ClearUdpBuffer | ( | ) |
Socketの送受信バッファをクリアする
bool DiarkisInterfaceBase::RequestEndpointAsync | ( | const char * | host, |
const char * | clientKey, | ||
const char * | type, | ||
DiarkisThreadPolicy | policy, | ||
int | priority, | ||
uint32_t | affinityMask, | ||
uint32_t | stackSize | ||
) |
HTTPサーバーに接続し、非同期処理を行ってTCP/UDPエンドポイントを取得します。
非同期処理の実行状況はGetEndpointAsyncStatus()で取得できます。
取得結果はGetAsyncEndpointResult()で取得できます。
[in] | host | HTTPサーバーのアドレス |
[in] | clientKey | HTTPサーバーのクライアントキー |
[in] | type | 取得するサーバーの種類 |
[in] | policy | HTTPアクセスを行うスレッドのスケジューリングのためのポリシーの指定。 (Windowsでは指定しても影響はありません。) |
[in] | priority | HTTPアクセスを行うスレッドの優先度。 現在の(標準)設定からの+-で指定します。 ps5を使用する場合はDiarkisThreadPriorityを指定してください。 |
[in] | affinityMask | CPUのアフィニティ設定。1ビット目 = cpu1、スレッドはビットが立つCPUコアから割り当てられます。 (PS5のみ) |
[in] | stackSize | 非同期スレッドのスタックサイズ |
bool DiarkisInterfaceBase::RequestEndpointAsync | ( | const std::string & | host, |
const std::string & | clientKey, | ||
const std::string & | type, | ||
DiarkisThreadPolicy | policy, | ||
int | priority, | ||
uint32_t | affinityMask, | ||
uint32_t | stackSize | ||
) |
RequestEndpointAsyncと同じです
DiarkisInterfaceBase::AsyncGetEndpointStatus DiarkisInterfaceBase::GetEndpointAsyncStatus | ( | ) | const |
サーバーエンドポイントを非同期で取得するプロセスの進行状況を取得する
bool DiarkisInterfaceBase::GetAsyncEndpointResult | ( | Diarkis::StdString & | endpoint | ) | const |
非同期でエンドポイントを取得する結果を取得する
[out] | endpoint | 指定されたサーバーアドレス |
|
protected |
ログと各モジュールのクラスを初期化する
|
staticprotected |
ログ出力先のフォルダを作成する
|
staticprotected |
Diarkisクライアントライブラリの更新を呼び出すためのループ関数
|
protected |
TCP/UDP/P2Pのスケジューラにイベントが追加されたときに実行されるイベントです。
|
staticprotected |
ログアウトタイプに応じてDiarkisのロガーを初期化します
|
staticprotected |
ログがファイルに出力されているかを返す。
|
protected |
エンドポイント非同期プロセスの取得スレッドを終了する
|
staticprotected |
|
staticprotected |
ランタイムスレッドのデータ
|
staticprotected |
アクティブインスタンスのリストです。
|
staticprotected |
DiarkisInterfaceBaseのグローバルプロセスのロギングに使用されるLoggerFactory
|
protected |
DiarkisTcpBaseクラスへのポインタ
|
protected |
DiarkisUdpBase クラスへのポインタ
|
protected |
DiarkisP2PBase クラスへのポインタ
|
protected |
DiarkisRoomBaseクラスへのポインタ
|
protected |
DiarkisSessionBaseクラスへのポインタ
|
protected |
DiarkisGroupBaseクラスへのポインタ
|
protected |
DiarkisFieldBaseクラスへのポインタ
|
protected |
DiarkisMatchMakerBaseクラスへのポインタ
|
protected |
DiarkisRpcBase クラスへのポインタ
|
protected |
DiarkisDirectMessageBaseクラスへのポインター
|
protected |
IDiarkisProfileクラスへのポインタ
|
protected |
接続するHTTPサーバーのアドレス
|
protected |
接続するHTTPサーバーのクライアントキー
|
protected |
自分のユーザーID
|
protected |
サーバータイプ
|
protected |
セッションID
|
protected |
認証情報
|
staticprotected |
ログ出力ディレクトリ名
|
protected |
ロガークラスへのポインター
|
protected |
LoggerFactoryへのポインタ
|
staticprotected |
集団出力用のスレッド化されたロガー
|
staticprotected |
コンソール出力用のロガー
|
staticprotected |
デバッグ出力のためのロガー
|
staticprotected |
ファイル出力用のロガー
|
staticprotected |
カスタムロガー
|
staticprotected |
LoggerFactoryで使用されるロガーインターフェース
|
staticprotected |
デバッグ出力のタイプ
|
staticprotected |
ログ出力するかどうか
|
mutableprotected |
GetEndpointメソッドで変更される変数用のミューテックス
|
mutableprotected |
非同期でエンドポイントを取得する全体のプロセスのためのミューテックス
|
protected |
エンドポイントプロセスを非同期で取得する際の引数
|
protected |
エンドポイントを非同期で取得するプロセスの進行状況
|
protected |
エンドポイントを非同期で取得するプロセスの結果
|
protected |
エンドポイントを非同期で取得するプロセスの結果
|
protected |
エンドポイントを非同期で取得するプロセスの結果
|
protected |
エンドポイントを非同期で取得するプロセスに使用されるスレッド
|
protected |
スケジューラが更新されている場合に有効になるフラグ