Etterna 0.74.4
Loading...
Searching...
No Matches
RageFileDriverMemory.h
1/* RageFileDriverMemory: Simple memory-based "filesystem". */
2
3#ifndef RAGE_FILE_DRIVER_MEMORY_H
4#define RAGE_FILE_DRIVER_MEMORY_H
5
6#include "RageFileBasic.h"
7#include "RageFileDriver.h"
8#include "RageUtil/Misc/RageThreads.h"
9
11
13{
14 public:
17 ~RageFileObjMem() override;
18
19 int ReadInternal(void* buffer, size_t bytes) override;
20 int WriteInternal(const void* buffer, size_t bytes) override;
21 int SeekInternal(int offset) override;
22 int GetFileSize() const override;
23 RageFileObjMem* Copy() const override;
24
25 /* Retrieve the contents of this file. */
26 const std::string& GetString() const;
27 void PutString(const std::string& sBuf);
28
29 private:
30 RageFileObjMemFile* m_pFile;
31 int m_iFilePos;
32};
33
35{
36 public:
38 ~RageFileDriverMem() override;
39
40 RageFileBasic* Open(const std::string& sPath, int mode, int& err) override;
41 void FlushDirCache(const std::string& /* sPath */) override {}
42
43 bool Remove(const std::string& sPath) override;
44
45 private:
46 RageMutex m_Mutex;
47 std::vector<RageFileObjMemFile*> m_Files;
48};
49
50#endif
Definition RageFileBasic.h:10
Definition RageFileDriverMemory.h:35
Definition RageFileDriver.h:12
Definition RageFileDriverMemory.h:13
Definition RageFileBasic.h:66
Definition RageThreads.h:232
Definition RageFileDriverMemory.cpp:11