Index: src/libchcore/TFakeFilesystemFind.h =================================================================== diff -u -N -r5efb534fc5440a7ab779d2514a00486ecb58e845 -r27c262eb9cae55720e10f4886af6b5a82cb94fe9 --- src/libchcore/TFakeFilesystemFind.h (.../TFakeFilesystemFind.h) (revision 5efb534fc5440a7ab779d2514a00486ecb58e845) +++ src/libchcore/TFakeFilesystemFind.h (.../TFakeFilesystemFind.h) (revision 27c262eb9cae55720e10f4886af6b5a82cb94fe9) @@ -20,19 +20,37 @@ #define __TFAKEFILESYSTEMFIND_H__ #include "libchcore.h" +#include "IFilesystemFind.h" +#include "TPath.h" -BEGIN_CHCORE_NAMESPACE - -class LIBCHCORE_API TFakeFilesystemFind +namespace chcore { -public: - TFakeFilesystemFind(); - ~TFakeFilesystemFind(); + class TFakeFilesystem; -private: + class LIBCHCORE_API TFakeFilesystemFind : public IFilesystemFind + { + public: + TFakeFilesystemFind(const TSmartPath& pathDir, const TSmartPath& pathMask, TFakeFilesystem* pFakeFilesystem); + ~TFakeFilesystemFind(); -}; + virtual bool FindNext(TFileInfoPtr& rspFileInfo) override; + virtual void Close() override; -END_CHCORE_NAMESPACE + private: + void Prescan(); + private: + TSmartPath m_pathDir; + TSmartPath m_pathMask; + TFakeFilesystem* m_pFilesystem; + +#pragma warning(push) +#pragma warning(disable: 4251) + bool m_bScanned = false; + std::vector m_vItems; + std::vector::iterator m_iterCurrent; +#pragma warning(pop) + }; +} + #endif