hxstats.h

来自「symbian 下的helix player源代码」· C头文件 代码 · 共 781 行 · 第 1/2 页

H
781
字号

    STDMETHOD_(IHXBuffer*, GetClientID)     (THIS) PURE;
    STDMETHOD(SetClientID)                  (THIS_
                                            IHXBuffer* pClientID) PURE;

    STDMETHOD_(IHXBuffer*, GetPNAClientID)  (THIS) PURE;
    STDMETHOD(SetPNAClientID)               (THIS_
                                             IHXBuffer* pPNAClientID) PURE;

    STDMETHOD_(IHXBuffer*, GetCompanyID)     (THIS) PURE;
    STDMETHOD(SetCompanyID)                  (THIS_
                                             IHXBuffer* pCompanyID) PURE;

    STDMETHOD_(IHXBuffer*, GetClientChallenge)     (THIS) PURE;
    STDMETHOD(SetClientChallenge)                  (THIS_
                                                   IHXBuffer* pClientChallenge) PURE;

    STDMETHOD_(IHXBuffer*, GetLanguage)     (THIS) PURE;
    STDMETHOD(SetLanguage)                  (THIS_
                                             IHXBuffer* pLanguage) PURE;

    STDMETHOD_(IHXBuffer*, GetPlayerStartTime) (THIS) PURE;
    STDMETHOD(SetPlayerStartTime)              (THIS_
                                               IHXBuffer* pPlayerStartTime) PURE;

    STDMETHOD_(IHXBuffer*, GetProtocol)     (THIS) PURE;
    STDMETHOD(SetProtocol)                  (THIS_
                                            IHXBuffer* pProtocol) PURE;

    STDMETHOD_(IHXBuffer*, GetStartTime)    (THIS) PURE;
    STDMETHOD(SetStartTime)                 (IHXBuffer* pStartTime) PURE;

    STDMETHOD_(IHXBuffer*, GetRequestMethod)    (THIS) PURE;
    STDMETHOD(SetRequestMethod)                 (IHXBuffer* pRequestMethod) PURE;

    STDMETHOD_(IHXBuffer*, GetUserAgent)    (THIS) PURE;
    STDMETHOD(SetUserAgent)                 (THIS_ 
                                            IHXBuffer* pUserAgent) PURE;

    STDMETHOD_(IHXBuffer*, GetVersion)      (THIS) PURE;
    STDMETHOD(SetVersion)                   (THIS_
                                            IHXBuffer* pVersion) PURE;

    STDMETHOD_(IHXBuffer*, GetLoadTestPassword)     (THIS) PURE;
    STDMETHOD(SetLoadTestPassword)                  (THIS_
                                                    IHXBuffer* pLoadTestPassword) PURE;

    STDMETHOD_(IHXBuffer*, GetRTSPEvents)   (THIS) PURE;
    STDMETHOD(SetRTSPEvents)                (THIS_
                                            IHXBuffer* pRTSPEvents) PURE;


    STDMETHOD_(UINT64, GetControlBytesSent) (THIS) PURE;
    STDMETHOD(SetControlBytesSent)          (THIS_
                                            UINT64 ulControlBytesSent) PURE;

    STDMETHOD_(UINT32, GetPort)             (THIS) PURE;
    STDMETHOD(SetPort)                      (THIS_
                                            UINT32 ulPort) PURE;

    STDMETHOD_(UINT32, GetSessionCount)     (THIS) PURE;
    STDMETHOD(SetSessionCount)              (THIS_
                                            UINT32 ulSessionCount) PURE;

    STDMETHOD_(UINT32, GetSessionIndex)     (THIS) PURE;
    STDMETHOD(SetSessionIndex)              (THIS_
                                            UINT32 ulSessionIndex) PURE;

    STDMETHOD_(BOOL, IsCloaked)             (THIS) PURE;
    STDMETHOD(SetCloaked)                   (THIS_ 
                                            BOOL bIsCloaked) PURE;

    STDMETHOD_(BOOL, IsRDT)                 (THIS) PURE;
    STDMETHOD(SetRDT)                       (THIS_
                                            BOOL bIsRDT) PURE;

    STDMETHOD_(BOOL, SupportsMaximumASMBandwidth)  (THIS) PURE;
    STDMETHOD(SetSupportsMaximumASMBandwidth)      (THIS_
                                                    BOOL bSupportsMaximumASMBandwidth) PURE;

    STDMETHOD_(BOOL, SupportsMulticast)     (THIS) PURE;
    STDMETHOD(SetSupportsMulticast)         (THIS_
                                            BOOL bSupportsMulticast) PURE;

    STDMETHOD_(IHXBuffer*, GetStreamSelectionInfo)  (THIS) PURE;
    STDMETHOD(SetStreamSelectionInfo)               (THIS_ 
                                                    IHXBuffer* pStreamSelectionInfo) PURE;

    STDMETHOD_(UINT32, GetTotalMediaAdaptations)    (THIS) PURE;
    STDMETHOD(SetTotalMediaAdaptations)             (THIS_ 
                                                    UINT32 ulTotalMediaAdaptations) PURE;



    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStats::GetID()
    // Purpose:
    //      Get the id (assigned by the client stats mgr) for this client.
    // Arguments:
    //      void
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD_(UINT32, GetID)               (THIS) PURE;

    
    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStats::SetID()
    // Purpose:
    //      Set the connection id for this client. To be called by the client
    //      stats manager.
    // Arguments:
    //      ulConnId - conn id of client.
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(SetID)                        (THIS_
                                            UINT32 ulConnId) PURE;


    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStats::GetSession()
    // Purpose:
    //      Get the IHXSessionStats object for the provided session number.
    // Arguments:
    //      ulSessionId - Session number of session to get.
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD_(IHXSessionStats*, GetSession) (THIS_
                                             UINT32 ulSessionNumber) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStats::RemoveSession()
    // Purpose:
    //      Remove the IHXSessionStats object associated with the provided 
    //      session number.
    // Arguments:
    //      ulSessionId - Session number of session to remove.
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(RemoveSession)                 (THIS_
                                             UINT32 ulSessionNumber) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStats::AddSession()
    // Purpose:
    //      Add an IHXSessionStats object to list.
    // Arguments:
    //      pSession    - Pointer to IHXSessionStats object.
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD (AddSession)                   (THIS_
                                             IHXSessionStats* pSession) PURE;


};


