cppfs  1.2.0.5b71c2c98fb9
Cross-platform C++ file system library supporting multiple backends (Local-FS, SSH)
windows/LocalFileHandle.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 
5 #include <memory>
6 
8 
9 
10 namespace cppfs
11 {
12 
13 
14 class LocalFileSystem;
15 
16 
21 class CPPFS_API LocalFileHandle : public AbstractFileHandleBackend
22 {
23 public:
33  LocalFileHandle(std::shared_ptr<LocalFileSystem> fs, const std::string & path);
34 
39  virtual ~LocalFileHandle();
40 
41  // Virtual AbstractFileHandleBackend functions
42  virtual std::unique_ptr<AbstractFileHandleBackend> clone() const override;
43  virtual AbstractFileSystem * fs() const override;
44  virtual void updateFileInfo() override;
45  virtual std::string path() const override;
46  virtual bool exists() const override;
47  virtual bool isFile() const override;
48  virtual bool isDirectory() const override;
49  virtual bool isSymbolicLink() const override;
50  virtual std::vector<std::string> listFiles() const override;
51  virtual std::unique_ptr<AbstractFileIteratorBackend> begin() const override;
52  virtual unsigned int size() const override;
53  virtual unsigned int accessTime() const override;
54  virtual unsigned int modificationTime() const override;
55  virtual unsigned int userId() const override;
56  virtual void setUserId(unsigned int uid) override;
57  virtual unsigned int groupId() const override;
58  virtual void setGroupId(unsigned int gid) override;
59  virtual unsigned long permissions() const override;
60  virtual void setPermissions(unsigned long permissions) override;
61  virtual bool createDirectory() override;
62  virtual bool removeDirectory() override;
63  virtual bool copy(AbstractFileHandleBackend & dest) override;
64  virtual bool move(AbstractFileHandleBackend & dest) override;
65  virtual bool createLink(AbstractFileHandleBackend & dest) override;
66  virtual bool createSymbolicLink(AbstractFileHandleBackend & dest) override;
67  virtual bool rename(const std::string & filename) override;
68  virtual bool remove() override;
69  virtual std::unique_ptr<std::istream> createInputStream(std::ios_base::openmode mode) const override;
70  virtual std::unique_ptr<std::ostream> createOutputStream(std::ios_base::openmode mode) override;
71 
72 
73 protected:
74  void readFileInfo() const;
75 
76 
77 protected:
78  std::shared_ptr<LocalFileSystem> m_fs;
79  std::string m_path;
80  mutable void * m_fileInfo;
81 };
82 
83 
84 } // namespace cppfs
Definition: AbstractFileHandleBackend.h:14