346 lines
7.3 KiB
C++
346 lines
7.3 KiB
C++
/*++
|
|
|
|
© 1998 Seagate Software, Inc. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
hsmacrsc.cpp
|
|
|
|
Abstract:
|
|
|
|
This component represents the actions that can be performed by a job
|
|
on a resource either before or after the scan.
|
|
|
|
Author:
|
|
|
|
Ronald G. White [ronw] 14-Aug-1997
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
#include "wsb.h"
|
|
|
|
#ifndef _HSMACRSC_
|
|
#define _HSMACRSC_
|
|
|
|
|
|
// Abstract Classes
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResource
|
|
|
|
Class Description:
|
|
|
|
An abstract class that represents an action that can be performed
|
|
on a resource. Specific actions are implemented as subclasses
|
|
of this object.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResource :
|
|
public CWsbObject,
|
|
public IHsmActionOnResource
|
|
{
|
|
public:
|
|
|
|
// IPersistStream
|
|
public:
|
|
STDMETHOD(GetSizeMax)(ULARGE_INTEGER* /*pSize*/) {
|
|
return(E_NOTIMPL); }
|
|
STDMETHOD(Load)(IStream* pStream);
|
|
STDMETHOD(Save)(IStream* pStream, BOOL clearDirty);
|
|
|
|
// IWsbTestable
|
|
STDMETHOD(Test)(USHORT * /*passed*/, USHORT* /*failed*/) {
|
|
return(E_NOTIMPL); }
|
|
|
|
// IHsmAction
|
|
STDMETHOD(GetName)(OLECHAR** pName, ULONG bufferSize);
|
|
|
|
protected:
|
|
ULONG m_nameId;
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePost
|
|
|
|
Class Description:
|
|
|
|
An abstract class that represents an action that can be performed
|
|
on a resource after a job. Specific actions are implemented as subclasses
|
|
of this object.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePost :
|
|
public CHsmActionOnResource,
|
|
public IHsmActionOnResourcePost
|
|
{
|
|
public:
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePre
|
|
|
|
Class Description:
|
|
|
|
An abstract class that represents an action that can be performed
|
|
on a resource before a job starts. Specific actions are implemented as subclasses
|
|
of this object.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePre :
|
|
public CHsmActionOnResource,
|
|
public IHsmActionOnResourcePre
|
|
{
|
|
public:
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePreScan
|
|
|
|
Class Description:
|
|
|
|
An abstract class that represents an action that can be performed
|
|
on a resource before scanning for a job starts. Specific actions are implemented as subclasses
|
|
of this object.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePreScan :
|
|
public CHsmActionOnResource,
|
|
public IHsmActionOnResourcePreScan
|
|
{
|
|
public:
|
|
};
|
|
|
|
// Concrete Classes : Inheriting from CHsmActionOnResource
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePostValidate
|
|
|
|
Class Description:
|
|
|
|
A class that represents the action required by the resource after
|
|
a Validate job ends.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePostValidate :
|
|
public CHsmActionOnResourcePost,
|
|
public CComCoClass<CHsmActionOnResourcePostValidate,&CLSID_CHsmActionOnResourcePostValidate>
|
|
{
|
|
public:
|
|
CHsmActionOnResourcePostValidate() {}
|
|
BEGIN_COM_MAP(CHsmActionOnResourcePostValidate)
|
|
COM_INTERFACE_ENTRY2(IPersist, IPersistStream)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResource)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResourcePost)
|
|
COM_INTERFACE_ENTRY(IWsbCollectable)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CHsmActionOnResourcePostValidate)
|
|
|
|
// CComObjectRoot
|
|
public:
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
// IPersist
|
|
public:
|
|
STDMETHOD(GetClassID)(LPCLSID pClsid);
|
|
|
|
// IHsmActionOnResource
|
|
public:
|
|
STDMETHOD(Do)(IHsmJobWorkItem* pWorkItem, HSM_JOB_STATE state);
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePreValidate
|
|
|
|
Class Description:
|
|
|
|
A class that represents the action required by the resource before
|
|
a Validate job starts.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePreValidate :
|
|
public CHsmActionOnResourcePre,
|
|
public CComCoClass<CHsmActionOnResourcePreValidate,&CLSID_CHsmActionOnResourcePreValidate>
|
|
{
|
|
public:
|
|
CHsmActionOnResourcePreValidate() {}
|
|
BEGIN_COM_MAP(CHsmActionOnResourcePreValidate)
|
|
COM_INTERFACE_ENTRY2(IPersist, IPersistStream)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResource)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResourcePre)
|
|
COM_INTERFACE_ENTRY(IWsbCollectable)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CHsmActionOnResourcePreValidate)
|
|
|
|
// CComObjectRoot
|
|
public:
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
// IPersist
|
|
public:
|
|
STDMETHOD(GetClassID)(LPCLSID pClsid);
|
|
|
|
// IHsmActionOnResource
|
|
public:
|
|
STDMETHOD(Do)(IHsmJobWorkItem* pWorkItem, IHsmJobDef* pJobDef);
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePostUnmanage
|
|
|
|
Class Description:
|
|
|
|
A class that represents the action required by the resource after
|
|
a Unmanage job ends.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePostUnmanage :
|
|
public CHsmActionOnResourcePost,
|
|
public CComCoClass<CHsmActionOnResourcePostUnmanage,&CLSID_CHsmActionOnResourcePostUnmanage>
|
|
{
|
|
public:
|
|
CHsmActionOnResourcePostUnmanage() {}
|
|
BEGIN_COM_MAP(CHsmActionOnResourcePostUnmanage)
|
|
COM_INTERFACE_ENTRY2(IPersist, IPersistStream)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResource)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResourcePost)
|
|
COM_INTERFACE_ENTRY(IWsbCollectable)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CHsmActionOnResourcePostUnmanage)
|
|
|
|
// CComObjectRoot
|
|
public:
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
// IPersist
|
|
public:
|
|
STDMETHOD(GetClassID)(LPCLSID pClsid);
|
|
|
|
// IHsmActionOnResource
|
|
public:
|
|
STDMETHOD(Do)(IHsmJobWorkItem* pWorkItem, HSM_JOB_STATE state);
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePreUnmanage
|
|
|
|
Class Description:
|
|
|
|
A class that represents the action required by the resource before
|
|
an Unmanage job ends.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePreUnmanage :
|
|
public CHsmActionOnResourcePre,
|
|
public CComCoClass<CHsmActionOnResourcePreUnmanage,&CLSID_CHsmActionOnResourcePreUnmanage>
|
|
{
|
|
public:
|
|
CHsmActionOnResourcePreUnmanage() {}
|
|
BEGIN_COM_MAP(CHsmActionOnResourcePreUnmanage)
|
|
COM_INTERFACE_ENTRY2(IPersist, IPersistStream)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResource)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResourcePre)
|
|
COM_INTERFACE_ENTRY(IWsbCollectable)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CHsmActionOnResourcePreUnmanage)
|
|
|
|
// CComObjectRoot
|
|
public:
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
// IPersist
|
|
public:
|
|
STDMETHOD(GetClassID)(LPCLSID pClsid);
|
|
|
|
// IHsmActionOnResource
|
|
public:
|
|
STDMETHOD(Do)(IHsmJobWorkItem* pWorkItem, IHsmJobDef* pJobDef);
|
|
};
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CHsmActionOnResourcePreScanUnmanage
|
|
|
|
Class Description:
|
|
|
|
A class that represents the action required by the resource before
|
|
scanning for an Unmanage job ends.
|
|
|
|
--*/
|
|
|
|
class CHsmActionOnResourcePreScanUnmanage :
|
|
public CHsmActionOnResourcePreScan,
|
|
public CComCoClass<CHsmActionOnResourcePreScanUnmanage,&CLSID_CHsmActionOnResourcePreScanUnmanage>
|
|
{
|
|
public:
|
|
CHsmActionOnResourcePreScanUnmanage() {}
|
|
BEGIN_COM_MAP(CHsmActionOnResourcePreScanUnmanage)
|
|
COM_INTERFACE_ENTRY2(IPersist, IPersistStream)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResource)
|
|
COM_INTERFACE_ENTRY(IHsmActionOnResourcePreScan)
|
|
COM_INTERFACE_ENTRY(IWsbCollectable)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CHsmActionOnResourcePreScanUnmanage)
|
|
|
|
// CComObjectRoot
|
|
public:
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
// IPersist
|
|
public:
|
|
STDMETHOD(GetClassID)(LPCLSID pClsid);
|
|
|
|
// IHsmActionOnResourcePreScan
|
|
public:
|
|
STDMETHOD(Do)(IFsaResource* pFsaResource, IHsmSession* pSession);
|
|
};
|
|
|
|
#endif // _HSMACRSC_
|