///////////////////////////////////////////////////////////////////////////////
// Interface: 
//
//      IHXClientStatsSink
//
// Purpose:
//
//      Applications wishing to receive information regarding stats from the
//      client stats manager implement this interface.
//
// IID_IHXClientStatsSink:
//
//      {FDC6D1AA-D78E-40b0-A3E6-B7D6DF30383B}
//
///////////////////////////////////////////////////////////////////////////////


// {FDC6D1AA-D78E-40b0-A3E6-B7D6DF30383B}
DEFINE_GUID(IID_IHXClientStatsSink, 0xfdc6d1aa, 0xd78e, 0x40b0, 
            0xa3, 0xe6, 0xb7, 0xd6, 0xdf, 0x30, 0x38, 0x3b);


#define CLSID_IHXClientStatsSink     IID_IHXClientStatsSink

#undef  INTERFACE
#define INTERFACE   IHXClientStatsSink

DECLARE_INTERFACE_(IHXClientStatsSink, IUnknown)
{

    // IUnknown methods

    STDMETHOD(QueryInterface)               (THIS_
                                            REFIID riid,
                                            void** ppvObj) PURE;

    STDMETHOD_(UINT32,AddRef)               (THIS) PURE;

    STDMETHOD_(UINT32,Release)              (THIS) PURE;


    // IHXClientStatsSink methods

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsSink::OnStatsEvent()
    // Purpose:
    //      Notify sinks of a Client/Session stats event
    // Arguments:
    //      nEvent      the id of the triggering event 
    //      pClient     IHXStats object 
    //      pSession    IHX stats object (== NULL for client connect/disconnect, 
    //                  and timer events)
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(OnStatsEvent)             (THIS_
                                        ClientStatsEvent nEvent,
                                        IHXClientStats* pClient,
                                        IHXSessionStats* pSession) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsSink::GetStatsTimerInterval()
    // Purpose:
    //      Retrieve the desired timer interval from the sink for scheduling
    //      callbacks with connecting clients.
    // Arguments:
    //      pClient - Stats object. 
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD_(UINT32, GetStatsTimerInterval)    (THIS) PURE;

};


