13GX_P2P_NAMESPACE_BEGIN()
29 static constexpr nu32 INVALID_STATION_INDEX =
static_cast<nu32
>(-1);
55 constexpr nu32
getIndex(
void)
const {
return _index; }
57 GX_FORCE_INLINE
b32 isLocal(
void)
const {
return _isLocal; }
59 GX_FORCE_INLINE
b32 isHost(
void)
const {
return _isHost; }
61 GX_FORCE_INLINE
b32 isActive(
void)
const {
return _isActive; }
63 GX_FORCE_INLINE
b32 isReady(
void)
const {
return _isReady; }
67 constexpr nu32
getIPAddress(
void)
const {
return _sockAddress.sin_addr.s_addr; }
69 constexpr nu32
getPort(
void)
const {
return _sockAddress.sin_port; }
74 constexpr nu32 getRecievePacketBytesMomentary(
void)
const {
return _recievePacketBytesMomentary; }
76 constexpr nu32 getSendPacketBytesMomentary(
void)
const {
return _sendPacketBytesMomentary; }
78 constexpr nu32 getRecievePacketBytesPeek(
void)
const {
return _recievePacketBytesPeek; }
80 constexpr nu32 getSendPacketBytesPeek(
void)
const {
return _sendPacketBytesPeek; }
82 constexpr nu32 getRecievePacketCountMomentary(
void)
const {
return _recievePacketCountMomentary; }
84 constexpr nu32 getSendPacketCountMomentary(
void)
const {
return _sendPacketCountMomentary; }
86 constexpr nu32 getRecievePacketCountPeek(
void)
const {
return _recievePacketCountPeek; }
88 constexpr nu32 getSendPacketCountPeek(
void)
const {
return _sendPacketCountPeek; }
103 sockaddr_in _sockAddress;
105 nu32 _recievePacketBytesMomentary;
106 nu32 _sendPacketBytesMomentary;
107 nu32 _recievePacketBytesPeek;
108 nu32 _sendPacketBytesPeek;
109 nu32 _recievePacketCountMomentary;
110 nu32 _sendPacketCountMomentary;
111 nu32 _recievePacketCountPeek;
112 nu32 _sendPacketCountPeek;
135 static constexpr nu32 DEBUG_SERVER_PRINT_LEVEL = 3;
137 static constexpr nu16 DEBUG_SERVER_RECV_PORT = 6200;
139 static constexpr nu16 DEBUG_SERVER_SEND_PORT = 6199;
141 static constexpr nu32 DEBUG_SERVER_MAGIC_NUMBER = 0x22222222;
247 GxDebugServerInformation(GX_CSTR ip, ns32 printLV = DEBUG_SERVER_PRINT_LEVEL, nu16 recievePort = DEBUG_SERVER_RECV_PORT, nu16 sendPort = DEBUG_SERVER_SEND_PORT, nu32 magicNumber = DEBUG_SERVER_MAGIC_NUMBER)
275 class GxP2PAsyncThread :
public GxThread
283 static constexpr s32 WAIT_INFINITY = -1;
292 void threadMain(
void* pArgument)
override;
295 GX_FORCE_INLINE
b32 waitStartEvent(s32 milliSecond = WAIT_INFINITY) {
return _startEvent.
waitEvent(milliSecond); }
297 GX_FORCE_INLINE
b32 setStartEvent(
void) {
return _startEvent.
setEvent(); }
341 b32 initializeDebugServer(
const GxDebugServerInformation& debugServerInformation);
343 void terminateDebugServer(
void);
386 b32 getLocalNetworkGamer(MyNetLib::MyNetworkGamerLocal& dst);
394 void setErrorValue(MyNetLib::GPlatform::PLATFORM_RETURN error);
396 void setErrorValue(MyNetLib::SGS_Enum error);
398 void setErrorValue(MyNetLib::SGE_Enum error);
400 void setErrorValue(MyNetLib::GK_Enum error);
405 constexpr ASYNC_PROCESS getAsyncRequest(
void)
const {
return _asyncRequest; }
411 void waitAsyncResult(
void);
414 void clearStation(
void);
417 static nu32 atoiIPAddress(GX_CSTR ipAddress);
420 static ns32 __stdcall callbackJoinedGamer(
void* pObject, nu32 gamerId);
422 static ns32 __stdcall callbackLeftGamer(
void* pObject, nu32 gamerId);
424 static ns32 __stdcall callbackFindHost(
void* pObject, nu64 hosts[], nu32 magic[]);
426 static ns32 __stdcall callbackEndSession(
void* pObject, MyNetLib::SEC_Enum error);
428 static ns32 __stdcall callbackStartGame(
void* pObject);
430 static ns32 __stdcall callbackEndGame(
void* pObject);
460 GX_FORCE_INLINE
b32 isHost(
void)
const {
return _sessionInstance.IsHost(); }
473 GX_FORCE_INLINE
void setDebugSimulatePacketLatency(nu32 milliSeconds) { _sessionInstance.setDebugSimulatePacketLatency(milliSeconds); }
475 GX_FORCE_INLINE nu32 getDebugSimulatePacketLatency(
void)
const {
return _sessionInstance.getDebugSimulatePacketLatency(); }
477 GX_FORCE_INLINE
void setDebugSimulatePacketLost(nf32 probability) { _sessionInstance.setDebugSimulatePacketLost(probability); }
479 GX_FORCE_INLINE nf32 getDebugSimulatePacketLost(
void)
const {
return _sessionInstance.getDebugSimulatePacketLost(); }
488 MyNetLib::MyNetworkSession _sessionInstance;
492 nu32 _systemLinkPort;
501 b32 _isUseDebugServer;
504 GxP2PAsyncThread _thread;
509 MyNetLib::DCM_Enum _leaveMode;
513 GxSessionInformation _joinHost;
514 GxSessionInformation* _pSearchResult;
520GX_P2P_NAMESPACE_END()
イベントクラス
Definition GxThread.h:132
b32 setEvent(void)
イベントを設定
Definition GxThread.cpp:268
b32 waitEvent(s32 milliSecond=-1)
イベント待機
Definition GxThread.cpp:291
static constexpr u32 VALUE_16
16
Definition GxMath.h:123
メッセージ通信マネージャクラス
Definition GxP2PMessageManager.h:22
P2Pセッションマネージャ
Definition GxP2PSessionManager.h:123
void terminate(void)
終了
Definition GxP2PSessionManager.cpp:132
static constexpr nu32 DEFAULT_MAGIC_NUMBER
ディフォルトマジックナンバー
Definition GxP2PSessionManager.h:156
b32 leaveSessionAsync(void)
セッション離脱 [非同期]
Definition GxP2PSessionManager.cpp:616
ASYNC_RESULT
非同期処理結果
Definition GxP2PSessionManager.h:213
CREATE_MODE
セッション生成モード (MyNetLib::SessionTypeEnum 並びに準拠)
Definition GxP2PSessionManager.h:162
static constexpr nu32 DEFAULT_USE_PORT
ディフォルト通信ポート番号
Definition GxP2PSessionManager.h:152
constexpr ASYNC_RESULT getAsyncResult(void) const
非同期処理結果取得
Definition GxP2PSessionManager.h:444
static void getIPAddressFromValue(GX_STR pDst, u32 address)
32bitアドレス情報 → IPアドレス取得
Definition GxP2PSessionManager.cpp:894
ERROR_TYPE
エラー定義 (要因)
Definition GxP2PSessionManager.h:188
@ NOT_HOST
ホスト専用メソッドをクライアントがコールした
@ NOT_SESSION
セッションに参加していない
static constexpr ns32 LOCAL_GAMER_MAX
ローカルゲーマー数 (※1固定)
Definition GxP2PSessionManager.h:146
static constexpr ns32 NETWORK_GAMER_MAX
ゲーマー数 (※最大接続人数)
Definition GxP2PSessionManager.h:148
b32 joinSession(GX_CSTR address)
セッション参加 (IP文字列指定)
Definition GxP2PSessionManager.cpp:301
void registerEventCallback(EVENT_CALLBACK_FUNCTION callback)
イベントコールバック関数登録
Definition GxP2PSessionManager.cpp:174
constexpr nu32 getStationNum(void) const
ステーション数取得
Definition GxP2PSessionManager.h:455
b32 createSessionAsync(CREATE_MODE mode)
セッション作成 [非同期]
Definition GxP2PSessionManager.cpp:482
b32 initialize(nu32 port=DEFAULT_USE_PORT, nu32 magicNumber=DEFAULT_MAGIC_NUMBER, nu32 systemLinkPort=DEFAULT_SYSTEM_LINK_PORT)
初期化
Definition GxP2PSessionManager.cpp:89
GxP2PSessionManager(void)
デフォルトコンストラクタ
Definition GxP2PSessionManager.cpp:49
static constexpr nu32 DEFAULT_SYSTEM_LINK_PORT
ディフォルトシステムリンク通信ポート番号
Definition GxP2PSessionManager.h:154
b32 kickoutSessionAsync(const GxP2PStation &station)
セッションメンバーキックアウト [非同期]
Definition GxP2PSessionManager.cpp:679
const GxP2PStation * getStationHost(void) const
ホストステーション取得
Definition GxP2PSessionManager.cpp:826
void(*) EVENT_CALLBACK_FUNCTION(GxP2PSessionManager::EVENT type, GxP2PSessionManager::ERROR_TYPE error, nu32 gamerId)
イベントコールバック関数定義
Definition GxP2PSessionManager.h:271
const GxP2PStation * getStation(void) const
自分ステーション取得
Definition GxP2PSessionManager.cpp:792
constexpr GX_CSTR getIPAddressString(void) const
IPアドレス文字列取得
Definition GxP2PSessionManager.h:442
b32 kickoutSession(const GxP2PStation &station)
セッションメンバーキックアウト
Definition GxP2PSessionManager.cpp:452
GX_FORCE_INLINE b32 isJoined(void) const
セッション参加中判定
Definition GxP2PSessionManager.h:458
b32 joinSessionAsync(GX_CSTR address)
セッション参加 [非同期] (IP文字列指定)
Definition GxP2PSessionManager.cpp:514
b32 createSession(CREATE_MODE mode)
セッション作成
Definition GxP2PSessionManager.cpp:271
ASYNC_PROCESS
非同期処理内容
Definition GxP2PSessionManager.h:202
@ KICKOUT_SESSION
セッションキックアウト
~GxP2PSessionManager(void)
デストラクタ
Definition GxP2PSessionManager.cpp:77
b32 endGameSession(void)
ゲームセッション終了 (ホスト専用)
Definition GxP2PSessionManager.cpp:769
static constexpr nu32 SEARCH_SESSION_MAX
探索セッション最大数
Definition GxP2PSessionManager.h:158
b32 isGameSession(void) const
ゲームセッション中判定
Definition GxP2PSessionManager.cpp:884
static void getIPAddressFromHost(GX_STR pDst, u64 host)
64bitホスト情報 → IPアドレス取得
Definition GxP2PSessionManager.cpp:916
LEAVE_MODE
セッション離脱モード
Definition GxP2PSessionManager.h:169
@ EXCLUSION
除外モード (クライアント間で切断が発生したら、片方がセッションから弾かれる)
@ CLIENT_SERVER
C/Sモード (クライアント間の切断は無視)
@ TOLERANCE
慣用モード (クライアント間で切断が発生しても、セッションに残る)
b32 searchSession(GxSessionInformation *pDst, nu32 *pNum)
セッション探索
Definition GxP2PSessionManager.cpp:422
b32 searchSessionAsync(GxSessionInformation *pDst, u32 *pNum)
セッション探索 [非同期]
Definition GxP2PSessionManager.cpp:647
b32 update(nu32 elapsedMilliSecond)
更新
Definition GxP2PSessionManager.cpp:219
b32 startGameSession(const GxSessionParameter *pParam=nullptr)
ゲームセッション開始 (ホスト専用)
Definition GxP2PSessionManager.cpp:731
void readyGameSession(void)
ゲームセッション準備
Definition GxP2PSessionManager.cpp:708
b32 leaveSession(void)
セッション離脱
Definition GxP2PSessionManager.cpp:390
constexpr ERROR_TYPE getError(void) const
エラー情報取得
Definition GxP2PSessionManager.h:446
b32 isReady(void) const
ゲームセッション準備確認 (ホスト専用)
Definition GxP2PSessionManager.cpp:849
GX_FORCE_INLINE MyNetLib::MyNetworkSession * getSessionInstance(void)
MyNetLibセッションインスタンス取得
Definition GxP2PSessionManager.h:439
static constexpr nu32 IPADDRESS_STRING_MAX
IPアドレス文字列最大長
Definition GxP2PSessionManager.h:150
EVENT
イベント定義
Definition GxP2PSessionManager.h:177
GX_FORCE_INLINE b32 isHost(void) const
セッションホスト判定
Definition GxP2PSessionManager.h:460
Stationクラス
Definition GxP2PSessionManager.h:19
GX_FORCE_INLINE b32 isActive(void) const
アクティブ判定
Definition GxP2PSessionManager.h:61
~GxP2PStation(void)
デストラクタ
Definition GxP2PSessionManager.h:43
constexpr nu32 getIndex(void) const
インデックス取得
Definition GxP2PSessionManager.h:55
constexpr nu32 getPort(void) const
ポート値取得
Definition GxP2PSessionManager.h:69
constexpr nu32 getIPAddress(void) const
IPアドレス値取得
Definition GxP2PSessionManager.h:67
GxP2PStation(void)
デフォルトコンストラクタ
Definition GxP2PSessionManager.h:41
constexpr GX_CSTR getIPAddressString(void) const
IPアドレス文字列取得
Definition GxP2PSessionManager.h:71
constexpr nu32 getPingAverage(void) const
通信速度平均値取得
Definition GxP2PSessionManager.h:65
GX_FORCE_INLINE b32 isReady(void) const
ゲーム移行可能判定
Definition GxP2PSessionManager.h:63
GX_FORCE_INLINE b32 isLocal(void) const
ローカルステーション判定
Definition GxP2PSessionManager.h:57
GX_FORCE_INLINE b32 isHost(void) const
ホストステーション判定
Definition GxP2PSessionManager.h:59
スレッドクラス
Definition GxThread.h:177
セッションパラメータ
Definition GxP2PSessionManager.h:232
b32 _allowHostMigration
ホスト委譲許可フラグ (true:許可 false:不許可)
Definition GxP2PSessionManager.h:233
b32 _allowJoinOnTheWay
途中参加許可フラグ (true:許可 false:不許可)
Definition GxP2PSessionManager.h:234
32bitブーリアン
Definition GxDefine.h:173