📄 smplfsys.h
字号:
#ifdef _MACINTOSH class SMPLAsyncResponse : public CMacAsyncFileResponse { public: SMPLAsyncResponse(CSimpleFileObject* pFileObject); ~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 + -