11 #include "IDirectory.h" 12 #include "threads/CriticalSection.h" 27 explicit CDir(DIR_CACHE_TYPE cacheType);
28 CDir(CDir&& dir) =
default;
29 CDir& operator=(CDir&& dir) =
default;
32 void SetLastAccess(
unsigned int &accessCounter);
33 unsigned int GetLastAccess()
const {
return m_lastAccess; }
35 std::unique_ptr<CFileItemList> m_Items;
36 DIR_CACHE_TYPE m_cacheType;
38 CDir(
const CDir&) =
delete;
39 CDir& operator=(
const CDir&) =
delete;
40 unsigned int m_lastAccess;
45 bool GetDirectory(
const std::string& strPath,
CFileItemList &items,
bool retrieveAll =
false);
46 void SetDirectory(
const std::string& strPath,
const CFileItemList &items, DIR_CACHE_TYPE cacheType);
47 void ClearDirectory(
const std::string& strPath);
48 void ClearFile(
const std::string& strFile);
49 void ClearSubPaths(
const std::string& strPath);
51 void AddFile(
const std::string& strFile);
52 bool FileExists(
const std::string& strPath,
bool& bInCache);
54 void PrintStats()
const;
57 void InitCache(
const std::set<std::string>& dirs);
58 void ClearCache(std::set<std::string>& dirs);
61 std::map<std::string, CDir> m_cache;
63 mutable CCriticalSection m_cs;
65 unsigned int m_accessCounter;
68 unsigned int m_cacheHits;
69 unsigned int m_cacheMisses;
Represents a list of files.
Definition: FileItem.h:702
Represents a file on a share.
Definition: FileItem.h:102
Definition: DirectoryCache.h:22