16 #include <nn/pia/transport/transport_Definitions.h>
18 #include <nn/pia/transport/transport_Singleton.h>
19 #include <nn/pia/transport/transport_ProtocolManager.h>
21 #include <nn/pia/common/common_Time.h>
22 #include <nn/pia/common/common_Job.h>
51 class StationConnectionInfo;
52 class KeepAliveSender;
53 class KeepAliveReceiver;
54 class ThreadStreamManager;
55 class IRelayAddressTable;
56 class RelayRouteManager;
226 Result UpdateLocalStationKey();
249 void ReserveRestartup()
251 m_IsRestartupReserved =
true;
254 bool IsRestartupReserved()
const
256 return m_IsRestartupReserved;
259 Result Restartup(
const common::StationAddress* cpRelayNodeAddress = NULL,
const common::CryptoSetting* cpCryptoSetting = NULL);
270 template <
typename T>
273 return m_ProtocolManager.CreateProtocol<T>(port);
285 m_ProtocolManager.DestroyProtocol(protocolHandle);
298 template <
typename T>
301 return m_ProtocolManager.GetProtocol<T>(protocolHandle);
330 Result CheckConnectionError(
void)
const
332 return m_ConnectionError;
346 return m_DispatchedTime;
361 return m_MaxStationNum;
371 ProtocolManager* GetProtocolManager()
373 return &m_ProtocolManager;
387 Result SetKeepAliveInterval(int32_t msec);
459 IRelayAddressTable* GetRelayAddressTable(
void)
461 return m_pRelayAddressTable;
470 RelayRouteManager* GetRelayRouteManagerPtr(
void)
472 return m_pRelayRouteManager;
478 void SetRelayRouteManagerPtr(RelayRouteManager* ptr)
480 m_pRelayRouteManager = ptr;
486 void SetMonitoringNetworkRtt(
bool isBegin);
490 PacketHandler* GetPacketHandler(
void)
492 return m_pPacketHandler;
579 return m_TransportStatus;
600 void SetStationIdTableEnabled()
602 m_IsStationIdTableEnabled =
true;
604 void SetStationIdTableDisabled()
606 m_IsStationIdTableEnabled =
false;
608 bool IsStationIdTableEnabled()
const
610 return m_IsStationIdTableEnabled;
615 const StationIdTable* GetStationIdTable()
const
617 return m_pStationIdTable;
619 StationIdTable* GetStationIdTable()
621 return m_pStationIdTable;
661 virtual void Trace(uint64_t flag)
const;
664 common::IPacketInput* GetInputStream(
void);
665 common::IPacketOutput* GetOutputStream(
void);
667 uint8_t GetSendingConnectionId()
const
669 return m_SendingConnectionId;
672 void OutputStreamUpdateEvent(
void);
675 enum DisconnectionEventType
677 DisconnectionEventType_EventLeave,
678 DisconnectionEventType_EventRejoin
682 typedef DisconnectionEventType (*DisconnectionEventListener)(
void* pStationIdTableEntry);
684 void RegisterEventListener(DisconnectionEventListener func)
686 m_EventListener = func;
688 DisconnectionEventListener GetEventListener()
690 return m_EventListener;
693 bool IsConnectionRequestPrincipalIdEnabled()
const
695 return m_IsConnectionRequestPrincipalIdEnabled;
698 uint32_t GetDispatchCountForTransportAnalyzer()
const
700 return m_DispatchCountForTransportAnalyzer;
703 void ClearDispatchCountForTransportAnalyzer()
705 m_DispatchCountForTransportAnalyzer = 0;
724 Result dispatch(
void);
739 Result initialize(
const Transport::Setting& setting);
755 Transport(
const Transport&);
760 Transport& operator=(
const Transport&);
771 void updateDispatchedTime(
void)
777 void updateTransportAnalyzer(
void);
781 class DispatchJob :
public common::Job
784 virtual ExecuteResult ExecuteCore()
787 return Job::ExecuteState_WaitNext;
791 common::Time m_DispatchedTime;
793 NetworkFactory* m_pNetworkFactory;
795 ProtocolManager m_ProtocolManager;
796 PacketHandler* m_pPacketHandler;
798 uint16_t m_MaxStationNum;
800 uint8_t m_SendingConnectionId;
803 bool m_IsRestartupReserved;
805 Result m_ConnectionError;
806 DispatchJob m_DispatchJob;
808 IRelayAddressTable* m_pRelayAddressTable;
809 RelayRouteManager* m_pRelayRouteManager;
811 int32_t m_AnalysisInterval;
812 common::Time m_AnalysisUpdatedTime;
813 bool m_IsAnalysisAutoPrintDetail;
814 bool m_IsAnalysisAutoPrintTotalOnly;
815 uint32_t m_DispatchCountForTransportAnalyzer;
817 DisconnectionEventListener m_EventListener;
819 StationIdTable* m_pStationIdTable;
820 bool m_IsStationIdTableEnabled;
822 Result m_TransportStatus;
824 bool m_IsConnectionRequestPrincipalIdEnabled;
826 static struct DebugSetting s_DebugSetting;
828 static Transport* s_pInstance;