TDME2  1.9.200
FileSystem.cpp
Go to the documentation of this file.
2 
3 #include <memory>
4 
5 using std::make_unique;
6 using std::unique_ptr;
7 
8 #include <tdme/tdme.h>
11 
15 
16 unique_ptr<FileSystemInterface> FileSystem::fileSystem;
17 unique_ptr<FileSystemInterface> FileSystem::standardFileSystem;
18 
19 FileSystemInterface* FileSystem::getInstance()
20 {
21  if (fileSystem == nullptr) return getStandardFileSystem();
22  return fileSystem.get();
23 }
24 
26 {
27  if (standardFileSystem == nullptr) standardFileSystem = make_unique<StandardFileSystem>();
28  return standardFileSystem.get();
29 }
30 
32 {
33  FileSystem::fileSystem = unique_ptr<FileSystemInterface>(fileSystem);
34 }
35 
37 {
38  FileSystem::fileSystem = nullptr;
39 }
File system singleton class.
Definition: FileSystem.h:17
static STATIC_DLL_IMPEXT unique_ptr< FileSystemInterface > fileSystem
Definition: FileSystem.h:20
static void setupFileSystem(FileSystemInterface *fileSystem)
Set up file system.
Definition: FileSystem.cpp:31
static FileSystemInterface * getStandardFileSystem()
Retrieve standard file system.
Definition: FileSystem.cpp:25
static void unsetFileSystem()
Unset file system, which means disposing the old one and unset internal file system to use.
Definition: FileSystem.cpp:36
static STATIC_DLL_IMPEXT unique_ptr< FileSystemInterface > standardFileSystem
Definition: FileSystem.h:19
Standard file system implementation.