17 #include <pia/transport/transport_definitions.h> 19 #include <pia/common/common_OffsetList.h> 20 #include <pia/transport/transport_ProtocolID.h> 21 #include <pia/transport/transport_ProtocolEvent.h> 22 #include <pia/transport/transport_Protocol.h> 39 class ProtocolManager :
public common::RootObject
45 ProtocolManager(
void);
51 ~ProtocolManager(
void);
76 u32 CreateProtocol(u16 port = 0)
83 transport::Protocol* pProtocol =
new (AllocProtocol(
sizeof(T))) T();
84 transport::ProtocolId id(T::GetProtocolTypeStatic(), port);
85 return CreateProtocolImpl(pProtocol,
id);
94 void DestroyProtocol(u32 protocolHandle);
104 template <
typename T>
105 T* GetProtocol(u32 protocolHandle)
107 return static_cast<T*
>(SearchProtocol(ProtocolId(protocolHandle), T::GetProtocolTypeStatic()));
119 nn::Result Startup(PacketHandler* pPacketHandler);
139 nn::Result StartupProtocols(
StationIndex myStationIndex);
147 void CleanupProtocols();
157 nn::Result Dispatch();
169 nn::Result UpdateProtocolEvent(
const ProtocolEvent& event);
178 virtual void Trace(u64 flag)
const;
180 #if PIA_STATISTIC_PROTOCOL_BLOCK_TIME_ENABLE 181 void ResetProtocolStatistic();
182 void PrintProtocolStatistic(u32 printMaxDataNum);
186 void* AllocProtocol(u32 size);
188 u32 CreateProtocolImpl(Protocol* pProtocol, ProtocolId
id);
190 Protocol* SearchProtocol(ProtocolId protocolId, u16 protocolType);
193 typedef common::OffsetList<Protocol> ProtocolList;
195 ProtocolList m_ProtocolList;
StationIndex
Enumerates StationIndex values.
Definition: platformCtr.h:44
virtual void Trace(u64 flag) const
Prints information that is useful for debugging.
void Finalize(void)
Initializes the transport module. This function does nothing and returns if it is called before the I...
nn::Result Initialize(void)
Initializes the transport module.