Loading fs/CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -13,9 +13,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1) find_package(FUSE REQUIRED) # boost dependencies #TODO VERSION UNTESTED. I USE 1.62 find_package(Boost 1.56.0 COMPONENTS system filesystem) find_package(Boost 1.56.0 COMPONENTS system filesystem serialization) include_directories(${FUSE_INCLUDE_DIR} include/) set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/metadata.h src/metadata.cpp src/metadata_ops.h src/metadata_ops.cpp) add_executable(adafs ${SOURCE_FILES} src/main.cpp) target_link_libraries(adafs ${FUSE_LIBRARIES} -lpthread -lboost_system -lboost_filesystem) No newline at end of file target_link_libraries(adafs ${FUSE_LIBRARIES} -lpthread -lboost_system -lboost_filesystem -lboost_serialization) No newline at end of file fs/src/main.cpp +8 −9 Original line number Diff line number Diff line Loading @@ -10,12 +10,11 @@ using namespace std; //std::shared_ptr<Metadata> md; int adafs_getattr(const char *path, struct stat *attr){ auto fpath = util::adafs_fullpath("meta/inodes"s); auto fpath = util::AdafsFullpath("meta/inodes"s); auto md = make_shared<Metadata>(); md->setMode(S_IFDIR | 0755); read_all_metadata(*md, 1, *fpath); ADAFS_DATA->logger->info("ctime: {}", md->getAtime_()); ADAFS_DATA->logger->info("inode: {}", md->getInode_no()); md->setInode_no(1); ReadAllMetadata(*md, 1, fpath); if (strcmp(path, "/") == 0) { attr->st_ino = md->getInode_no(); attr->st_mode = md->getMode(); Loading @@ -25,9 +24,9 @@ int adafs_getattr(const char *path, struct stat *attr){ attr->st_size = md->getSize(); attr->st_blksize = ADAFS_DATA->blocksize; attr->st_blocks = md->getBlocks(); attr->st_atim.tv_sec = md->getAtime_(); attr->st_mtim.tv_sec = md->getMtime_(); attr->st_ctim.tv_sec = md->getCtime_(); attr->st_atim.tv_sec = md->getAtime(); attr->st_mtim.tv_sec = md->getMtime(); attr->st_ctim.tv_sec = md->getCtime(); return 0; } Loading Loading @@ -60,10 +59,10 @@ void *adafs_init(struct fuse_conn_info *conn) { // md = make_shared<Metadata>(S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO); // auto md = make_shared<Metadata>(S_IFDIR | 0755); // } // auto s = util::adafs_fullpath("meta/inodes"); // auto s = util::AdafsFullpath("meta/inodes"); // // write_all_metadata(*md, *s); // WriteAllMetadata(*md, s); ADAFS_DATA->logger->info("Survived creating Metadata object"s); ADAFS_DATA->logger->flush(); Loading fs/src/main.h +5 −3 Original line number Diff line number Diff line Loading @@ -29,9 +29,11 @@ struct adafs_data { #define ADAFS_DATA ((struct adafs_data*) fuse_get_context()->private_data) namespace util { std::unique_ptr<std::string> adafs_fullpath(const std::string& path); int reset_inode_no(void); ino_t generate_inode_no(void); std::string AdafsFullpath(const std::string &path); int ResetInodeNo(void); ino_t GenerateInodeNo(void); } #endif //MAIN_H fs/src/metadata.cpp +11 −11 Original line number Diff line number Diff line Loading @@ -4,27 +4,27 @@ #include "metadata.h" time_t Metadata::getAtime_() const { time_t Metadata::getAtime() const { return atime_; } void Metadata::setAtime_(time_t atime_) { Metadata::atime_ = atime_; void Metadata::setAtime(time_t atime) { Metadata::atime_ = atime; } time_t Metadata::getMtime_() const { time_t Metadata::getMtime() const { return mtime_; } void Metadata::setMtime_(time_t mtime_) { Metadata::mtime_ = mtime_; void Metadata::setMtime(time_t mtime) { Metadata::mtime_ = mtime; } time_t Metadata::getCtime_() const { time_t Metadata::getCtime() const { return ctime_; } void Metadata::setCtime_(time_t ctime_) { void Metadata::setCtime(time_t ctime_) { Metadata::ctime_ = ctime_; } Loading Loading @@ -113,11 +113,11 @@ Metadata::Metadata(mode_t mode) : link_count_(0), size_(0), blocks_(0) { init_ACMtime(); inode_no_ = util::generate_inode_no(); InitAcmTime(); inode_no_ = util::GenerateInodeNo(); } void Metadata::init_ACMtime(void) { void Metadata::InitAcmTime(void) { std::time_t time; std::time(&time); atime_ = time; Loading fs/src/metadata.h +8 −8 Original line number Diff line number Diff line Loading @@ -19,25 +19,25 @@ private: uint32_t size_; // size_ in bytes, might be computed instead of stored uint32_t blocks_; // allocated file system blocks_ void init_ACMtime(void); void InitAcmTime(void); public: Metadata(); Metadata(mode_t mode); //Getter and Setter TODO redo getter, setter time_t getAtime_() const; //Getter and Setter time_t getAtime() const; void setAtime_(time_t atime_); void setAtime(time_t atime); time_t getMtime_() const; time_t getMtime() const; void setMtime_(time_t mtime_); void setMtime(time_t mtime); time_t getCtime_() const; time_t getCtime() const; void setCtime_(time_t ctime_); void setCtime(time_t ctime_); void setCtime(uint32_t ctime); Loading Loading
fs/CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -13,9 +13,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1) find_package(FUSE REQUIRED) # boost dependencies #TODO VERSION UNTESTED. I USE 1.62 find_package(Boost 1.56.0 COMPONENTS system filesystem) find_package(Boost 1.56.0 COMPONENTS system filesystem serialization) include_directories(${FUSE_INCLUDE_DIR} include/) set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/metadata.h src/metadata.cpp src/metadata_ops.h src/metadata_ops.cpp) add_executable(adafs ${SOURCE_FILES} src/main.cpp) target_link_libraries(adafs ${FUSE_LIBRARIES} -lpthread -lboost_system -lboost_filesystem) No newline at end of file target_link_libraries(adafs ${FUSE_LIBRARIES} -lpthread -lboost_system -lboost_filesystem -lboost_serialization) No newline at end of file
fs/src/main.cpp +8 −9 Original line number Diff line number Diff line Loading @@ -10,12 +10,11 @@ using namespace std; //std::shared_ptr<Metadata> md; int adafs_getattr(const char *path, struct stat *attr){ auto fpath = util::adafs_fullpath("meta/inodes"s); auto fpath = util::AdafsFullpath("meta/inodes"s); auto md = make_shared<Metadata>(); md->setMode(S_IFDIR | 0755); read_all_metadata(*md, 1, *fpath); ADAFS_DATA->logger->info("ctime: {}", md->getAtime_()); ADAFS_DATA->logger->info("inode: {}", md->getInode_no()); md->setInode_no(1); ReadAllMetadata(*md, 1, fpath); if (strcmp(path, "/") == 0) { attr->st_ino = md->getInode_no(); attr->st_mode = md->getMode(); Loading @@ -25,9 +24,9 @@ int adafs_getattr(const char *path, struct stat *attr){ attr->st_size = md->getSize(); attr->st_blksize = ADAFS_DATA->blocksize; attr->st_blocks = md->getBlocks(); attr->st_atim.tv_sec = md->getAtime_(); attr->st_mtim.tv_sec = md->getMtime_(); attr->st_ctim.tv_sec = md->getCtime_(); attr->st_atim.tv_sec = md->getAtime(); attr->st_mtim.tv_sec = md->getMtime(); attr->st_ctim.tv_sec = md->getCtime(); return 0; } Loading Loading @@ -60,10 +59,10 @@ void *adafs_init(struct fuse_conn_info *conn) { // md = make_shared<Metadata>(S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO); // auto md = make_shared<Metadata>(S_IFDIR | 0755); // } // auto s = util::adafs_fullpath("meta/inodes"); // auto s = util::AdafsFullpath("meta/inodes"); // // write_all_metadata(*md, *s); // WriteAllMetadata(*md, s); ADAFS_DATA->logger->info("Survived creating Metadata object"s); ADAFS_DATA->logger->flush(); Loading
fs/src/main.h +5 −3 Original line number Diff line number Diff line Loading @@ -29,9 +29,11 @@ struct adafs_data { #define ADAFS_DATA ((struct adafs_data*) fuse_get_context()->private_data) namespace util { std::unique_ptr<std::string> adafs_fullpath(const std::string& path); int reset_inode_no(void); ino_t generate_inode_no(void); std::string AdafsFullpath(const std::string &path); int ResetInodeNo(void); ino_t GenerateInodeNo(void); } #endif //MAIN_H
fs/src/metadata.cpp +11 −11 Original line number Diff line number Diff line Loading @@ -4,27 +4,27 @@ #include "metadata.h" time_t Metadata::getAtime_() const { time_t Metadata::getAtime() const { return atime_; } void Metadata::setAtime_(time_t atime_) { Metadata::atime_ = atime_; void Metadata::setAtime(time_t atime) { Metadata::atime_ = atime; } time_t Metadata::getMtime_() const { time_t Metadata::getMtime() const { return mtime_; } void Metadata::setMtime_(time_t mtime_) { Metadata::mtime_ = mtime_; void Metadata::setMtime(time_t mtime) { Metadata::mtime_ = mtime; } time_t Metadata::getCtime_() const { time_t Metadata::getCtime() const { return ctime_; } void Metadata::setCtime_(time_t ctime_) { void Metadata::setCtime(time_t ctime_) { Metadata::ctime_ = ctime_; } Loading Loading @@ -113,11 +113,11 @@ Metadata::Metadata(mode_t mode) : link_count_(0), size_(0), blocks_(0) { init_ACMtime(); inode_no_ = util::generate_inode_no(); InitAcmTime(); inode_no_ = util::GenerateInodeNo(); } void Metadata::init_ACMtime(void) { void Metadata::InitAcmTime(void) { std::time_t time; std::time(&time); atime_ = time; Loading
fs/src/metadata.h +8 −8 Original line number Diff line number Diff line Loading @@ -19,25 +19,25 @@ private: uint32_t size_; // size_ in bytes, might be computed instead of stored uint32_t blocks_; // allocated file system blocks_ void init_ACMtime(void); void InitAcmTime(void); public: Metadata(); Metadata(mode_t mode); //Getter and Setter TODO redo getter, setter time_t getAtime_() const; //Getter and Setter time_t getAtime() const; void setAtime_(time_t atime_); void setAtime(time_t atime); time_t getMtime_() const; time_t getMtime() const; void setMtime_(time_t mtime_); void setMtime(time_t mtime); time_t getCtime_() const; time_t getCtime() const; void setCtime_(time_t ctime_); void setCtime(time_t ctime_); void setCtime(uint32_t ctime); Loading