Loading ifs/CMakeLists.txt +7 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,13 @@ set_target_properties(spdlog INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/extern" ) add_library(fmt INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(fmt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/extern/spdlog" ) set(INCLUDE_DIR "${CMAKE_SOURCE_DIR}/include") # define include directories that are relevant for all targets Loading ifs/include/daemon/adafs_ops/metadentry.hpp +1 −3 Original line number Diff line number Diff line Loading @@ -3,15 +3,13 @@ #define IFS_METADENTRY_HPP #include <daemon/adafs_daemon.hpp> #include <daemon/classes/metadata.hpp> #include <global/metadata.hpp> #include <preload/preload_util.hpp> int create_node(const std::string& path, const uid_t uid, const gid_t gid, mode_t mode); void create_metadentry(const std::string& path, mode_t mode); int db_val_to_stat(const std::string& path, std::string db_val, struct stat& attr); std::string get_metadentry_str(const std::string& path); Metadata get_metadentry(const std::string& path); Loading ifs/include/daemon/backend/metadata/merge.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ #include "rocksdb/merge_operator.h" #include <daemon/classes/metadata.hpp> #include "global/metadata.hpp" namespace rdb = rocksdb; Loading ifs/include/daemon/classes/metadata.hpp→ifs/include/global/metadata.hpp +59 −0 Original line number Diff line number Diff line #ifndef FS_METADATA_H #define FS_METADATA_H #pragma once #include <daemon/adafs_daemon.hpp> class Metadata { #include "global/configure.hpp" #include <sys/types.h> #include <string> class Metadata { private: time_t atime_; // access time. gets updated on file access unless mounted with noatime time_t mtime_; // modify time. gets updated when file content is modified. Loading @@ -13,71 +16,43 @@ private: uid_t uid_; gid_t gid_; mode_t mode_; uint64_t inode_no_; unsigned long inode_no_; nlink_t link_count_; // number of names for this inode (hardlinks) size_t size_; // size_ in bytes, might be computed instead of stored blkcnt_t blocks_; // allocated file system blocks_ std::string path_; public: Metadata(); explicit Metadata(mode_t mode); // Construct from a binary representation of the object explicit Metadata(const std::string& binary_str); Metadata(const std::string& path, mode_t mode); Metadata(const std::string& path, std::string db_val); std::string serialize() const; void init_ACM_time(); void update_ACM_time(bool a, bool c, bool m); std::string serialize() const; //Getter and Setter time_t atime() const; void atime(time_t atime_); time_t mtime() const; void mtime(time_t mtime_); time_t ctime() const; void ctime(time_t ctime_); uid_t uid() const; void uid(uid_t uid_); gid_t gid() const; void gid(gid_t gid_); mode_t mode() const; void mode(mode_t mode_); uint64_t inode_no() const; void inode_no(uint64_t inode_no_); unsigned long inode_no() const; void inode_no(unsigned long inode_no_); nlink_t link_count() const; void link_count(nlink_t link_count_); size_t size() const; void size(size_t size_); blkcnt_t blocks() const; void blocks(blkcnt_t blocks_); const std::string& path() const; void path(const std::string& path); }; Loading ifs/include/preload/preload_util.hpp +2 −16 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ #define IFS_PRELOAD_UTIL_HPP #include <preload/preload.hpp> #include <global/metadata.hpp> // third party libs #include <string> #include <iostream> Loading @@ -11,21 +12,6 @@ extern "C" { #include <margo.h> } // Used to bundle metadata into one place struct Metadentry { time_t atime; time_t mtime; time_t ctime; uid_t uid; gid_t gid; mode_t mode; uint64_t inode_no; nlink_t link_count; off_t size; blkcnt_t blocks; std::string path; }; struct MetadentryUpdateFlags { bool atime = false; bool mtime = false; Loading Loading @@ -62,7 +48,7 @@ extern hg_id_t rpc_get_dirents_id; bool is_fs_path(const char* path); int db_val_to_stat(const std::string& path, std::string db_val, struct stat& attr); int metadata_to_stat(const std::string& path, const Metadata& md, struct stat& attr); int get_daemon_pid(); Loading Loading
ifs/CMakeLists.txt +7 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,13 @@ set_target_properties(spdlog INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/extern" ) add_library(fmt INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(fmt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/extern/spdlog" ) set(INCLUDE_DIR "${CMAKE_SOURCE_DIR}/include") # define include directories that are relevant for all targets Loading
ifs/include/daemon/adafs_ops/metadentry.hpp +1 −3 Original line number Diff line number Diff line Loading @@ -3,15 +3,13 @@ #define IFS_METADENTRY_HPP #include <daemon/adafs_daemon.hpp> #include <daemon/classes/metadata.hpp> #include <global/metadata.hpp> #include <preload/preload_util.hpp> int create_node(const std::string& path, const uid_t uid, const gid_t gid, mode_t mode); void create_metadentry(const std::string& path, mode_t mode); int db_val_to_stat(const std::string& path, std::string db_val, struct stat& attr); std::string get_metadentry_str(const std::string& path); Metadata get_metadentry(const std::string& path); Loading
ifs/include/daemon/backend/metadata/merge.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ #include "rocksdb/merge_operator.h" #include <daemon/classes/metadata.hpp> #include "global/metadata.hpp" namespace rdb = rocksdb; Loading
ifs/include/daemon/classes/metadata.hpp→ifs/include/global/metadata.hpp +59 −0 Original line number Diff line number Diff line #ifndef FS_METADATA_H #define FS_METADATA_H #pragma once #include <daemon/adafs_daemon.hpp> class Metadata { #include "global/configure.hpp" #include <sys/types.h> #include <string> class Metadata { private: time_t atime_; // access time. gets updated on file access unless mounted with noatime time_t mtime_; // modify time. gets updated when file content is modified. Loading @@ -13,71 +16,43 @@ private: uid_t uid_; gid_t gid_; mode_t mode_; uint64_t inode_no_; unsigned long inode_no_; nlink_t link_count_; // number of names for this inode (hardlinks) size_t size_; // size_ in bytes, might be computed instead of stored blkcnt_t blocks_; // allocated file system blocks_ std::string path_; public: Metadata(); explicit Metadata(mode_t mode); // Construct from a binary representation of the object explicit Metadata(const std::string& binary_str); Metadata(const std::string& path, mode_t mode); Metadata(const std::string& path, std::string db_val); std::string serialize() const; void init_ACM_time(); void update_ACM_time(bool a, bool c, bool m); std::string serialize() const; //Getter and Setter time_t atime() const; void atime(time_t atime_); time_t mtime() const; void mtime(time_t mtime_); time_t ctime() const; void ctime(time_t ctime_); uid_t uid() const; void uid(uid_t uid_); gid_t gid() const; void gid(gid_t gid_); mode_t mode() const; void mode(mode_t mode_); uint64_t inode_no() const; void inode_no(uint64_t inode_no_); unsigned long inode_no() const; void inode_no(unsigned long inode_no_); nlink_t link_count() const; void link_count(nlink_t link_count_); size_t size() const; void size(size_t size_); blkcnt_t blocks() const; void blocks(blkcnt_t blocks_); const std::string& path() const; void path(const std::string& path); }; Loading
ifs/include/preload/preload_util.hpp +2 −16 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ #define IFS_PRELOAD_UTIL_HPP #include <preload/preload.hpp> #include <global/metadata.hpp> // third party libs #include <string> #include <iostream> Loading @@ -11,21 +12,6 @@ extern "C" { #include <margo.h> } // Used to bundle metadata into one place struct Metadentry { time_t atime; time_t mtime; time_t ctime; uid_t uid; gid_t gid; mode_t mode; uint64_t inode_no; nlink_t link_count; off_t size; blkcnt_t blocks; std::string path; }; struct MetadentryUpdateFlags { bool atime = false; bool mtime = false; Loading Loading @@ -62,7 +48,7 @@ extern hg_id_t rpc_get_dirents_id; bool is_fs_path(const char* path); int db_val_to_stat(const std::string& path, std::string db_val, struct stat& attr); int metadata_to_stat(const std::string& path, const Metadata& md, struct stat& attr); int get_daemon_pid(); Loading