OROCHI
 
Loading...
Searching...
No Matches
GxP2PSessionManager Class Reference

P2Pセッションマネージャ More...

#include <GxP2PSessionManager.h>

Classes

struct  GxDebugServerInformation
 デバッグサーバ情報 More...
 
struct  GxSessionInformation
 セッション情報 More...
 
struct  GxSessionParameter
 セッションパラメータ More...
 

Public Member Functions

初期化
 GxP2PSessionManager (void)
 デフォルトコンストラクタ
 
 ~GxP2PSessionManager (void)
 デストラクタ
 
b32 initialize (nu32 port=DEFAULT_USE_PORT, nu32 magicNumber=DEFAULT_MAGIC_NUMBER, nu32 systemLinkPort=DEFAULT_SYSTEM_LINK_PORT)
 初期化
 
void terminate (void)
 終了
 

定義

enum class  CREATE_MODE { LAN = 0 , INET }
 セッション生成モード (MyNetLib::SessionTypeEnum 並びに準拠) More...
 
enum class  LEAVE_MODE { EXCLUSION = 0 , TOLERANCE , CLIENT_SERVER }
 セッション離脱モード More...
 
enum class  EVENT {
  NONE = 0 , JOIN , LEAVE , DESTROY ,
  START_GAME , END_GAME
}
 イベント定義 More...
 
enum class  ERROR_TYPE {
  NONE = 0 , INVALID = -1 , NOTFOUND = -2 , HOST_END = -3 ,
  DISCONNECT = -4 , NOT_HOST = -5 , NOT_SESSION = -6 , ALREADY_DONE = -7
}
 エラー定義 (要因) More...
 
enum class  ASYNC_PROCESS {
  NONE = 0 , CREATE_SESSION , JOIN_SESSION , LEAVE_SESSION ,
  SEARCH_SESSION , KICKOUT_SESSION
}
 非同期処理内容 More...
 
enum class  ASYNC_RESULT { PROGRESS = 0 , SUCCESS , FAILED }
 非同期処理結果 More...
 
typedef void(*) EVENT_CALLBACK_FUNCTION(GxP2PSessionManager::EVENT type, GxP2PSessionManager::ERROR_TYPE error, nu32 gamerId)
 イベントコールバック関数定義
 
class GxP2PMessageManager
 
static constexpr ns32 LOCAL_GAMER_MAX = 1
 ローカルゲーマー数 (※1固定)
 
static constexpr ns32 NETWORK_GAMER_MAX = 8
 ゲーマー数 (※最大接続人数)
 
static constexpr nu32 IPADDRESS_STRING_MAX = 16
 IPアドレス文字列最大長
 
static constexpr nu32 DEFAULT_USE_PORT = 6221
 ディフォルト通信ポート番号
 
static constexpr nu32 DEFAULT_SYSTEM_LINK_PORT = 6220
 ディフォルトシステムリンク通信ポート番号
 
static constexpr nu32 DEFAULT_MAGIC_NUMBER = 0x00DCBA98
 ディフォルトマジックナンバー
 
static constexpr nu32 SEARCH_SESSION_MAX = MyNetworkSession::SYSTEMLINK_HOST_MAX
 探索セッション最大数
 

操作

b32 update (nu32 elapsedMilliSecond)
 更新
 
void registerEventCallback (EVENT_CALLBACK_FUNCTION callback)
 イベントコールバック関数登録
 
b32 createSession (CREATE_MODE mode)
 セッション作成
 
b32 joinSession (GX_CSTR address)
 セッション参加 (IP文字列指定)
 
b32 joinSession (nu32 address)
 セッション参加 (IP数値指定)
 
b32 joinSession (const GxSessionInformation &session)
 セッション参加 (セッション指定)
 
b32 leaveSession (void)
 セッション離脱
 
b32 searchSession (GxSessionInformation *pDst, nu32 *pNum)
 セッション探索
 
b32 kickoutSession (const GxP2PStation &station)
 セッションメンバーキックアウト
 
b32 createSessionAsync (CREATE_MODE mode)
 セッション作成 [非同期]
 
b32 joinSessionAsync (GX_CSTR address)
 セッション参加 [非同期] (IP文字列指定)
 
b32 joinSessionAsync (nu32 address)
 セッション参加 [非同期] (IP数値指定)
 
b32 joinSessionAsync (const GxSessionInformation &session)
 セッション参加 [非同期] (セッション指定)
 
b32 leaveSessionAsync (void)
 セッション離脱 [非同期]
 
b32 searchSessionAsync (GxSessionInformation *pDst, u32 *pNum)
 セッション探索 [非同期]
 
b32 kickoutSessionAsync (const GxP2PStation &station)
 セッションメンバーキックアウト [非同期]
 
void readyGameSession (void)
 ゲームセッション準備
 
b32 startGameSession (const GxSessionParameter *pParam=nullptr)
 ゲームセッション開始 (ホスト専用)
 
b32 endGameSession (void)
 ゲームセッション終了 (ホスト専用)
 

アクセサ

