mirror of https://github.com/tongzx/nt5src
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.
137 lines
4.4 KiB
137 lines
4.4 KiB
#ifndef _FSAPOST_
|
|
#define _FSAPOST_
|
|
|
|
/*++
|
|
|
|
© 1998 Seagate Software, Inc. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
FSAPOST.cpp
|
|
|
|
Abstract:
|
|
|
|
This class contains represents a post it - a unit of work
|
|
that is exchanged between the FSA and the HSM engine.
|
|
|
|
Author:
|
|
|
|
Cat Brant [cbrant] 1-Apr-1997
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
#include "job.h"
|
|
#include "fsa.h"
|
|
#include "fsaprv.h"
|
|
|
|
/*++
|
|
|
|
Class Name:
|
|
|
|
CFsaScanItem
|
|
|
|
Class Description:
|
|
|
|
|
|
--*/
|
|
|
|
|
|
class CFsaPostIt :
|
|
public CWsbObject,
|
|
public IFsaPostIt,
|
|
public CComCoClass<CFsaPostIt,&CLSID_CFsaPostIt>
|
|
{
|
|
public:
|
|
CFsaPostIt() {}
|
|
BEGIN_COM_MAP(CFsaPostIt)
|
|
COM_INTERFACE_ENTRY(IFsaPostIt)
|
|
COM_INTERFACE_ENTRY(IPersistStream)
|
|
COM_INTERFACE_ENTRY(IWsbCollectable)
|
|
COM_INTERFACE_ENTRY(IWsbPersistStream)
|
|
COM_INTERFACE_ENTRY(IWsbTestable)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_FsaPostIt)
|
|
|
|
// 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);
|
|
WSB_FROM_CWSBOBJECT;
|
|
|
|
// IWsbTestable
|
|
STDMETHOD(Test)(USHORT *passed, USHORT* failed);
|
|
|
|
// IFsaPostItPriv
|
|
public:
|
|
|
|
// IFsaPostIt
|
|
public:
|
|
STDMETHOD(CompareToIPostIt)(IFsaPostIt* pPostIt, SHORT* pResult);
|
|
|
|
STDMETHOD(GetFileVersionId)(LONGLONG *pFileVersionId);
|
|
STDMETHOD(GetFilterRecall)(IFsaFilterRecall** ppRecall);
|
|
STDMETHOD(GetMode)(ULONG *pMode);
|
|
STDMETHOD(GetPath)(OLECHAR ** pPath, ULONG bufferSize);
|
|
STDMETHOD(GetPlaceholder)(FSA_PLACEHOLDER *pPlaceholder);
|
|
STDMETHOD(GetRequestAction)(FSA_REQUEST_ACTION *pRequestAction);
|
|
STDMETHOD(GetRequestOffset)(LONGLONG *pRequestOffset);
|
|
STDMETHOD(GetRequestSize)(LONGLONG *pRequestSize);
|
|
STDMETHOD(GetResult)(HRESULT *pHr);
|
|
STDMETHOD(GetResultAction)(FSA_RESULT_ACTION *pResultAction);
|
|
STDMETHOD(GetSession)(IHsmSession **pSession);
|
|
STDMETHOD(GetStoragePoolId)(GUID *pStoragePoolId);
|
|
STDMETHOD(GetUSN)(LONGLONG *pUsn);
|
|
STDMETHOD(GetThreadId)(DWORD *threadId);
|
|
|
|
STDMETHOD(SetFileVersionId)(LONGLONG fileVersionId);
|
|
STDMETHOD(SetFilterRecall)(IFsaFilterRecall* pRecall);
|
|
STDMETHOD(SetMode)(ULONG mode);
|
|
STDMETHOD(SetPath)(OLECHAR * path);
|
|
STDMETHOD(SetPlaceholder)(FSA_PLACEHOLDER *pPlaceholder);
|
|
STDMETHOD(SetRequestAction)(FSA_REQUEST_ACTION requestAction);
|
|
STDMETHOD(SetRequestOffset)(LONGLONG requestOffset);
|
|
STDMETHOD(SetRequestSize)(LONGLONG requestSize);
|
|
STDMETHOD(SetResult)(HRESULT hr);
|
|
STDMETHOD(SetResultAction)(FSA_RESULT_ACTION pResultAction);
|
|
STDMETHOD(SetSession)(IHsmSession *pSession);
|
|
STDMETHOD(SetStoragePoolId)(GUID storagePoolId);
|
|
STDMETHOD(SetUSN)(LONGLONG usn);
|
|
STDMETHOD(SetThreadId)(DWORD threadId);
|
|
|
|
protected:
|
|
CComPtr<IFsaFilterRecall> m_pFilterRecall; // FSA filter recall that is tracking this recall
|
|
CComPtr<IHsmSession> m_pSession; // HSM session that generated the PostIt
|
|
GUID m_storagePoolId; // Storage pool to receive data (manage only)
|
|
ULONG m_mode; // File open mode (filter recall only)
|
|
FSA_REQUEST_ACTION m_requestAction; // Action for engine to take
|
|
FSA_RESULT_ACTION m_resultAction; // Action for FSA to take when engine is done
|
|
LONGLONG m_fileVersionId; // Version of the file (manage and recall)
|
|
LONGLONG m_requestOffset; // The starting offset of the section to be managed (manage and recall)
|
|
LONGLONG m_requestSize; // The length of the section to be managed (manage and recall)
|
|
FSA_PLACEHOLDER m_placeholder; // File placeholder information
|
|
CWsbStringPtr m_path; // Path of file name from root of resource, callee must free this memory
|
|
HRESULT m_hr; // Result of the FSA_REQUEST_ACTION
|
|
LONGLONG m_usn; // USN of the file
|
|
DWORD m_threadId; // id of thread causing recall
|
|
};
|
|
|
|
#endif // _FSAPOST_
|