📄 hxntsrc.h
字号:
virtual BOOL CanBeFastStarted(void); virtual HX_RESULT FillRecordControl();protected: virtual ~HXNetSource(void); PRIVATE_DESTRUCTORS_ARE_NOT_A_CRIME HX_RESULT UpdateStatistics(void); HX_RESULT _ProcessIdle(BOOL atInterrupt = 0); virtual HX_RESULT _ProcessIdleExt(BOOL atInterrupt = 0); virtual HX_RESULT PreFileHeaderReadyExt(IHXValues* pHeader); virtual HX_RESULT PostFileHeaderReadyExt(void); virtual HX_RESULT PreHeaderCallbackExt(IHXValues* theHeader); virtual HX_RESULT PostHeaderCallbackExt(IHXValues* theHeader); HX_RESULT ReadPreferences(void); HX_RESULT CreateProtocol(); HX_RESULT InitializeProtocol(void); HX_RESULT set_proxy(const char* proxy,UINT16 port); HX_RESULT cleanup_proxy(void); HX_RESULT _Initialize(void); void CalculateCurrentBuffering(void); UINT32 AdjustEventTime(STREAM_INFO* pStreamInfo, UINT32 ulTime); void ReBuffer(void); void ResetASMSource(void); BOOL IsInCloakPortList(UINT16 uPort); BOOL IsPrefetchEnded(void); HX_RESULT IsFaststartPushdownFullfilled(REF(UINT16) uStatusCode, REF(UINT16) ulPercentDone); BOOL IsRARVSource(void); HX_RESULT GetEventFromProtocol(UINT16 usStreamNumber, CHXEvent*& theEvent); HX_RESULT GetEventFromRecordControl(UINT16 usStreamNumber, CHXEvent*& theEvent); // stream thinning BOOL mServerSelRecordSupport; BOOL mInterframeControlSupport; BOOL mServerHasBandwidthReport; BOOL mServerHasFrameControl; // setup parameters... char* m_pHost; char* m_pPath; char* m_pResource; UINT16 m_uPort; // proxy stuff char* m_pProxy; // host string of proxy UINT16 m_uProxyPort; // host port of proxy BOOL m_bUseProxy; // == 1, connect to proxy first char mClientID[64]; /* Flawfinder: ignore */ CHXSimpleList* m_pUDPPortList; HXProtocol* m_pProto; ULONG32 m_ulStartBuffering; ULONG32 m_ulServerTimeOut; ULONG32 m_ulConnectionTimeout; float m_fReBufferPercent; // level 1, 2 stats INT32 m_lRAStreamNumber; // level 3 stats CHXSimpleList* m_pLogInfoList; UINT32 m_ulLogInfoLength; // authenication info. char m_szUserName[MAX_DISPLAY_NAME]; /* Flawfinder: ignore */ char m_szPassword[MAX_DISPLAY_NAME]; /* Flawfinder: ignore */ UINT16 m_uLastBuffering; UINT16 m_uLastStatusCode; ULONG32 m_ulPerfectPlayDownloadTime; // reconnect information BOOL m_bAttemptReconnect; char* m_pszReconnectServer; char* m_pszReconnectProxy; char* m_pszReconnectURL; UINT32 m_ulReconnectProxyPort; UINT32 m_ulReconnectServerPort; // redirect information char* m_pszRedirectServer; char* m_pszRedirectResource; char* m_pszRedirectURL; UINT32 m_ulRedirectServerPort; IHXPendingStatus* m_pProtocolStatus; IHXCookies* m_pCookies; IHXCookies2* m_pCookies2;//////////////////////////////////////////////// Automatic Transport Switching Support...public: ULONG32 m_ulUDPTimeout;protected: ULONG32 m_ulMulticastTimeout; UINT32 m_ulTCPTimeout; ULONG32 m_ulStartDataWait; ULONG32 m_ulFirstDataArrives; ULONG32 m_ulSendStatsMask; ULONG32 m_ulStatsInterval; UINT32 m_ulSeekPendingTime; UINT32 m_ulServerVersion; UINT32 m_ulTransportPrefMask; UINT16 m_uProtocolType; TransportMode m_PreferredTransport; TransportMode m_CurrentTransport; HX_BITFIELD m_bLossCorrection : 1; HX_BITFIELD m_bAltURL : 1; HX_BITFIELD m_bRTSPProtocol : 1; HX_BITFIELD m_bDataWaitStarted : 1; HX_BITFIELD m_bConnectionWait : 1; BOOL m_bSendStatistics; BOOL m_bUseUDPPort; HX_BITFIELD m_bResendAuthenticationInfo : 1; HX_BITFIELD m_bTimeBased : 1; HX_BITFIELD m_bUserHasCalledResume : 1; HX_BITFIELD m_bUserHasCalledStartInit : 1; HX_BITFIELD m_bAtInterrupt : 1; HX_BITFIELD m_bBruteForceReconnected : 1; HX_BITFIELD m_bBruteForceConnectToBeDone : 1; HX_BITFIELD m_bReconnect : 1; BOOL m_bNoLatency; HX_BITFIELD m_bNoLatencySet : 1; HX_BITFIELD m_bPerfectPlayPreferenceRead : 1; BOOL m_bPerfectPlayErrorChecked; HX_BITFIELD m_bServerHasPerfectPlay : 1; HX_BITFIELD m_bServerHasResend : 1; HX_BITFIELD m_bInRetryMode : 1; HX_BITFIELD m_bPushDownSet : 1; HX_BITFIELD m_bRARVSource : 1; HX_BITFIELD m_bRARVSourceVerified : 1; PushDownStatus m_pushDownStatus; BOOL m_bForcePerfectPlay; BOOL m_bServerHasTransportSwitching; BOOL m_bSeekPending; UINT16* m_pCloakPortList; UINT8 m_nNumberOfCloakPorts; UINT8 m_nCurrPortIdx; UINT16 m_uCurrCloakedPort; PreferredTransportState m_prefTransportState; IHXPreferredTransport* m_pPreferredTransport; IHXPreferredTransportManager* m_pPreferredTransportManager; ReconnectCallback* m_pReconnectCallback;#if defined(HELIX_FEATURE_STATS) && defined(HELIX_FEATURE_REGISTRY) ReconnectCallback* m_pStatsCallback;#endif /* HELIX_FEATURE_STATS && HELIX_FEATURE_REGISTRY */ // PAC IHXProxyAutoConfig* m_pPAC; CHXSimpleList* m_pPACInfoList; LISTPOSITION m_PACInfoPosition; NetSourceState m_state; friend class ReconnectCallback;private: IHXBufferControl* m_pBufferCtl; IHXWatermarkBufferControl* m_pWMBufferCtl;public: HX_RESULT FinishSetup(); void ReSetup(); void Reset(); char* GetAltURL(BOOL& bDefault); HX_RESULT switch_out_of_perfectplay(); HX_RESULT handleTransportSwitch(void); HX_RESULT handleProxySwitch(HX_RESULT inError); HX_RESULT handleRedirect(void); HX_RESULT handleReconnect(void); BOOL IsNetworkAvailable(); HX_RESULT AttemptReconnect(); HX_RESULT StartReconnect(); HX_RESULT ReportStats(); HX_RESULT ProcessReconnect(STREAM_INFO* pStreamInfo); HX_RESULT EndReconnect(); HX_RESULT AddToPreReconnectEventList(STREAM_INFO* pStreamInfo, CHXEvent* pEvent); void UpdateReconnectInfo(UINT32 ulPacketTime, BOOL& bFirstEvent, UINT32& ulPrevPacketTime, UINT32& ulLargestGapInPacketTime, UINT32& ulLastPacketTime); char* GetHost() {return m_pHost;}; INT32 GetRAStreamNumber() { return m_lRAStreamNumber; }; UINT32 GetFirstDataArriveTime() { return m_ulFirstDataArrives; }; UINT32 GetLogInfo(CHXSimpleList*& pLogInfoList) { pLogInfoList = m_pLogInfoList; return m_ulLogInfoLength; }; void ReportError (HX_RESULT theErr); HX_RESULT switch_to_next_transport(HX_RESULT incomingError); void set_transport(TransportMode mode); void WritePerfectPlayToRegistry(); void CreateCloakedPortList();};class ReconnectCallback : public IHXCallback{public: HXNetSource* m_pSource; CallbackHandle m_PendingHandle; BOOL m_bIsStatsReportingCallback; IHXScheduler* m_pScheduler; UINT32 m_ulScheduleTime; UINT32 m_ulTimeout; BOOL m_bPaused; ReconnectCallback(HXNetSource* pSource, BOOL bIsStatsCallback = FALSE); HX_RESULT ScheduleCallback(UINT32 uTimeout); HX_RESULT PauseCallback(); HX_RESULT ResumeCallback(); HX_RESULT CancelCallback(); BOOL IsPaused() {return m_bPaused;}; /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj); STDMETHOD_(ULONG32,AddRef) (THIS); STDMETHOD_(ULONG32,Release) (THIS); /* * IHXCallback methods */ STDMETHOD(Func) (THIS);protected: ~ReconnectCallback(); LONG32 m_lRefCount;};#endif // _HX_NET_SOURCE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -