Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1997-1999 Microsoft Corporation
Module Name:
Queue.h
Abstract:
Declaration of the CQueue class Author:
noela 11-04-97 Notes:
Revision History:
--*/
#ifndef __QUEUE_H_
#define __QUEUE_H_
#include "resource.h" // main symbols
class CAgentHandler;
/////////////////////////////////////////////////////////////////////////////
// CQueue
class ATL_NO_VTABLE CQueue : public CTAPIComObjectRoot<CQueue>, public IDispatchImpl<ITQueue, &IID_ITQueue, &LIBID_TAPI3Lib>, public CObjectSafeImpl { private: PWSTR m_szName; DWORD m_dwHandle; CAgentHandler * m_pHandler; BOOL m_bRequiresUpdating;
DWORD m_dwMeasurementPeriod; DWORD m_dwTotalCallsQueued; DWORD m_dwCurrentCallsQueued; DWORD m_dwTotalCallsAdandoned; DWORD m_dwTotalCallsFlowedIn; DWORD m_dwTotalCallsFlowedOut; DWORD m_dwLongestEverWaitTime; DWORD m_dwCurrentLongestWaitTime; DWORD m_dwAverageWaitTime; DWORD m_dwFinalDisposition;
public: CQueue();
~CQueue() { //DeleteCriticalSection( &m_csDataLock );
}
STDMETHOD(UpdateInfo) (); STDMETHOD(CheckIfUpToDate) ();
inline DWORD getID() {return m_dwHandle;} inline void SetRequiresUpdate() {m_bRequiresUpdating = TRUE;}
void FinalRelease(); CAgentHandler * GetAgentHandler() { return m_pHandler; }
DECLARE_MARSHALQI(CQueue) DECLARE_TRACELOG_CLASS(CQueue)
BEGIN_COM_MAP(CQueue) COM_INTERFACE_ENTRY(ITQueue) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IObjectSafety) COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI) COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM) END_COM_MAP()
// ITQueue
public:
STDMETHOD(get_Name)(BSTR * ppName); STDMETHOD(put_MeasurementPeriod)(long ulPeriod); STDMETHOD(get_MeasurementPeriod) (long *pulPeriod); STDMETHOD(get_TotalCallsQueued) (long * pulCalls); STDMETHOD(get_CurrentCallsQueued) (long * pulCalls); STDMETHOD(get_TotalCallsAbandoned) (long * pulCalls); STDMETHOD(get_TotalCallsFlowedIn) (long * pulCalls); STDMETHOD(get_TotalCallsFlowedOut) (long * pulCalls); STDMETHOD(get_LongestEverWaitTime) (long * pulWaitTime); STDMETHOD(get_CurrentLongestWaitTime) (long * pulWaitTime); STDMETHOD(get_AverageWaitTime) (long * pulWaitTime); STDMETHOD(get_FinalDisposition) (long * pulCalls);
STDMETHOD(Initialize) ( DWORD dwQueueID, PWSTR pszName, CAgentHandler * pHandler );
};
/////////////////////////////////////////////////////////////////////////////
// CQueueEvent
class ATL_NO_VTABLE CQueueEvent : public CTAPIComObjectRoot<CQueueEvent>, public IDispatchImpl<ITQueueEvent, &IID_ITQueueEvent, &LIBID_TAPI3Lib>, public CObjectSafeImpl { protected: ACDQUEUE_EVENT m_QueueEvent; ITQueue * m_pQueue;
public: CQueueEvent() { }
static HRESULT FireEvent( CQueue * pQueue, ACDQUEUE_EVENT Event );
void FinalRelease(); DECLARE_MARSHALQI(CQueueEvent) DECLARE_TRACELOG_CLASS(CQueueEvent)
BEGIN_COM_MAP(CQueueEvent) COM_INTERFACE_ENTRY(ITQueueEvent) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IObjectSafety) COM_INTERFACE_ENTRY_FUNC(IID_IMarshal, 0, IMarshalQI) COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pFTM) END_COM_MAP()
// ITQueueEvent
public: STDMETHOD(get_Event)(ACDQUEUE_EVENT * pEvent); STDMETHOD(get_Queue)(ITQueue ** ppQueue); };
#endif //__QUEUE_H_
|