17 #include <pia/transport/transport_definitions.h> 19 #include <pia/common/common_StationAddress.h> 20 #include <pia/common/common_PacketDefine.h> 21 #include <pia/common/common_Time.h> 23 #include <pia/transport/transport_SequenceIdController.h> 33 class StepSequenceJob;
48 class StationProtocol;
49 class StationProtocolReliable;
50 class ConnectStationJob;
51 class DisconnectStationJob;
52 class ProcessConnectionRequestJob;
53 class ReliableSlidingWindow;
77 friend class StationProtocolReliable;
80 static const size_t MAX_DATA_SIZE = common::PROTOCOL_MESSGAE_PAYLOAD_SIZE_MAX;
81 static const s32 INVALID_RTT = -1;
95 STATE_MAX = STATE_LEAVING
151 return m_StationIndex;
205 return m_StationAddress;
218 m_StationAddress = addr;
228 ConnectStationJob* GetConnectStationJob(
void)
230 return m_pConnectStationJob;
240 const ConnectStationJob* GetConnectStationJob(
void)
const 242 return m_pConnectStationJob;
252 DisconnectStationJob* GetDisconnectStationJob(
void)
254 return m_pDisconnectStationJob;
264 const DisconnectStationJob* GetDisconnectStationJob(
void)
const 266 return m_pDisconnectStationJob;
276 ProcessConnectionRequestJob* GetProcessConnectionRequestJob(
void)
278 return m_pProcessConnectionRequestJob;
287 const ProcessConnectionRequestJob* GetProcessConnectionRequestJob(
void)
const 289 return m_pProcessConnectionRequestJob;
301 return &m_SequenceIdController;
312 return &m_SequenceIdController;
321 u8 GetSendingConnectionId(
void)
const 323 return m_SendConnectionId;
333 void SetSendingConnectionId(u8
id)
335 m_SendConnectionId = id;
345 u8 GetReceivingConnectionId(
void)
const 347 return m_RecvConnectionId;
357 void SetReceivingConnectionId(u8
id)
359 m_RecvConnectionId = id;
373 return m_StationState;
386 m_StationState = state;
434 bool Startup(StationProtocol* pStationProtocol);
465 s32 GetRtt(
void)
const;
482 s32 GetRtt(
size_t samplingNum)
const;
494 s32 GetLatestRtt(
void)
const;
512 size_t GetRttSamplingNum(
void)
const;
523 static nn::Result SetRttPulseInterval(s32 msec);
532 static s32 GetRttPulseInterval(
void);
550 static nn::Result SetInitialRttPulseInterval(s32 msec);
566 static s32 GetInitialRttPulseInterval(
void);
576 StationProtocol* GetStationProtocol(
void)
578 return m_pStationProtocol;
590 const StationProtocol* GetStationProtocol(
void)
const 592 return m_pStationProtocol;
607 m_LatestPacketSentTime = t;
622 return m_LatestPacketSentTime;
637 m_LatestPacketReceivedTime = t;
651 const common::Time& GetLatestPacketReceivedTime(
void)
const 653 return m_LatestPacketReceivedTime;
671 virtual void Trace(u64 flag)
const;
674 static const size_t IDENTIFICATION_TOKEN_MAX_DATA_SIZE = 32;
675 static const size_t PLAYER_NAME_MAX_DATA_SIZE = 17;
684 bit8 data[IDENTIFICATION_TOKEN_MAX_DATA_SIZE];
694 s16 data[PLAYER_NAME_MAX_DATA_SIZE];
703 struct IdentificationInfo
761 nn::Result GetPrincipalId(u32* pPrincipalId);
767 void SetConnectionRoute(
bool isDirect)
769 m_ConnectionRouteIsDirect = isDirect;
778 bool IsConnectionRouteRelay()
const;
786 bool IsConnectionRouteDirect()
const;
790 #if NN_PIA_EXPERIMENT_HANDSHAKE_CHECK 797 bool GetJoinFlag()
const {
return m_JoinFlag; }
807 void SetJoinFlag(
bool flag) { m_JoinFlag = flag; }
809 #endif // end of NN_PIA_EXPERIMENT_HANDSHAKE_CHECK 814 bool GetDisconnectImmidiatelyFlag()
const {
return m_DisconnectImmidiately; }
820 void SetDisconnectImmidiatelyFlag(
bool flag) { m_DisconnectImmidiately = flag; }
832 ReliableSlidingWindow* m_pReliableSlidingWindow;
833 StationProtocol* m_pStationProtocol;
834 ConnectStationJob* m_pConnectStationJob;
835 DisconnectStationJob* m_pDisconnectStationJob;
836 ProcessConnectionRequestJob* m_pProcessConnectionRequestJob;
838 u8 m_SendConnectionId;
839 u8 m_RecvConnectionId;
841 bool m_ConnectionRouteIsDirect;
846 bool m_DisconnectImmidiately;
848 #if NN_PIA_EXPERIMENT_HANDSHAKE_CHECK void Finalize(void)
Finalizes the common module.
Indicates a state of waiting for communication with this station to be established.
Definition: transport_Station.h:92
Indicates a state in which communication with this station is possible.
Definition: transport_Station.h:93
StationState
Enumerates Station states.
Definition: transport_Station.h:86
Class that represents time.
Definition: common_Time.h:39
StationState GetState(void) const
Gets the state of the Station instance.
Definition: transport_Station.h:371
StationIndex
Enumerates StationIndex values.
Definition: platformCtr.h:44
Definition of the StationId identifying the station within the session.
Definition: types.h:33
Manages the sequence ID of the packet. In conjunction with this, includes a profiling feature for pac...
Definition: transport_SequenceIdController.h:38
u8 language
Specifies the language of the player name. You can use the value returned by the nn::cfg::CTR::GetLan...
Definition: transport_Station.h:696
Represents a station. A station refers to a machine participating in a Pia session.
Definition: transport_Station.h:75
StationIndex GetStationIndex(void) const
Gets the StationIndex.
Definition: transport_Station.h:149
Indicates a state in which a request to connect from this station has been received, and that the connection process has started.
Definition: transport_Station.h:91
Stores the player name struct associated with a Station.
Definition: transport_Station.h:692
const common::StationAddress & GetStationAddress(void) const
Gets the station address.
Definition: transport_Station.h:203
Represents an address used to uniquely identify stations. .
Definition: common_StationAddress.h:43
An interface (factory pattern) for generating the classes needed by the network.
Definition: transport_NetworkFactory.h:89
u8 length
Specifies the length of the player name. The name must be no longer than 16 characters (not including...
Definition: transport_Station.h:695
nn::Result Initialize(void *pMem, u32 size)
Initializes the common module.
Stores the ID token associated with a Station.
Definition: transport_Station.h:682
StationId GetStationId(void) const
Gets the StationId.
Definition: transport_Station.h:176
Indicates a state in which a request has been made to connect to this station, and that the connectio...
Definition: transport_Station.h:90
Indicates a state in which communication with this station is being disconnected. ...
Definition: transport_Station.h:94
SequenceIdController * GetSequenceIdController(void)
Gets a pointer to the SequenceIdController instance (non-const version). This function is thread-safe...
Definition: transport_Station.h:299
This is the common base class used inside the Pia library.
Definition: common_RootObject.h:40
Indicates an invalid StationState.
Definition: transport_Station.h:88
Indicates that this station has already been initialized.
Definition: transport_Station.h:89
const SequenceIdController * GetSequenceIdController(void) const
Gets a pointer to the SequenceIdController instance (const version). This function is thread-safe...
Definition: transport_Station.h:310