📄 smplfsys.h
字号:
~SMPLAsyncResponse();
HX_RESULT AsyncReadDone(HX_RESULT result, IHXBuffer* pBuffer);
HX_RESULT AsyncSeekDone(HX_RESULT result);
CSimpleFileObject* m_pSMPLFileObject;
};
friend class SMPLAsyncResponse;
SMPLAsyncResponse* m_pAsyncFileResponse;
IHXInterruptState* m_pInterruptState;
IHXFileStatResponse* m_pFileStatResponse;
SeekReason m_eSeekReason;
UINT32 m_ulPreSeekPosition;
BOOL m_bFileToBeClosed;
#endif
CHXGenericCallback* m_pStackCallback;
#if defined(HELIX_FEATURE_PROGDOWN)
enum
{
CallbackStateUnknown,
CallbackStateSeek,
CallbackStateRead
};
CProgressiveDownloadMonitor* m_pProgDownMon;
UINT32 m_ulCallbackState;
BOOL RequireFullRead();
HX_RESULT FinishDoReadWithCallback(UINT32 actual);
HX_RESULT FinishDoReadWithoutCallback(UINT32 actual);
BOOL m_bProgDownEnabled;
#endif /* #if defined(HELIX_FEATURE_PROGDOWN) */
public:
CSimpleFileObject
(
CHXString& base_path,
CSimpleFileSystem*,
IUnknown*,
UINT32 ulMaxRecursionLevel
);
~CSimpleFileObject();
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj);
STDMETHOD_(ULONG32,AddRef) (THIS);
STDMETHOD_(ULONG32,Release) (THIS);
/*
* IHXFileObject methods
*/
/************************************************************************
* Method:
* IHXFileObject::Init
* Purpose:
* Associates a file object with the file response object it should
* notify of operation completness. This method should also check
* for validity of the object (for example by opening it if it is
* a local file).
*/
STDMETHOD(Init) (THIS_
ULONG32 /*IN*/ ulFlags,
IHXFileResponse* /*IN*/ pFileResponse);
/************************************************************************
* Method:
* IHXFileObject::GetFilename
* Purpose:
* Returns the filename (without any path information) associated
* with a file object.
*/
STDMETHOD(GetFilename) (THIS_
REF(const char*) /*OUT*/ pFilename);
/************************************************************************
* Method:
* IHXFileObject::Close
* Purpose:
* Closes the file resource and releases all resources associated
* with the object.
*/
STDMETHOD(Close) (THIS);
/************************************************************************
* Method:
* IHXFileObject::Read
* Purpose:
* Reads a buffer of data of the specified length from the file
* and asynchronously returns it to the caller via the
* IHXFileResponse interface passed in to Init.
*/
STDMETHOD(Read) (THIS_
ULONG32 ulCount);
/************************************************************************
* Method:
* IHXFileObject::Write
* Purpose:
* Writes a buffer of data to the file and asynchronously notifies
* the caller via the IHXFileResponse interface passed in to Init,
* of the completeness of the operation.
*/
STDMETHOD(Write) (THIS_
IHXBuffer* pBuffer);
/************************************************************************
* Method:
* IHXFileObject::Seek
* Purpose:
* Seeks to an offset in the file and asynchronously notifies
* the caller via the IHXFileResponse interface passed in to Init,
* of the completeness of the operation.
*/
STDMETHOD(Seek) (THIS_
ULONG32 ulOffset,
BOOL bRelative);
/************************************************************************
* Method:
* IHXFileObject::Stat
* Purpose:
* Collects information about the file that is returned to the
* caller in an IHXStat object
*/
STDMETHOD(Stat) (THIS_
IHXFileStatResponse* pFileStatResponse);
/************************************************************************
* Method:
* IHXFileObject::Advise
* Purpose:
* To pass information to the File Object
*/
STDMETHOD(Advise) (THIS_
ULONG32 ulInfo);
/************************************************************************
* Method:
* IHXDirHandler::InitDirHandler
* Purpose:
* Associates a directory handler with the directory handler
* response, it should notify of operation completness.
*/
STDMETHOD(InitDirHandler) (THIS_
IHXDirHandlerResponse* /*IN*/ pDirResponse);
/************************************************************************
* Method:
* IHXDirHandler::CloseDirHandler
* Purpose:
* Closes the directory handler resource and releases all resources
* associated with the object.
*/
STDMETHOD(CloseDirHandler) (THIS);
/************************************************************************
* Method:
* IHXDirHandler::MakeDir
* Purpose:
* Create the directory
*/
STDMETHOD(MakeDir) (THIS);
/************************************************************************
* Method:
* IHXDirHandler::ReadDir
* Purpose:
* Get a dump of the directory
*/
STDMETHOD(ReadDir) (THIS);
/************************************************************************
* Method:
* IHXGetFileFromSamePool::GetFileObjectFromPool
* Purpose:
* To get another FileObject from the same pool.
*/
STDMETHOD(GetFileObjectFromPool) (THIS_
IHXGetFileFromSamePoolResponse*);
// IHXFileExists interface
/************************************************************************
* Method:
* IHXFileExists::DoesExist
* Purpose:
*/
STDMETHOD(DoesExist) (THIS_
const char* /*IN*/ pPath,
IHXFileExistsResponse* /*IN*/ pFileResponse);
//IHXRequestHandler methods
/************************************************************************
* Method:
* IHXRequestHandler::SetRequest
* Purpose:
* Associates an IHXRequest with an object
*/
STDMETHOD(SetRequest) (THIS_
IHXRequest* /*IN*/ pRequest);
/************************************************************************
* Method:
* IHXRequestHandler::GetRequest
* Purpose:
* Gets the IHXRequest object associated with an object
*/
STDMETHOD(GetRequest) (THIS_
REF(IHXRequest*) /*OUT*/ pRequest);
/************************************************************************
* Method:
* IHXFileRename::Rename
* Purpose:
* Renames the file to the new file name
*/
STDMETHOD(Rename) (THIS_
const char* /*IN*/ pFilename);
/************************************************************************
* Method:
* IHXFileMove::Move
* Purpose:
* Renames the file to the new file name
*/
STDMETHOD(Move) (THIS_
const char* /*IN*/ pFilename);
/************************************************************************
* Method:
* IHXFileRemove::Remove
* Purpose:
* Removes the file from the file system
*/
STDMETHOD(Remove) (THIS);
/************************************************************************
* Method:
* Private interface::_OpenFile
* Purpose:
* This common method is used from Init() and GetFileObjectFromPool()
*/
STDMETHOD(_OpenFile) (THIS_
ULONG32 ulFlags);
STDMETHOD_(UINT32,IsThreadSafe)(THIS);
#if defined(HELIX_FEATURE_PROGDOWN)
// CProgressiveDownloadMonitorResponse methods
STDMETHOD(ProgressiveCallback) (THIS);
#endif /* #if defined(HELIX_FEATURE_PROGDOWN) */
// CSimpleFileObject methods
static void StackCallback(void* pArg);
};
#endif // ndef _SMPLFSYS_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -