17 #include <pia/transport/transport_definitions.h> 19 #include <pia/common/common_ListNode.h> 20 #include <pia/transport/transport_ProtocolID.h> 21 #include <pia/transport/transport_ProtocolEvent.h> 23 #define PIA_STATISTIC_PROTOCOL_BLOCK_TIME_ENABLE 0 24 #if PIA_STATISTIC_PROTOCOL_BLOCK_TIME_ENABLE 25 #include <pia/common/private/common_Statistic.h> 26 #include <pia/common/common_TimeSpan.h> 65 void SetPacketHandler(PacketHandler* pPacketHandler)
67 m_pPacketHandler = pPacketHandler;
78 virtual void Trace(u64 flag)
const;
87 static u32 GetListNodeOffset()
89 return offsetof(
Protocol, m_ListNode);
100 void SetPort(u16 port);
110 ProtocolId GetProtocolId()
const 123 virtual u16 GetProtocolType()
const = 0;
135 virtual nn::Result Startup(
StationIndex myStationIndex);
143 virtual void Cleanup();
153 virtual nn::Result Dispatch();
165 virtual nn::Result UpdateProtocolEvent(
const ProtocolEvent& event);
169 #if PIA_STATISTIC_PROTOCOL_BLOCK_TIME_ENABLE 170 Statistic<TimeSpan>* GetBlockTimeStatistic()
172 return &m_BlockTimeStatistic;
176 #if NN_PIA_EXPERIMENT_PROTOCOL_FILTERING 186 virtual bool IsEnableProtocolFiltering()
const;
197 PacketHandler* GetPacketHandler()
199 return m_pPacketHandler;
210 const PacketHandler* GetPacketHandler()
const 212 return m_pPacketHandler;
218 common::ListNode m_ListNode;
219 ProtocolId m_ProtocolId;
220 PacketHandler* m_pPacketHandler;
222 #if PIA_STATISTIC_PROTOCOL_BLOCK_TIME_ENABLE 223 Statistic<TimeSpan> m_BlockTimeStatistic;
231 #define PIA_PROTOCOL_TYPE_INFO(protocolType) \ 232 static u16 GetProtocolTypeStatic() \ 234 return protocolType; \ 236 virtual u16 GetProtocolType() const \ 238 return GetProtocolTypeStatic(); \ StationIndex
Enumerates StationIndex values.
Definition: platformCtr.h:44
virtual void Trace(u64 flag) const
Prints information useful for debugging.
virtual ~Protocol(void)
Destroys the object.
Protocol base class.
Definition: transport_Protocol.h:44
Protocol(void)
Instantiates the object.
This is the common base class used inside the Pia library.
Definition: common_RootObject.h:40