Main Page | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Related Pages

AdvFileAttr.h

Go to the documentation of this file.
00001 
00027 #pragma once
00028 
00029 #include "types.h"
00030 #include "WorkQueue.h"
00031 
00032 // --> Moonlight: Sparse&Compressed support
00033 // Moonlight: Sparse&Compressed support <--
00034 
00047 class CAdvFileAttr : CWorkQueueItem
00048 {
00049 public:
00050     CAdvFileAttr(CFile *file = NULL);
00051     ~CAdvFileAttr(void);
00052 
00053 public:
00054     bool        MakeSparse              (bool forceScan = false);
00055     bool        MakeCompressed          (bool makeCompressed = true);
00056     void        SetFilePtr              (CFile *file = NULL);
00057     bool        LoadAttributes          (void);
00058 
00060     void        Cancel                  (void);
00062     uint32      GetTempFSCappabilities  (void)  {return m_TempFSCapabilities;}
00064     uint32      GetFileAttributes       (void)  {return m_FileAttributes;}
00065 
00067     bool        isSparse            (void)      {return (m_FileAttributes & FILE_ATTRIBUTE_SPARSE_FILE) != 0;}
00069     bool        isCompressed        (void)      {return (m_FileAttributes & FILE_ATTRIBUTE_COMPRESSED) != 0;}
00071     bool        isFSSparse          (void)      {return (m_TempFSCapabilities & FILE_SUPPORTS_SPARSE_FILES) != 0;}
00073     bool        isFSCompressed      (void)      {return (m_TempFSCapabilities & FILE_FILE_COMPRESSION) != 0;}
00075     bool        isBusy              (void)      {return m_LastOp != TOps_Nothing;}
00077     bool        isCancel            (void)      {return m_LastOp == TOps_Cancel;}
00078 
00079     void        ThreadWork          (void);
00080 
00081 private:
00082     bool        WorkSparse          (void);
00083     void        WorkCompress        (void);
00084     void        QueueDelCB          (void)  {m_LastOp = TOps_Nothing;}
00085 
00086 private:
00088     static      CWorkQueue          m_WorkQueue;
00089 
00091     enum {
00092         TOps_Nothing,
00093         TOps_Compress,
00094         TOps_Sparse,
00095         TOps_Cancel
00096     } m_LastOp;
00097     
00099     uint32              m_FileAttributes;
00101     uint32              m_TempFSCapabilities;
00103     CFile               *m_pCFile;
00104 };

Generated on Wed Nov 5 05:48:08 2003 for Moonlight's eMule Tweaks Documentation by doxygen 1.3.4