#ifndef _HSMPHASE_ #define _HSMPHASE_ /*++ © 1998 Seagate Software, Inc. All rights reserved. Module Name: hsmsesst.h Abstract: This class is the phase component, which keeps track the status/totals for a phase of a session. Author: Chuck Bardeen [cbardeen] 14-Feb-1997 Revision History: --*/ #include "resource.h" // main symbols #include "wsb.h" #include "job.h" /*++ Class Name: CHsmPhase This class is the phase component, which keeps track the status/totals for a phase of a session. Class Description: --*/ class CHsmPhase : public CWsbObject, public IHsmPhase, public IHsmPhasePriv, public CComCoClass { public: CHsmPhase() {} BEGIN_COM_MAP(CHsmPhase) COM_INTERFACE_ENTRY(IHsmPhase) COM_INTERFACE_ENTRY(IHsmPhasePriv) COM_INTERFACE_ENTRY(IWsbCollectable) COM_INTERFACE_ENTRY2(IPersist, IPersistStream) COM_INTERFACE_ENTRY(IPersistStream) COM_INTERFACE_ENTRY(IWsbTestable) END_COM_MAP() DECLARE_REGISTRY_RESOURCEID(IDR_CHsmPhase) // CComObjectRoot public: STDMETHOD(FinalConstruct)(void); void FinalRelease(void); // IPersist public: STDMETHOD(GetClassID)(LPCLSID pClsid); // IPersistStream public: STDMETHOD(GetSizeMax)(ULARGE_INTEGER* pSize); STDMETHOD(Load)(IStream* pStream); STDMETHOD(Save)(IStream* pStream, BOOL clearDirty); // IWsbCollectable public: STDMETHOD(CompareTo)(IUnknown* pUnknown, SHORT* pResult); // IWsbTestable public: STDMETHOD(Test)(USHORT *passed, USHORT* failed); // IHsmPhase public: STDMETHOD(Clone)(IHsmPhase** ppPhase); STDMETHOD(CompareToPhase)(HSM_JOB_PHASE phase, SHORT* pResult); STDMETHOD(CompareToIPhase)(IHsmPhase* pPhase, SHORT* pResult); STDMETHOD(CopyTo)(IHsmPhase* pPhase); STDMETHOD(GetElapsedTime)(ULONG* pDays, USHORT* pHours, USHORT* pMinutes, USHORT* pSeconds); STDMETHOD(GetMediaState)(HSM_JOB_MEDIA_STATE* pState); STDMETHOD(GetMediaStateAsString)(OLECHAR** pName, ULONG bufferSize); STDMETHOD(GetName)(OLECHAR** pName, ULONG bufferSize); STDMETHOD(GetPhase)(HSM_JOB_PHASE* pPhase); STDMETHOD(GetPriority)(HSM_JOB_PRIORITY* pPriority); STDMETHOD(GetPriorityAsString)(OLECHAR** pName, ULONG bufferSize); STDMETHOD(GetState)(HSM_JOB_STATE* pState); STDMETHOD(GetStateAsString)(OLECHAR** pName, ULONG bufferSize); STDMETHOD(GetStats)(LONGLONG* pItems, LONGLONG* pSize, LONGLONG* pSkippedItems, LONGLONG* pSkippedSize, LONGLONG* errorItems, LONGLONG* errorSize); STDMETHOD(GetStartTime)(FILETIME* pTime); STDMETHOD(GetStopTime)(FILETIME* pTime); // IHsmPhasePriv STDMETHOD(AddItem)(IFsaScanItem* pItem, HRESULT hrItem); STDMETHOD(Clone)(IHsmPhasePriv** ppPhasePriv); STDMETHOD(CopyTo)(IHsmPhasePriv* pPhasePriv); STDMETHOD(SetInternalStuff)(ULONG mountCount, ULONG transferCount, LONGLONG elapsedTime, FILETIME startTime, FILETIME restartTime, FILETIME stopTime); STDMETHOD(SetPhase)(HSM_JOB_PHASE phase); STDMETHOD(SetMediaState)(HSM_JOB_MEDIA_STATE state); STDMETHOD(SetPriority)(HSM_JOB_PRIORITY priority); STDMETHOD(SetState)(HSM_JOB_STATE state); STDMETHOD(SetStats)(LONGLONG items, LONGLONG size, LONGLONG skippedItems, LONGLONG skippedSize, LONGLONG errorItems, LONGLONG errorSize); protected: HSM_JOB_MEDIA_STATE m_mediaState; ULONG m_mountCount; ULONG m_transferCount; HSM_JOB_PHASE m_phase; HSM_JOB_PRIORITY m_priority; HSM_JOB_STATE m_state; LONGLONG m_items; LONGLONG m_size; LONGLONG m_skippedItems; LONGLONG m_skippedSize; LONGLONG m_errorItems; LONGLONG m_errorSize; LONGLONG m_elapsedTime; FILETIME m_startTime; FILETIME m_restartTime; FILETIME m_stopTime; }; #endif // _HSMPHASE_