GX_FORCE_INLINE MyNetLib::MyNetworkSession * getSessionInstance (void)
 MyNetLibセッションインスタンス取得
 
constexpr GX_CSTR getIPAddressString (void) const
 IPアドレス文字列取得
 
constexpr ASYNC_RESULT getAsyncResult (void) const
 非同期処理結果取得
 
constexpr ERROR_TYPE getError (void) const
 エラー情報取得
 
const GxP2PStationgetStation (void) const
 自分ステーション取得
 
const GxP2PStationgetStation (nu32 index) const
 指定ステーション取得
 
const GxP2PStationgetStationHost (void) const
 ホストステーション取得
 
constexpr nu32 getStationNum (void) const
 ステーション数取得
 
GX_FORCE_INLINE b32 isJoined (void) const
 セッション参加中判定
 
GX_FORCE_INLINE b32 isHost (void) const
 セッションホスト判定
 
b32 isReady (void) const
 ゲームセッション準備確認 (ホスト専用)
 
b32 isGameSession (void) const
 ゲームセッション中判定
 
static void getIPAddressFromValue (GX_STR pDst, u32 address)
 32bitアドレス情報 → IPアドレス取得
 
static void getIPAddressFromHost (GX_STR pDst, u64 host)
 64bitホスト情報 → IPアドレス取得
 

Detailed Description

P2Pセッションマネージャ

Member Enumeration Documentation

◆ ASYNC_PROCESS

非同期処理内容

Enumerator
NONE 

処理なし

CREATE_SESSION 

セッション生成

JOIN_SESSION 

セッション参加

LEAVE_SESSION 

セッション離脱

SEARCH_SESSION 

セッション探索

KICKOUT_SESSION 

セッションキックアウト

◆ ASYNC_RESULT

非同期処理結果

Enumerator
PROGRESS 

処理中

SUCCESS 

成功

FAILED 

失敗

◆ CREATE_MODE

セッション生成モード (MyNetLib::SessionTypeEnum 並びに準拠)

Enumerator
LAN 

LAN用セッション

INET 

インターネット用セッション

◆ ERROR_TYPE

エラー定義 (要因)

Enumerator
NONE 

正常

INVALID 

処理失敗

NOTFOUND 

未発見

HOST_END 

ホストが終了した

DISCONNECT 

切断された

NOT_HOST 

ホスト専用メソッドをクライアントがコールした

NOT_SESSION 

セッションに参加していない

ALREADY_DONE 

既に実行されている

◆ EVENT

enum class GxP2PSessionManager::EVENT
strong

イベント定義

Enumerator
NONE 

なし

JOIN 

プレイヤー参加

LEAVE 

プレイヤー離脱

DESTROY 

セッション破棄

START_GAME 

ゲーム開始

END_GAME 

ゲーム終了

◆ LEAVE_MODE

セッション離脱モード

Enumerator
EXCLUSION 

除外モード (クライアント間で切断が発生したら、片方がセッションから弾かれる)

TOLERANCE 

慣用モード (クライアント間で切断が発生しても、セッションに残る)

CLIENT_SERVER 

C/Sモード (クライアント間の切断は無視)

Member Function Documentation

◆ createSession()

b32 GxP2PSessionManager::createSession ( CREATE_MODE mode)

セッション作成

Parameters
mode[in] セッション作成モード
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createSessionAsync()

b32 GxP2PSessionManager::createSessionAsync ( CREATE_MODE mode)

セッション作成 [非同期]

Parameters
mode[in] 作成モード
Returns
成功ならtrue
Here is the caller graph for this function:

◆ endGameSession()

b32 GxP2PSessionManager::endGameSession ( void )

ゲームセッション終了 (ホスト専用)

Returns
成功ならtrue
Here is the caller graph for this function:

◆ getIPAddressFromHost()

void GxP2PSessionManager::getIPAddressFromHost ( GX_STR pDst,
u64 host )
static

64bitホスト情報 → IPアドレス取得

Parameters
pDst[out] IPアドレス文字列格納先 (※IPADDR_STRING_MAX byte以上確保しておくこと)
host[in] ホスト情報
Here is the caller graph for this function:

◆ getIPAddressFromValue()

void GxP2PSessionManager::getIPAddressFromValue ( GX_STR pDst,
u32 address )
static

32bitアドレス情報 → IPアドレス取得

Parameters
pDst[out] IPアドレス文字列格納先 (※IPADDR_STRING_MAX byte以上確保しておくこと)
address[in] アドレス情報

◆ getStation() [1/2]

const GxP2PStation * GxP2PSessionManager::getStation ( nu32 index) const

指定ステーション取得

Parameters
index[in] ステーションID
Returns
指定ステーションポインタ (※nullptrの場合:未発見)

◆ getStation() [2/2]

const GxP2PStation * GxP2PSessionManager::getStation ( void ) const

自分ステーション取得

Returns
自分ステーションポインタ (※nullptrの場合:セッション未参加)
Here is the caller graph for this function:

◆ getStationHost()

const GxP2PStation * GxP2PSessionManager::getStationHost ( void ) const

ホストステーション取得

