17 #include <pia/transport/transport_definitions.h> 19 #include <pia/common/common_types.h> 20 #include <pia/transport/transport_Protocol.h> 22 #include <pia/transport/transport_ProtocolEvent.h> 31 class ReliableSlidingWindow;
72 PIA_PROTOCOL_TYPE_INFO(PROTOCOL_TYPE_RELIABLE);
97 nn::Result
Initialize(u32 sendBufferSize, u32 receiveBufferSize);
120 virtual nn::Result Startup(
StationIndex myStationIndex);
128 virtual void Cleanup();
138 virtual nn::Result Dispatch();
153 virtual nn::Result UpdateProtocolEvent(
const transport::ProtocolEvent& event);
181 nn::Result
Send(
StationId destinationStationId,
const void* pData,
size_t dataSize);
188 nn::Result
Send(
StationIndex destinationStationIndex,
const void* pData,
size_t dataSize);
216 nn::Result
Receive(
StationId* pSourceStationId,
void* pBuffer,
size_t* pDataSize,
size_t bufferSize);
223 nn::Result
Receive(
StationIndex* pSourceStationIndex,
void* pBuffer,
size_t* pDataSize,
size_t bufferSize);
250 typedef s32 (*ResendTimeCallback)(s32 rtt,
size_t resendCount);
260 static ResendTimeCallback RegisterResendTimeCallback(ResendTimeCallback cb);
269 virtual void Trace(u64 flag)
const;
271 #if NN_PIA_EXPERIMENT_RELIABLE_DETAIL_INFO 272 void PrintDebugInfo(
void)
const;
273 void ClearAllResendCount(
void);
274 u32 GetAllResendCount(
void)
const;
278 ReliableSlidingWindow* GetSlidingWindow(
StationIndex stationId);
279 const ReliableSlidingWindow* GetSlidingWindow(
StationIndex stationId)
const;
281 nn::Result ReceiveImpl(
StationIndex* pSourceStationIndex,
void* pBuffer,
size_t* pDataSize,
size_t bufferSize,
bool bCheckStationIdTable);
285 u32 m_MaxConnections;
286 ReliableSlidingWindow* m_paSlidingWindow;
287 u32 m_DispatchSlidingWindowIdx;
289 static ResendTimeCallback s_pfResendTimeCallback;
virtual void Trace(u64 flag) const
Prints information that is useful for debugging.
StationIndex
Enumerates StationIndex values.
Definition: platformCtr.h:44
Definition of the StationId identifying the station within the session.
Definition: types.h:33
nn::Result Receive(StationId *pSourceStationId, void *pBuffer, size_t *pDataSize, size_t bufferSize)
Receives data.
bool IsInCommunication(StationId stationId) const
Gets whether the specified node is communicating.
void Finalize()
Finalizes.
Protocol base class.
Definition: transport_Protocol.h:44
nn::Result Send(StationId destinationStationId, const void *pData, size_t dataSize)
Sends data.
nn::Result Initialize(u32 sendBufferSize, u32 receiveBufferSize)
Initializes the instance. Call between the BeginSetup() and EndSetup() functions. ...
This protocol sends transmissions that are guaranteed to arrive.
Definition: transport_ReliableProtocol.h:47