refactor
This commit is contained in:
		| @@ -29,87 +29,92 @@ class i_remote_instance : public virtual i_remote_json { | ||||
|   INTERFACE_SETUP(i_remote_instance); | ||||
|  | ||||
| public: | ||||
|   virtual auto winfsp_can_delete(PVOID file_desc, PWSTR file_name) | ||||
|   [[nodiscard]] virtual auto winfsp_can_delete(PVOID file_desc, PWSTR file_name) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_cleanup(PVOID file_desc, PWSTR file_name, UINT32 flags, | ||||
|                               BOOLEAN &was_deleted) -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_close(PVOID file_desc) -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_create(PWSTR file_name, UINT32 create_options, | ||||
|                              UINT32 granted_access, UINT32 file_attributes, | ||||
|                              UINT64 allocation_size, PVOID *file_desc, | ||||
|                              remote::file_info *file_info, | ||||
|                              std::string &normalized_name, BOOLEAN &exists) | ||||
|   [[nodiscard]] virtual auto winfsp_cleanup(PVOID file_desc, PWSTR file_name, | ||||
|                                             UINT32 flags, BOOLEAN &was_deleted) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_flush(PVOID file_desc, remote::file_info *file_info) | ||||
|   [[nodiscard]] virtual auto winfsp_close(PVOID file_desc) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_get_dir_buffer(PVOID file_desc, PVOID *&ptr) | ||||
|   [[nodiscard]] virtual auto | ||||
|   winfsp_create(PWSTR file_name, UINT32 create_options, UINT32 granted_access, | ||||
|                 UINT32 file_attributes, UINT64 allocation_size, | ||||
|                 PVOID *file_desc, remote::file_info *file_info, | ||||
|                 std::string &normalized_name, BOOLEAN &exists) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_get_file_info(PVOID file_desc, | ||||
|                                     remote::file_info *file_info) | ||||
|   [[nodiscard]] virtual auto winfsp_flush(PVOID file_desc, | ||||
|                                           remote::file_info *file_info) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto | ||||
|   [[nodiscard]] virtual auto winfsp_get_dir_buffer(PVOID file_desc, PVOID *&ptr) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   [[nodiscard]] virtual auto winfsp_get_file_info(PVOID file_desc, | ||||
|                                                   remote::file_info *file_info) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   [[nodiscard]] virtual auto | ||||
|   winfsp_get_security_by_name(PWSTR file_name, PUINT32 file_attributes, | ||||
|                               std::uint64_t *security_descriptor_size, | ||||
|                               std::wstring &str_descriptor) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_get_volume_info(UINT64 &total_size, UINT64 &free_size, | ||||
|                                       std::string &volume_label) | ||||
|   [[nodiscard]] virtual auto winfsp_get_volume_info(UINT64 &total_size, | ||||
|                                                     UINT64 &free_size, | ||||
|                                                     std::string &volume_label) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_mounted(const std::wstring &location) | ||||
|   [[nodiscard]] virtual auto winfsp_mounted(const std::wstring &location) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_open(PWSTR file_name, UINT32 create_options, | ||||
|                            UINT32 granted_access, PVOID *file_desc, | ||||
|                            remote::file_info *file_info, | ||||
|                            std::string &normalized_name) | ||||
|   [[nodiscard]] virtual auto | ||||
|   winfsp_open(PWSTR file_name, UINT32 create_options, UINT32 granted_access, | ||||
|               PVOID *file_desc, remote::file_info *file_info, | ||||
|               std::string &normalized_name) -> packet::error_type = 0; | ||||
|  | ||||
|   [[nodiscard]] virtual auto | ||||
|   winfsp_overwrite(PVOID file_desc, UINT32 file_attributes, | ||||
|                    BOOLEAN replace_file_attributes, UINT64 allocation_size, | ||||
|                    remote::file_info *file_info) -> packet::error_type = 0; | ||||
|  | ||||
|   [[nodiscard]] virtual auto winfsp_read(PVOID file_desc, PVOID buffer, | ||||
|                                          UINT64 offset, UINT32 length, | ||||
|                                          PUINT32 bytes_transferred) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_overwrite(PVOID file_desc, UINT32 file_attributes, | ||||
|                                 BOOLEAN replace_file_attributes, | ||||
|                                 UINT64 allocation_size, | ||||
|                                 remote::file_info *file_info) | ||||
|   [[nodiscard]] virtual auto winfsp_read_directory(PVOID file_desc, | ||||
|                                                    PWSTR pattern, PWSTR marker, | ||||
|                                                    json &itemList) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset, | ||||
|                            UINT32 length, PUINT32 bytes_transferred) | ||||
|   [[nodiscard]] virtual auto winfsp_rename(PVOID file_desc, PWSTR file_name, | ||||
|                                            PWSTR new_file_name, | ||||
|                                            BOOLEAN replace_if_exists) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_read_directory(PVOID file_desc, PWSTR pattern, | ||||
|                                      PWSTR marker, json &itemList) | ||||
|   [[nodiscard]] virtual auto | ||||
|   winfsp_set_basic_info(PVOID file_desc, UINT32 file_attributes, | ||||
|                         UINT64 creation_time, UINT64 last_access_time, | ||||
|                         UINT64 last_write_time, UINT64 change_time, | ||||
|                         remote::file_info *file_info) -> packet::error_type = 0; | ||||
|  | ||||
|   [[nodiscard]] virtual auto winfsp_set_file_size(PVOID file_desc, | ||||
|                                                   UINT64 new_size, | ||||
|                                                   BOOLEAN set_allocation_size, | ||||
|                                                   remote::file_info *file_info) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_rename(PVOID file_desc, PWSTR file_name, | ||||
|                              PWSTR new_file_name, BOOLEAN replace_if_exists) | ||||
|   [[nodiscard]] virtual auto winfsp_unmounted(const std::wstring &location) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_set_basic_info(PVOID file_desc, UINT32 file_attributes, | ||||
|                                      UINT64 creation_time, | ||||
|                                      UINT64 last_access_time, | ||||
|                                      UINT64 last_write_time, UINT64 change_time, | ||||
|                                      remote::file_info *file_info) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_set_file_size(PVOID file_desc, UINT64 new_size, | ||||
|                                     BOOLEAN set_allocation_size, | ||||
|                                     remote::file_info *file_info) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_unmounted(const std::wstring &location) | ||||
|       -> packet::error_type = 0; | ||||
|  | ||||
|   virtual auto winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset, | ||||
|                             UINT32 length, BOOLEAN write_to_end, | ||||
|                             BOOLEAN constrained_io, PUINT32 bytes_transferred, | ||||
|                             remote::file_info *file_info) | ||||
|   [[nodiscard]] virtual auto | ||||
|   winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                BOOLEAN write_to_end, BOOLEAN constrained_io, | ||||
|                PUINT32 bytes_transferred, remote::file_info *file_info) | ||||
|       -> packet::error_type = 0; | ||||
| }; | ||||
|  | ||||
|   | ||||
| @@ -44,95 +44,105 @@ private: | ||||
| #if defined(_WIN32) | ||||
| #define to_handle(x) (x) | ||||
| #else  // !defined(_WIN32) | ||||
|   static auto to_handle(PVOID file_desc) -> native_handle; | ||||
|   [[nodiscard]] static auto to_handle(PVOID file_desc) -> native_handle; | ||||
| #endif // defined(_WIN32) | ||||
|  | ||||
| public: | ||||
|   [[nodiscard]] auto check() -> packet::error_type; | ||||
|  | ||||
|   auto json_create_directory_snapshot(const std::string &path, json &json_data) | ||||
|   [[nodiscard]] auto json_create_directory_snapshot(const std::string &path, | ||||
|                                                     json &json_data) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto json_read_directory_snapshot(const std::string &path, | ||||
|                                     const remote::file_handle &handle, | ||||
|                                     std::uint32_t page, json &json_data) | ||||
|   [[nodiscard]] auto json_read_directory_snapshot( | ||||
|       const std::string &path, const remote::file_handle &handle, | ||||
|       std::uint32_t page, json &json_data) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto | ||||
|   json_release_directory_snapshot(const std::string &path, | ||||
|                                   const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto json_release_directory_snapshot(const std::string &path, | ||||
|                                        const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto winfsp_can_delete(PVOID file_desc, PWSTR file_name) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_can_delete(PVOID file_desc, PWSTR file_name) | ||||
|   [[nodiscard]] auto winfsp_cleanup(PVOID file_desc, PWSTR file_name, | ||||
|                                     UINT32 flags, BOOLEAN &was_deleted) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_cleanup(PVOID file_desc, PWSTR file_name, UINT32 flags, | ||||
|                       BOOLEAN &was_deleted) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_close(PVOID file_desc) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_create(PWSTR file_name, UINT32 create_options, | ||||
|                      UINT32 granted_access, UINT32 attributes, | ||||
|                      UINT64 allocation_size, PVOID *file_desc, | ||||
|                      remote::file_info *file_info, std::string &normalized_name, | ||||
|                      BOOLEAN &exists) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_flush(PVOID file_desc, remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_close(PVOID file_desc) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_dir_buffer(PVOID file_desc, PVOID *&ptr) | ||||
|   [[nodiscard]] auto | ||||
|   winfsp_create(PWSTR file_name, UINT32 create_options, UINT32 granted_access, | ||||
|                 UINT32 attributes, UINT64 allocation_size, PVOID *file_desc, | ||||
|                 remote::file_info *file_info, std::string &normalized_name, | ||||
|                 BOOLEAN &exists) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_flush(PVOID file_desc, remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_file_info(PVOID file_desc, remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_get_dir_buffer(PVOID file_desc, PVOID *&ptr) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_security_by_name(PWSTR file_name, PUINT32 attributes, | ||||
|                                    std::uint64_t *descriptor_size, | ||||
|                                    std::wstring &string_descriptor) | ||||
|   [[nodiscard]] auto winfsp_get_file_info(PVOID file_desc, | ||||
|                                           remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_volume_info(UINT64 &total_size, UINT64 &free_size, | ||||
|                               std::string &volume_label) | ||||
|   [[nodiscard]] auto winfsp_get_security_by_name( | ||||
|       PWSTR file_name, PUINT32 attributes, std::uint64_t *descriptor_size, | ||||
|       std::wstring &string_descriptor) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_get_volume_info(UINT64 &total_size, | ||||
|                                             UINT64 &free_size, | ||||
|                                             std::string &volume_label) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_mounted(const std::wstring &location) | ||||
|   [[nodiscard]] auto winfsp_mounted(const std::wstring &location) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_open(PWSTR file_name, UINT32 create_options, | ||||
|                    UINT32 granted_access, PVOID *file_desc, | ||||
|                    remote::file_info *file_info, std::string &normalized_name) | ||||
|   [[nodiscard]] auto winfsp_open(PWSTR file_name, UINT32 create_options, | ||||
|                                  UINT32 granted_access, PVOID *file_desc, | ||||
|                                  remote::file_info *file_info, | ||||
|                                  std::string &normalized_name) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_overwrite(PVOID file_desc, UINT32 attributes, | ||||
|                         BOOLEAN replace_attributes, UINT64 allocation_size, | ||||
|                         remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_overwrite(PVOID file_desc, UINT32 attributes, | ||||
|                                       BOOLEAN replace_attributes, | ||||
|                                       UINT64 allocation_size, | ||||
|                                       remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                    PUINT32 bytes_transferred) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_read_directory(PVOID file_desc, PWSTR pattern, PWSTR marker, | ||||
|                              json &itemList) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_rename(PVOID file_desc, PWSTR file_name, PWSTR new_file_name, | ||||
|                      BOOLEAN replace_if_exists) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_set_basic_info(PVOID file_desc, UINT32 attributes, | ||||
|                              UINT64 creation_time, UINT64 last_access_time, | ||||
|                              UINT64 last_write_time, UINT64 change_time, | ||||
|                              remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset, | ||||
|                                  UINT32 length, PUINT32 bytes_transferred) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_set_file_size(PVOID file_desc, UINT64 new_size, | ||||
|                             BOOLEAN set_allocation_size, | ||||
|                             remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_read_directory(PVOID file_desc, PWSTR pattern, | ||||
|                                            PWSTR marker, json &itemList) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_unmounted(const std::wstring &location) | ||||
|   [[nodiscard]] auto winfsp_rename(PVOID file_desc, PWSTR file_name, | ||||
|                                    PWSTR new_file_name, | ||||
|                                    BOOLEAN replace_if_exists) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                     BOOLEAN write_to_end, BOOLEAN constrained_io, | ||||
|                     PUINT32 bytes_transferred, remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_set_basic_info( | ||||
|       PVOID file_desc, UINT32 attributes, UINT64 creation_time, | ||||
|       UINT64 last_access_time, UINT64 last_write_time, UINT64 change_time, | ||||
|       remote::file_info *file_info) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_set_file_size(PVOID file_desc, UINT64 new_size, | ||||
|                                           BOOLEAN set_allocation_size, | ||||
|                                           remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_unmounted(const std::wstring &location) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto | ||||
|   winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                BOOLEAN write_to_end, BOOLEAN constrained_io, | ||||
|                PUINT32 bytes_transferred, remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
| }; | ||||
| } // namespace remote_winfsp | ||||
|   | ||||
| @@ -58,41 +58,46 @@ private: | ||||
|  | ||||
| public: | ||||
|   // FUSE Layer | ||||
|   auto fuse_access(const char *path, const std::int32_t &mask) | ||||
|   [[nodiscard]] auto fuse_access(const char *path, const std::int32_t &mask) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_chflags(const char *path, std::uint32_t flags) | ||||
|   [[nodiscard]] auto fuse_chflags(const char *path, std::uint32_t flags) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_chmod(const char *path, const remote::file_mode &mode) | ||||
|   [[nodiscard]] auto fuse_chmod(const char *path, const remote::file_mode &mode) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_chown(const char *path, const remote::user_id &uid, | ||||
|                   const remote::group_id &gid) -> packet::error_type override; | ||||
|   [[nodiscard]] auto fuse_chown(const char *path, const remote::user_id &uid, | ||||
|                                 const remote::group_id &gid) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_destroy() -> packet::error_type override; | ||||
|   [[nodiscard]] auto fuse_destroy() -> packet::error_type override; | ||||
|  | ||||
|   /*packet::error_type fuse_fallocate(const char *path, const std::int32_t | ||||
|      &mode, const remote::file_offset &offset, const remote::file_offset | ||||
|      &length, const remote::file_handle &handle) override ;*/ | ||||
|  | ||||
|   auto fuse_fgetattr(const char *path, remote::stat &r_stat, bool &directory, | ||||
|                      const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_fgetattr(const char *path, remote::stat &r_stat, | ||||
|                                    bool &directory, | ||||
|                                    const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_fsetattr_x(const char *path, const remote::setattr_x &attr, | ||||
|                        const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_fsetattr_x(const char *path, | ||||
|                                      const remote::setattr_x &attr, | ||||
|                                      const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_fsync(const char *path, const std::int32_t &datasync, | ||||
|                   const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_fsync(const char *path, const std::int32_t &datasync, | ||||
|                                 const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_ftruncate(const char *path, const remote::file_offset &size, | ||||
|                       const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_ftruncate(const char *path, | ||||
|                                     const remote::file_offset &size, | ||||
|                                     const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_getattr(const char *path, remote::stat &r_stat, bool &directory) | ||||
|   [[nodiscard]] auto fuse_getattr(const char *path, remote::stat &r_stat, | ||||
|                                   bool &directory) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   /*packet::error_type fuse_getxattr(const char *path, const char *name, char | ||||
| @@ -101,77 +106,90 @@ public: | ||||
|   packet::error_type fuse_getxattrOSX(const char *path, const char *name, char | ||||
|   *value, const remote::file_size &size, std::uint32_t position) override ;*/ | ||||
|  | ||||
|   auto fuse_getxtimes(const char *path, remote::file_time &bkuptime, | ||||
|                       remote::file_time &crtime) -> packet::error_type override; | ||||
|   [[nodiscard]] auto fuse_getxtimes(const char *path, | ||||
|                                     remote::file_time &bkuptime, | ||||
|                                     remote::file_time &crtime) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_init() -> packet::error_type override; | ||||
|   [[nodiscard]] auto fuse_init() -> packet::error_type override; | ||||
|  | ||||
|   /*packet::error_type fuse_listxattr(const char *path, char *buffer, | ||||
|                                          const remote::file_size &size) override | ||||
|      ;*/ | ||||
|  | ||||
|   auto fuse_mkdir(const char *path, const remote::file_mode &mode) | ||||
|   [[nodiscard]] auto fuse_mkdir(const char *path, const remote::file_mode &mode) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_opendir(const char *path, remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_opendir(const char *path, remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_create(const char *path, const remote::file_mode &mode, | ||||
|                    const remote::open_flags &flags, remote::file_handle &handle) | ||||
|   [[nodiscard]] auto | ||||
|   fuse_create(const char *path, const remote::file_mode &mode, | ||||
|               const remote::open_flags &flags, remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_open(const char *path, const remote::open_flags &flags, | ||||
|                  remote::file_handle &handle) -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_read(const char *path, char *buffer, | ||||
|                  const remote::file_size &read_size, | ||||
|                  const remote::file_offset &read_offset, | ||||
|                  const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_open(const char *path, | ||||
|                                const remote::open_flags &flags, | ||||
|                                remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_rename(const char *from, const char *to) | ||||
|   [[nodiscard]] auto fuse_read(const char *path, char *buffer, | ||||
|                                const remote::file_size &read_size, | ||||
|                                const remote::file_offset &read_offset, | ||||
|                                const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_write(const char *path, const char *buffer, | ||||
|                   const remote::file_size &write_size, | ||||
|                   const remote::file_offset &write_offset, | ||||
|                   const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_rename(const char *from, const char *to) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_write_base64(const char *path, const char *buffer, | ||||
|                          const remote::file_size &write_size, | ||||
|                          const remote::file_offset &write_offset, | ||||
|                          const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_write(const char *path, const char *buffer, | ||||
|                                 const remote::file_size &write_size, | ||||
|                                 const remote::file_offset &write_offset, | ||||
|                                 const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_readdir(const char *path, const remote::file_offset &offset, | ||||
|                     const remote::file_handle &handle, std::string &item_path) | ||||
|   [[nodiscard]] auto fuse_write_base64(const char *path, const char *buffer, | ||||
|                                        const remote::file_size &write_size, | ||||
|                                        const remote::file_offset &write_offset, | ||||
|                                        const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_release(const char *path, const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto | ||||
|   fuse_readdir(const char *path, const remote::file_offset &offset, | ||||
|                const remote::file_handle &handle, std::string &item_path) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_releasedir(const char *path, const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto fuse_release(const char *path, | ||||
|                                   const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto fuse_releasedir(const char *path, | ||||
|                                      const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   /*packet::error_type fuse_removexattr(const char *path, const char *name) | ||||
|    * override ;*/ | ||||
|  | ||||
|   auto fuse_rmdir(const char *path) -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_setattr_x(const char *path, remote::setattr_x &attr) | ||||
|   [[nodiscard]] auto fuse_rmdir(const char *path) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_setbkuptime(const char *path, const remote::file_time &bkuptime) | ||||
|   [[nodiscard]] auto fuse_setattr_x(const char *path, remote::setattr_x &attr) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_setchgtime(const char *path, const remote::file_time &chgtime) | ||||
|   [[nodiscard]] auto fuse_setbkuptime(const char *path, | ||||
|                                       const remote::file_time &bkuptime) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_setcrtime(const char *path, const remote::file_time &crtime) | ||||
|   [[nodiscard]] auto fuse_setchgtime(const char *path, | ||||
|                                      const remote::file_time &chgtime) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_setvolname(const char *volname) -> packet::error_type override; | ||||
|   [[nodiscard]] auto fuse_setcrtime(const char *path, | ||||
|                                     const remote::file_time &crtime) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto fuse_setvolname(const char *volname) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   /*packet::error_type fuse_setxattr(const char *path, const char *name, const | ||||
|   char *value, const remote::file_size &size, const std::int32_t &flags) | ||||
| @@ -181,109 +199,123 @@ public: | ||||
|   char *value, const remote::file_size &size, const std::int32_t &flags, | ||||
|                                            std::uint32_t position) override ;*/ | ||||
|  | ||||
|   auto fuse_statfs(const char *path, std::uint64_t frsize, | ||||
|                    remote::statfs &r_stat) -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_statfs_x(const char *path, std::uint64_t bsize, | ||||
|                      remote::statfs_x &r_stat) -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_truncate(const char *path, const remote::file_offset &size) | ||||
|   [[nodiscard]] auto fuse_statfs(const char *path, std::uint64_t frsize, | ||||
|                                  remote::statfs &r_stat) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_unlink(const char *path) -> packet::error_type override; | ||||
|   [[nodiscard]] auto fuse_statfs_x(const char *path, std::uint64_t bsize, | ||||
|                                    remote::statfs_x &r_stat) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto fuse_utimens(const char *path, const remote::file_time *tv, | ||||
|                     std::uint64_t op0, std::uint64_t op1) | ||||
|   [[nodiscard]] auto fuse_truncate(const char *path, | ||||
|                                    const remote::file_offset &size) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto fuse_unlink(const char *path) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto fuse_utimens(const char *path, const remote::file_time *tv, | ||||
|                                   std::uint64_t op0, std::uint64_t op1) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   void set_fuse_uid_gid(const remote::user_id & /* uid */, | ||||
|                         const remote::group_id & /* gid */) override {} | ||||
|  | ||||
|   // JSON Layer | ||||
|   auto json_create_directory_snapshot(const std::string &path, json &json_data) | ||||
|   [[nodiscard]] auto json_create_directory_snapshot(const std::string &path, | ||||
|                                                     json &json_data) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto json_read_directory_snapshot(const std::string &path, | ||||
|                                     const remote::file_handle &handle, | ||||
|                                     std::uint32_t page, json &json_data) | ||||
|       -> packet::error_type override; | ||||
|   [[nodiscard]] auto json_read_directory_snapshot( | ||||
|       const std::string &path, const remote::file_handle &handle, | ||||
|       std::uint32_t page, json &json_data) -> packet::error_type override; | ||||
|  | ||||
|   auto json_release_directory_snapshot(const std::string &path, | ||||
|                                        const remote::file_handle &handle) | ||||
|   [[nodiscard]] auto | ||||
|   json_release_directory_snapshot(const std::string &path, | ||||
|                                   const remote::file_handle &handle) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   // WinFSP Layer | ||||
|   auto winfsp_can_delete(PVOID file_desc, PWSTR file_name) | ||||
|   [[nodiscard]] auto winfsp_can_delete(PVOID file_desc, PWSTR file_name) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_cleanup(PVOID file_desc, PWSTR file_name, UINT32 flags, | ||||
|                       BOOLEAN &was_deleted) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_close(PVOID file_desc) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_create(PWSTR file_name, UINT32 create_options, | ||||
|                      UINT32 granted_access, UINT32 attributes, | ||||
|                      UINT64 allocation_size, PVOID *file_desc, | ||||
|                      remote::file_info *file_info, std::string &normalized_name, | ||||
|                      BOOLEAN &exists) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_flush(PVOID file_desc, remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_cleanup(PVOID file_desc, PWSTR file_name, | ||||
|                                     UINT32 flags, BOOLEAN &was_deleted) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_dir_buffer(PVOID file_desc, PVOID *&ptr) | ||||
|   [[nodiscard]] auto winfsp_close(PVOID file_desc) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_file_info(PVOID file_desc, remote::file_info *file_info) | ||||
|   [[nodiscard]] auto | ||||
|   winfsp_create(PWSTR file_name, UINT32 create_options, UINT32 granted_access, | ||||
|                 UINT32 attributes, UINT64 allocation_size, PVOID *file_desc, | ||||
|                 remote::file_info *file_info, std::string &normalized_name, | ||||
|                 BOOLEAN &exists) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_flush(PVOID file_desc, remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_security_by_name(PWSTR file_name, PUINT32 attributes, | ||||
|                                    std::uint64_t *descriptor_size, | ||||
|                                    std::wstring &string_descriptor) | ||||
|   [[nodiscard]] auto winfsp_get_dir_buffer(PVOID file_desc, PVOID *&ptr) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_get_volume_info(UINT64 &total_size, UINT64 &free_size, | ||||
|                               std::string &volume_label) | ||||
|   [[nodiscard]] auto winfsp_get_file_info(PVOID file_desc, | ||||
|                                           remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_mounted(const std::wstring &location) | ||||
|   [[nodiscard]] auto winfsp_get_security_by_name( | ||||
|       PWSTR file_name, PUINT32 attributes, std::uint64_t *descriptor_size, | ||||
|       std::wstring &string_descriptor) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_get_volume_info(UINT64 &total_size, | ||||
|                                             UINT64 &free_size, | ||||
|                                             std::string &volume_label) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_open(PWSTR file_name, UINT32 create_options, | ||||
|                    UINT32 granted_access, PVOID *file_desc, | ||||
|                    remote::file_info *file_info, std::string &normalized_name) | ||||
|   [[nodiscard]] auto winfsp_mounted(const std::wstring &location) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_overwrite(PVOID file_desc, UINT32 attributes, | ||||
|                         BOOLEAN replace_attributes, UINT64 allocation_size, | ||||
|                         remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_open(PWSTR file_name, UINT32 create_options, | ||||
|                                  UINT32 granted_access, PVOID *file_desc, | ||||
|                                  remote::file_info *file_info, | ||||
|                                  std::string &normalized_name) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                    PUINT32 bytes_transferred) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_read_directory(PVOID file_desc, PWSTR pattern, PWSTR marker, | ||||
|                              json &item_list) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_rename(PVOID file_desc, PWSTR file_name, PWSTR new_file_name, | ||||
|                      BOOLEAN replace_if_exists) -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_set_basic_info(PVOID file_desc, UINT32 attributes, | ||||
|                              UINT64 creation_time, UINT64 last_access_time, | ||||
|                              UINT64 last_write_time, UINT64 change_time, | ||||
|                              remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_overwrite(PVOID file_desc, UINT32 attributes, | ||||
|                                       BOOLEAN replace_attributes, | ||||
|                                       UINT64 allocation_size, | ||||
|                                       remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_set_file_size(PVOID file_desc, UINT64 new_size, | ||||
|                             BOOLEAN set_allocation_size, | ||||
|                             remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset, | ||||
|                                  UINT32 length, PUINT32 bytes_transferred) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_unmounted(const std::wstring &location) | ||||
|   [[nodiscard]] auto winfsp_read_directory(PVOID file_desc, PWSTR pattern, | ||||
|                                            PWSTR marker, json &item_list) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   auto winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                     BOOLEAN write_to_end, BOOLEAN constrained_io, | ||||
|                     PUINT32 bytes_transferred, remote::file_info *file_info) | ||||
|   [[nodiscard]] auto winfsp_rename(PVOID file_desc, PWSTR file_name, | ||||
|                                    PWSTR new_file_name, | ||||
|                                    BOOLEAN replace_if_exists) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_set_basic_info( | ||||
|       PVOID file_desc, UINT32 attributes, UINT64 creation_time, | ||||
|       UINT64 last_access_time, UINT64 last_write_time, UINT64 change_time, | ||||
|       remote::file_info *file_info) -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_set_file_size(PVOID file_desc, UINT64 new_size, | ||||
|                                           BOOLEAN set_allocation_size, | ||||
|                                           remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto winfsp_unmounted(const std::wstring &location) | ||||
|       -> packet::error_type override; | ||||
|  | ||||
|   [[nodiscard]] auto | ||||
|   winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset, UINT32 length, | ||||
|                BOOLEAN write_to_end, BOOLEAN constrained_io, | ||||
|                PUINT32 bytes_transferred, remote::file_info *file_info) | ||||
|       -> packet::error_type override; | ||||
| }; | ||||
| } // namespace remote_winfsp | ||||
|   | ||||
		Reference in New Issue
	
	Block a user