From 3c8f12281f10e3e3434fe8021ebd4944cf3c5c2f Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Mon, 22 Jun 2015 23:35:46 -0400 Subject: [PATCH] move policy function type from fs to policy --- src/access.cpp | 2 +- src/chmod.cpp | 2 +- src/chown.cpp | 2 +- src/create.cpp | 4 ++-- src/fs.hpp | 2 -- src/getattr.cpp | 3 ++- src/getxattr.cpp | 2 +- src/ioctl.cpp | 2 +- src/link.cpp | 6 +++--- src/listxattr.cpp | 2 +- src/mkdir.cpp | 5 +++-- src/mknod.cpp | 5 +++-- src/open.cpp | 3 ++- src/policy.hpp | 20 ++++++++++++-------- src/readlink.cpp | 12 ++++++------ src/removexattr.cpp | 3 ++- src/rename.cpp | 7 ++++--- src/rmdir.cpp | 2 +- src/setxattr.cpp | 2 +- src/symlink.cpp | 3 ++- src/truncate.cpp | 3 ++- src/unlink.cpp | 3 ++- src/utimens.cpp | 9 +++++---- 23 files changed, 58 insertions(+), 46 deletions(-) diff --git a/src/access.cpp b/src/access.cpp index 824dbfd9..dab24164 100644 --- a/src/access.cpp +++ b/src/access.cpp @@ -45,7 +45,7 @@ using mergerfs::Policy; static int -_access(const fs::find::Func searchFunc, +_access(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/chmod.cpp b/src/chmod.cpp index 8861533b..bd54befe 100644 --- a/src/chmod.cpp +++ b/src/chmod.cpp @@ -39,7 +39,7 @@ using mergerfs::Policy; static int -_chmod(const fs::find::Func actionFunc, +_chmod(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/chown.cpp b/src/chown.cpp index 67847c38..f08f29e9 100644 --- a/src/chown.cpp +++ b/src/chown.cpp @@ -40,7 +40,7 @@ using mergerfs::Policy; static int -_chown(const fs::find::Func actionFunc, +_chown(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/create.cpp b/src/create.cpp index 44569dcb..7f018958 100644 --- a/src/create.cpp +++ b/src/create.cpp @@ -43,8 +43,8 @@ using mergerfs::Policy; static int -_create(const fs::find::Func searchFunc, - const fs::find::Func createFunc, +_create(const Policy::FuncPtr searchFunc, + const Policy::FuncPtr createFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/fs.hpp b/src/fs.hpp index 92841c1f..bbd0e6fc 100644 --- a/src/fs.hpp +++ b/src/fs.hpp @@ -100,8 +100,6 @@ namespace fs namespace find { - typedef int (*Func)(const vector&,const string&,const size_t,Paths&); - int invalid(const vector &basepaths, const string &fusepath, const size_t minfreespace, diff --git a/src/getattr.cpp b/src/getattr.cpp index 3b83cb0e..25169505 100644 --- a/src/getattr.cpp +++ b/src/getattr.cpp @@ -39,6 +39,7 @@ using std::string; using std::vector; +using mergerfs::Policy; static int @@ -65,7 +66,7 @@ _getattr_controlfile(struct stat &buf) static int -_getattr(const fs::find::Func searchFunc, +_getattr(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/getxattr.cpp b/src/getxattr.cpp index 44f7a1b4..61d2621f 100644 --- a/src/getxattr.cpp +++ b/src/getxattr.cpp @@ -190,7 +190,7 @@ _getxattr_user_mergerfs(const Path &path, static int -_getxattr(const fs::find::Func searchFunc, +_getxattr(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/ioctl.cpp b/src/ioctl.cpp index dd5223b6..fa82494e 100644 --- a/src/ioctl.cpp +++ b/src/ioctl.cpp @@ -82,7 +82,7 @@ _ioctl(const int fd, #ifdef FUSE_IOCTL_DIR static int -_ioctl_dir_base(const fs::find::Func searchFunc, +_ioctl_dir_base(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/link.cpp b/src/link.cpp index 644f7395..15d88f41 100644 --- a/src/link.cpp +++ b/src/link.cpp @@ -41,7 +41,7 @@ using mergerfs::Policy; static int -_single_link(const fs::find::Func searchFunc, +_single_link(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &base, @@ -76,8 +76,8 @@ _single_link(const fs::find::Func searchFunc, static int -_link(const fs::find::Func searchFunc, - const fs::find::Func actionFunc, +_link(const Policy::FuncPtr searchFunc, + const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &oldpath, diff --git a/src/listxattr.cpp b/src/listxattr.cpp index 442624b5..ab4e96d2 100644 --- a/src/listxattr.cpp +++ b/src/listxattr.cpp @@ -69,7 +69,7 @@ _listxattr_controlfile(char *list, static int -_listxattr(const fs::find::Func searchFunc, +_listxattr(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/mkdir.cpp b/src/mkdir.cpp index 971a1bd8..cfa3e38d 100644 --- a/src/mkdir.cpp +++ b/src/mkdir.cpp @@ -38,11 +38,12 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_mkdir(const fs::find::Func searchFunc, - const fs::find::Func createFunc, +_mkdir(const Policy::FuncPtr searchFunc, + const Policy::FuncPtr createFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/mknod.cpp b/src/mknod.cpp index 156f75ce..79ff80f1 100644 --- a/src/mknod.cpp +++ b/src/mknod.cpp @@ -40,11 +40,12 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_mknod(const fs::find::Func searchFunc, - const fs::find::Func createFunc, +_mknod(const Policy::FuncPtr searchFunc, + const Policy::FuncPtr createFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/open.cpp b/src/open.cpp index 8eb60916..e81e998a 100644 --- a/src/open.cpp +++ b/src/open.cpp @@ -38,10 +38,11 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_open(const fs::find::Func searchFunc, +_open(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/policy.hpp b/src/policy.hpp index 752c8983..6807aee8 100644 --- a/src/policy.hpp +++ b/src/policy.hpp @@ -26,8 +26,10 @@ #define __POLICY_HPP__ #include +#include #include +#include "path.hpp" #include "fs.hpp" namespace mergerfs @@ -35,6 +37,8 @@ namespace mergerfs class Policy { public: + typedef int (*FuncPtr)(const std::vector&,const std::string&,const std::size_t,Paths&); + struct Enum { enum Type @@ -55,9 +59,9 @@ namespace mergerfs }; private: - Enum::Type _enum; - std::string _str; - fs::find::Func _func; + Enum::Type _enum; + std::string _str; + FuncPtr _func; public: Policy() @@ -67,9 +71,9 @@ namespace mergerfs { } - Policy(const Enum::Type enum_, - const std::string &str_, - const fs::find::Func func_) + Policy(const Enum::Type enum_, + const std::string &str_, + const FuncPtr func_) : _enum(enum_), _str(str_), _func(func_) @@ -79,14 +83,14 @@ namespace mergerfs public: operator const Enum::Type() const { return _enum; } operator const std::string&() const { return _str; } - operator const fs::find::Func() const { return _func; } + operator const FuncPtr() const { return _func; } operator const Policy*() const { return this; } bool operator==(const Enum::Type enum_) const { return _enum == enum_; } bool operator==(const std::string &str_) const { return _str == str_; } - bool operator==(const fs::find::Func func_) const + bool operator==(const FuncPtr func_) const { return _func == func_; } bool operator!=(const Policy &r) const diff --git a/src/readlink.cpp b/src/readlink.cpp index 9a17bf01..dc7ea697 100644 --- a/src/readlink.cpp +++ b/src/readlink.cpp @@ -41,12 +41,12 @@ using mergerfs::Policy; static int -_readlink(const fs::find::Func searchFunc, - const vector &srcmounts, - const size_t minfreespace, - const string &fusepath, - char *buf, - const size_t size) +_readlink(const Policy::FuncPtr searchFunc, + const vector &srcmounts, + const size_t minfreespace, + const string &fusepath, + char *buf, + const size_t size) { int rv; Paths path; diff --git a/src/removexattr.cpp b/src/removexattr.cpp index bbf6576e..f1fc26ef 100644 --- a/src/removexattr.cpp +++ b/src/removexattr.cpp @@ -38,10 +38,11 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_removexattr(const fs::find::Func actionFunc, +_removexattr(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/rename.cpp b/src/rename.cpp index 822c50dc..f97372ac 100644 --- a/src/rename.cpp +++ b/src/rename.cpp @@ -38,10 +38,11 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_single_rename(const fs::find::Func searchFunc, +_single_rename(const Policy::FuncPtr searchFunc, const vector &srcmounts, const size_t minfreespace, const Path &oldpath, @@ -74,8 +75,8 @@ _single_rename(const fs::find::Func searchFunc, static int -_rename(const fs::find::Func searchFunc, - const fs::find::Func actionFunc, +_rename(const Policy::FuncPtr searchFunc, + const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &oldpath, diff --git a/src/rmdir.cpp b/src/rmdir.cpp index 25befb49..77890801 100644 --- a/src/rmdir.cpp +++ b/src/rmdir.cpp @@ -40,7 +40,7 @@ using mergerfs::Policy; static int -_rmdir(const fs::find::Func actionFunc, +_rmdir(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath) diff --git a/src/setxattr.cpp b/src/setxattr.cpp index 527d385c..ccdfda59 100644 --- a/src/setxattr.cpp +++ b/src/setxattr.cpp @@ -240,7 +240,7 @@ _setxattr_controlfile(config::Config &config, static int -_setxattr(const fs::find::Func actionFunc, +_setxattr(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/symlink.cpp b/src/symlink.cpp index 4f8c5453..18c97fa5 100644 --- a/src/symlink.cpp +++ b/src/symlink.cpp @@ -36,10 +36,11 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_symlink(const fs::find::Func createFunc, +_symlink(const Policy::FuncPtr createFunc, const vector &srcmounts, const size_t minfreespace, const string &oldpath, diff --git a/src/truncate.cpp b/src/truncate.cpp index dabc53a6..17b0bd0c 100644 --- a/src/truncate.cpp +++ b/src/truncate.cpp @@ -38,10 +38,11 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_truncate(const fs::find::Func actionFunc, +_truncate(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath, diff --git a/src/unlink.cpp b/src/unlink.cpp index f54e51c6..8c6e5c6b 100644 --- a/src/unlink.cpp +++ b/src/unlink.cpp @@ -37,10 +37,11 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_unlink(const fs::find::Func actionFunc, +_unlink(const Policy::FuncPtr actionFunc, const vector &srcmounts, const size_t minfreespace, const string &fusepath) diff --git a/src/utimens.cpp b/src/utimens.cpp index 74220b69..9eb82ac3 100644 --- a/src/utimens.cpp +++ b/src/utimens.cpp @@ -38,13 +38,14 @@ using std::string; using std::vector; +using mergerfs::Policy; static int -_utimens(const fs::find::Func actionFunc, - const vector &srcmounts, - const size_t minfreespace, - const string &fusepath, +_utimens(const Policy::FuncPtr actionFunc, + const vector &srcmounts, + const size_t minfreespace, + const string &fusepath, const struct timespec ts[2]) { int rv;