Verified Commit 66b685e0 authored by Tommaso Tocci's avatar Tommaso Tocci
Browse files

Make metadata class global

Metadata class needs to be used by both the client and the daemon
parent d878127a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#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);
+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@


#include "rocksdb/merge_operator.h"
#include <daemon/classes/metadata.hpp>
#include "global/metadata.hpp"

namespace rdb = rocksdb;

+18 −38
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.
@@ -13,65 +16,42 @@ 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_

public:
    Metadata();
    explicit Metadata(mode_t mode);
    explicit Metadata(std::string db_val);

    Metadata(mode_t mode);

    Metadata(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_);

};


+1 −2
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ set(DAEMON_SRC
    adafs_ops/metadentry.cpp
    classes/fs_data.cpp
    classes/rpc_data.cpp
    classes/metadata.cpp
    handler/h_metadentry.cpp
    handler/h_data.cpp
    handler/h_preload.cpp
@@ -26,13 +25,13 @@ set(DAEMON_HEADERS
    ../../include/daemon/adafs_daemon.hpp
    ../../include/daemon/adafs_ops/metadentry.hpp
    ../../include/daemon/classes/fs_data.hpp
    ../../include/daemon/classes/metadata.hpp
    ../../include/daemon/classes/rpc_data.hpp
    ../../include/daemon/handler/rpc_defs.hpp
    )
add_executable(adafs_daemon ${DAEMON_SRC} ${DAEMON_HEADERS})
target_link_libraries(adafs_daemon
    # internal libs
    metadata
    metadata_db
    storage
    distributor
Loading