Returns
ホストステーションポインタ (※nullptrの場合:セッション未参加)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize()

b32 GxP2PSessionManager::initialize ( nu32 port = DEFAULT_USE_PORT,
nu32 magicNumber = DEFAULT_MAGIC_NUMBER,
nu32 systemLinkPort = DEFAULT_SYSTEM_LINK_PORT )

初期化

Parameters
port[in] 使用ポート
magicNumber[in] 使用マジックナンバー
systemLinkPort[in] システムリンク使用ポート
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isGameSession()

b32 GxP2PSessionManager::isGameSession ( void ) const

ゲームセッション中判定

Returns
ゲームセッション中ならtrue
Here is the caller graph for this function:

◆ isReady()

b32 GxP2PSessionManager::isReady ( void ) const

ゲームセッション準備確認 (ホスト専用)

Returns
準備完了ならtrue
Note
参加中プレイヤーの準備完了状態を判定します。
Here is the caller graph for this function:

◆ joinSession() [1/3]

b32 GxP2PSessionManager::joinSession ( const GxSessionInformation & session)

セッション参加 (セッション指定)

Parameters
session[in] 接続先セッション情報
Returns
成功ならtrue
Here is the call graph for this function:

◆ joinSession() [2/3]

b32 GxP2PSessionManager::joinSession ( GX_CSTR address)

セッション参加 (IP文字列指定)

Parameters
address[in] ホストIPアドレス (文字列)
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ joinSession() [3/3]

b32 GxP2PSessionManager::joinSession ( nu32 address)

セッション参加 (IP数値指定)

Parameters
address[in] ホストIPアドレス(数値)
Returns
成功ならtrue
Here is the call graph for this function:

◆ joinSessionAsync() [1/3]

b32 GxP2PSessionManager::joinSessionAsync ( const GxSessionInformation & session)

セッション参加 [非同期] (セッション指定)

Parameters
session[in] 接続先セッション情報
Returns
リクエスト成功ならtrue

◆ joinSessionAsync() [2/3]

b32 GxP2PSessionManager::joinSessionAsync ( GX_CSTR address)

セッション参加 [非同期] (IP文字列指定)

Parameters
address[in] ホストIPアドレス (文字列)
Returns
成功ならtrue
Here is the caller graph for this function:

◆ joinSessionAsync() [3/3]

b32 GxP2PSessionManager::joinSessionAsync ( nu32 address)

セッション参加 [非同期] (IP数値指定)

Parameters
address[in] ホストIPアドレス(数値)
Returns
リクエスト成功ならtrue

◆ kickoutSession()

b32 GxP2PSessionManager::kickoutSession ( const GxP2PStation & station)

セッションメンバーキックアウト

Parameters
station[in] キックアウト対象メンバーステーション
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kickoutSessionAsync()

b32 GxP2PSessionManager::kickoutSessionAsync ( const GxP2PStation & station)

セッションメンバーキックアウト [非同期]

Parameters
station[in] キックアウト対象メンバーステーション
Returns
リクエスト成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ leaveSession()

b32 GxP2PSessionManager::leaveSession ( void )

セッション離脱

Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ leaveSessionAsync()

b32 GxP2PSessionManager::leaveSessionAsync ( void )

セッション離脱 [非同期]

Returns
リクエスト成功ならtrue
Here is the caller graph for this function:

◆ registerEventCallback()

void GxP2PSessionManager::registerEventCallback ( EVENT_CALLBACK_FUNCTION pCallback)

イベントコールバック関数登録

Parameters
pCallback[in] イベントコールバック関数ポインタ
Here is the caller graph for this function:

◆ searchSession()

b32 GxP2PSessionManager::searchSession ( GxSessionInformation * pDst,
nu32 * pNum )

セッション探索

Parameters
pDst[out] セッション情報格納先ポインタ
pNum[in,out] 取得セッション数 (セッション情報格納可能サイズ)
Returns
成功ならtrue
Note
探索完了時には実際に発見した数が pNum に格納されます
Here is the call graph for this function:
Here is the caller graph for this function:

◆ searchSessionAsync()

b32 GxP2PSessionManager::searchSessionAsync ( GxSessionInformation * pDst,
u32 * pNum )

セッション探索 [非同期]

Parameters
pDst[out] セッション情報格納先ポインタ
pNum[in,out] 取得セッション数 (セッション情報格納可能サイズ)
Returns
リクエスト成功ならtrue
Note
LAN内セッションを探索します。
Here is the caller graph for this function:

◆ startGameSession()

b32 GxP2PSessionManager::startGameSession ( const GxSessionParameter * pParameter = nullptr)

ゲームセッション開始 (ホスト専用)

Parameters
pParameter[in] ゲームセッションパラメータポインタ (※ディフォルト設定でよい場合はnullptr指定)
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update()

b32 GxP2PSessionManager::update ( nu32 elapsedMilliSecond)

更新

Parameters
elapsedMilliSecond[in] 経過ミリ秒
Returns
通信継続ならtrue
Here is the caller graph for this function:

The documentation for this class was generated from the following files: