aboutsummaryrefslogtreecommitdiff
path: root/backends/fs/posix/posix-fs-factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/fs/posix/posix-fs-factory.cpp')
-rw-r--r--backends/fs/posix/posix-fs-factory.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/backends/fs/posix/posix-fs-factory.cpp b/backends/fs/posix/posix-fs-factory.cpp
new file mode 100644
index 0000000000..b302bb31e8
--- /dev/null
+++ b/backends/fs/posix/posix-fs-factory.cpp
@@ -0,0 +1,25 @@
+#include "backends/fs/posix/posix-fs-factory.h"
+#include "backends/fs/posix/posix-fs.cpp"
+
+POSIXFilesystemFactory *POSIXFilesystemFactory::_instance = 0;
+
+POSIXFilesystemFactory *POSIXFilesystemFactory::instance(){
+ if(_instance == 0){
+ _instance = new POSIXFilesystemFactory();
+ }
+ return _instance;
+}
+
+AbstractFilesystemNode *POSIXFilesystemFactory::makeRootFileNode() const {
+ return new POSIXFilesystemNode();
+}
+
+AbstractFilesystemNode *POSIXFilesystemFactory::makeCurrentDirectoryFileNode() const {
+ char buf[MAXPATHLEN];
+ getcwd(buf, MAXPATHLEN);
+ return new POSIXFilesystemNode(buf, true);
+}
+
+AbstractFilesystemNode *POSIXFilesystemFactory::makeFileNodePath(const String &path) const {
+ return new POSIXFilesystemNode(path, true);
+}