Index: src/libchcore/TLocalFilesystemFile.h =================================================================== diff -u -N -rf8fcbbd1d2321cf0c8be79526c449384af654e49 -r6b927672a652279a203f6465ead20ffb9fe6bde1 --- src/libchcore/TLocalFilesystemFile.h (.../TLocalFilesystemFile.h) (revision f8fcbbd1d2321cf0c8be79526c449384af654e49) +++ src/libchcore/TLocalFilesystemFile.h (.../TLocalFilesystemFile.h) (revision 6b927672a652279a203f6465ead20ffb9fe6bde1) @@ -34,7 +34,6 @@ public: virtual ~TLocalFilesystemFile(); - virtual void OpenExistingForReading() override; virtual void CreateNewForWriting() override; virtual void OpenExistingForWriting() override; @@ -45,17 +44,21 @@ virtual void FinalizeFile(TOverlappedDataBuffer& rBuffer) override; virtual bool IsOpen() const override { return m_hFile != INVALID_HANDLE_VALUE; } - virtual file_size_t GetFileSize() const override; - virtual void GetFileInfo(TFileInfo& tFileInfo) const override; + virtual file_size_t GetFileSize() override; + virtual void GetFileInfo(TFileInfo& tFileInfo) override; virtual TSmartPath GetFilePath() const override; virtual void Close() override; virtual file_size_t GetSeekPositionForResume(file_size_t fsLastAvailablePosition) override; private: - TLocalFilesystemFile(const TSmartPath& pathFile, bool bNoBuffering, const logger::TLogFileDataPtr& spLogFileData); + TLocalFilesystemFile(EOpenMode eMode, const TSmartPath& pathFile, bool bNoBuffering, const logger::TLogFileDataPtr& spLogFileData); + void EnsureOpen(); + + void OpenExistingForReading(); + DWORD GetFlagsAndAttributes(bool bNoBuffering) const; void OpenExistingForWriting(bool bNoBuffering); @@ -66,6 +69,7 @@ private: TSmartPath m_pathFile; HANDLE m_hFile; + EOpenMode m_eMode; bool m_bNoBuffering; #pragma warning(push) #pragma warning(disable: 4251)