/*++ Copyright (c) 1999 Microsoft Corporation Abstract: @doc @module commandverifier.hxx | declaration for the command verifier @end Author: Reuven Lax [reuvenl] 11/20/2001 Revision History: Name Date Comments reuvenl 11/20/2001 Created --*/ #ifndef _COMMANDVERIFIER_H_ #define _COMMANDVERIFIER_H_ #include "versionspecific.h" class CCommandVerifier { public: virtual ~CCommandVerifier() {} static CCommandVerifier* Instance(); virtual void CreateSnapshot (long type, LPCWSTR forVolume, VSS_ID idProvider, ULONGLONG autoRetry, CVssFunctionTracer& ft) = 0; virtual void ListProviders (CVssFunctionTracer& ft) = 0; virtual void ListSnapshots (long type, VSS_ID idProvider, LPCWSTR forVolume, VSS_ID idShadow, VSS_ID idSet, CVssFunctionTracer& ft) = 0; virtual void ListWriters (CVssFunctionTracer& ft) = 0; virtual void AddDiffArea (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, ULONGLONG maxSize, CVssFunctionTracer& ft) = 0; virtual void ResizeDiffArea (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, ULONGLONG maxSize, CVssFunctionTracer& ft) = 0; virtual void DeleteDiffAreas (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, bool quiet, CVssFunctionTracer& ft) = 0; virtual void ListDiffAreas (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, CVssFunctionTracer& ft) = 0; virtual void DeleteSnapshots (long type, LPCWSTR forVolume, bool all, bool oldest, VSS_ID idShadow, bool quiet, CVssFunctionTracer& ft) = 0; virtual void ExposeSnapshot (VSS_ID idShadow, LPCWSTR exposeUsing, LPCWSTR sharePath, bool locally, CVssFunctionTracer& ft) = 0; virtual void ListVolumes (VSS_ID idProvider, long type, CVssFunctionTracer& ft) = 0; }; class CInternalVerifier : public CCommandVerifier { public: virtual void CreateSnapshot (long type, LPCWSTR forVolume, VSS_ID idProvider, ULONGLONG autoRetry, CVssFunctionTracer& ft); virtual void ListProviders (CVssFunctionTracer& ft); virtual void ListSnapshots (long type, VSS_ID idProvider, LPCWSTR forVolume, VSS_ID idShadow, VSS_ID idSet, CVssFunctionTracer& ft); virtual void ListWriters (CVssFunctionTracer& ft); virtual void AddDiffArea (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, ULONGLONG maxSize, CVssFunctionTracer& ft); virtual void ResizeDiffArea (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, ULONGLONG maxSize, CVssFunctionTracer& ft); virtual void DeleteDiffAreas (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, bool quiet, CVssFunctionTracer& ft); virtual void ListDiffAreas (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, CVssFunctionTracer& ft); virtual void DeleteSnapshots (long type, LPCWSTR forVolume, bool all, bool oldest, VSS_ID idShadow, bool quiet, CVssFunctionTracer& ft); virtual void ExposeSnapshot (VSS_ID idShadow, LPCWSTR exposeUsing, LPCWSTR sharePath, bool locally, CVssFunctionTracer& ft); virtual void ListVolumes (VSS_ID idProvider, long type, CVssFunctionTracer& ft); }; class CExternalVerifier : public CCommandVerifier { public: virtual void CreateSnapshot (long type, LPCWSTR forVolume, VSS_ID idProvider, ULONGLONG autoRetry, CVssFunctionTracer& ft); virtual void ListProviders (CVssFunctionTracer& ft); virtual void ListSnapshots (long type, VSS_ID idProvider, LPCWSTR forVolume, VSS_ID idShadow, VSS_ID idSet, CVssFunctionTracer& ft); virtual void ListWriters (CVssFunctionTracer& ft); virtual void AddDiffArea (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, ULONGLONG maxSize, CVssFunctionTracer& ft); virtual void ResizeDiffArea (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, ULONGLONG maxSize, CVssFunctionTracer& ft); virtual void DeleteDiffAreas (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, bool quiet, CVssFunctionTracer& ft); virtual void ListDiffAreas (VSS_ID idProvider, LPCWSTR forVolume, LPCWSTR onVolume, CVssFunctionTracer& ft); virtual void DeleteSnapshots (long type, LPCWSTR forVolume, bool all, bool oldest, VSS_ID idShadow, bool quiet, CVssFunctionTracer& ft); virtual void ExposeSnapshot (VSS_ID idShadow, LPCWSTR exposeUsing, LPCWSTR sharePath, bool locally, CVssFunctionTracer& ft); virtual void ListVolumes (VSS_ID idProvider, long type, CVssFunctionTracer& ft); }; ///////////////////////////////////////////////////////////////////////////// // Define creation of parameter verifier inline CCommandVerifier* CCommandVerifier::Instance() { switch (dCurrentSKU) { case SKU_INT: return new CInternalVerifier(); default: return new CExternalVerifier(); } } #endif