Commit 72d353ba authored by Marc Vef's avatar Marc Vef
Browse files

Metadata read/write binary serialized, google coding style applied

parent b068d852
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
+8 −9
Original line number Diff line number Diff line
@@ -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();
@@ -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;
    }

@@ -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();
+5 −3
Original line number Diff line number Diff line
@@ -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
+11 −11
Original line number Diff line number Diff line
@@ -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_;
}

@@ -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;
+8 −8
Original line number Diff line number Diff line
@@ -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