///////////////////////////////////////////////////////////////////////////////
// Interface: 
//
//      IHXClientStatsManager
//
// Purpose:
//      
//      Allows plugins to access the server's client stats management system
//      via the IHXContext.      
//
// IID_IHXClientStatsManager:
//
//      {E0ECE2B8-A94B-4eb4-AF0D-177D053B2ED6}
//
///////////////////////////////////////////////////////////////////////////////


DEFINE_GUID(IID_IHXClientStatsManager, 0xe0ece2b8, 0xa94b, 0x4eb4, 
            0xaf, 0xd, 0x17, 0x7d, 0x5, 0x3b, 0x2e, 0xd6);

#define CLSID_IHXClientStatsManager     IID_IHXClientStatsManager

#undef  INTERFACE
#define INTERFACE   IHXClientStatsManager

DECLARE_INTERFACE_(IHXClientStatsManager, IUnknown)
{

    // IUnknown methods

    STDMETHOD(QueryInterface)               (THIS_
                                            REFIID riid,
                                            void** ppvObj) PURE;

    STDMETHOD_(UINT32,AddRef)               (THIS) PURE;

    STDMETHOD_(UINT32,Release)              (THIS) PURE;


    // IHXClientStatsManager methods


    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::RegisterSink()
    // Purpose:
    //      Registers an IHXClientStatsSink object with the manager.
    //      The sink is then able to receive notifications.
    // Arguments:
    //      pSink - IN - IHXClientStatsSink object to register.   
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(RegisterSink)                 (THIS_
                                            IHXClientStatsSink* pSink) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::RemoveSink()
    // Purpose:
    //      Removes an IHXClientStatsSink object from the manager.
    // Arguments:
    //      pSink - IN - IHXClientStatsSink object to remove.   
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(RemoveSink)                 (THIS_
                                          IHXClientStatsSink* pSink) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::GetClient()
    // Purpose:
    //      Returns an IHXClientStats object, given a client ID.
    // Arguments:
    //      ulClientId - IN - Conn id of client. 
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD_(IHXClientStats*, GetClient)  (THIS_
                                            UINT32 ulClientId) PURE;   

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::AddClient()
    // Purpose:
    //      Adds an IHXClientStats object to the manager list. To be used
    //      when clients connect.
    // Arguments:
    //      ulClientId - IN - Conn id of client. 
    //      pClient    - IN - Pointer to clientstats object to add.
    //      
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(AddClient)                 (THIS_ 
                                         IHXClientStats* pClient) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::RemoveClient()
    // Purpose:
    //      Removes an IHXClientStats object from the manager list. To be used
    //      when clients disconnect.
    // Arguments:
    //      ulClientId - Conn id of client. 
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(RemoveClient)                 (THIS_ 
                                            UINT32 ulClientId) PURE;


    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::GetClientCount()
    // Purpose:
    //      Calls a sink back, passing info about all IHXClientStats objects 
    //      that the manager currently knows about.
    // Arguments:
    //      pSink - IN - IHXClientStatsSink object to callback. 
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD_(UINT32, GetClientCount)       (THIS) PURE;


    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::UseRegistryForStats()
    // Purpose:
    //      Returns TRUE if the server is configured to use the registry for
    //      client stats.
    // Arguments:
    //      void
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD_(BOOL, UseRegistryForStats)  (THIS) PURE;

    ///////////////////////////////////////////////////////////////////////////
    // Method: 
    //      IHXClientStatsManager::ScheduleSinkNotifications()
    // Purpose:
    //      Allows clients of the StatsMgr to notify stat sinks of important
    //      state changes
    // Arguments:
    //      ulClientId - IN - Conn id of client. 
    //      pClient    - IN - Pointer to clientstats object to add.
    ///////////////////////////////////////////////////////////////////////////

    STDMETHOD(ScheduleSinkNotifications)(THIS_
                                     IHXClientStats* pClient, 
                                     IHXSessionStats* pSession,
                                     ClientStatsEvent nEvent) PURE;

};


#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?