From 5c41e3987477ebc799e4af57e2f15aa439c6111f Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Sat, 3 Sep 2022 15:01:13 -0400 Subject: [PATCH] checkpoint --- src/branches.cpp | 2 +- src/category.cpp | 49 -------- src/category.hpp | 107 ----------------- src/fs_clonepath_branches.cpp | 2 +- src/fs_movefile.hpp | 20 ++-- src/func.cpp | 62 ---------- src/func.hpp | 185 ------------------------------ src/funcs.hpp | 46 -------- src/fuse_link_policy_all.hpp | 2 +- src/fuse_listxattr.cpp | 23 ---- src/fuse_rename_policy_all.hpp | 2 +- src/fuse_statfs_policy_branch.hpp | 2 +- src/fuse_statfs_policy_full.hpp | 2 +- src/fuse_truncate.cpp | 1 - src/policies.cpp | 132 --------------------- src/policies.hpp | 121 ------------------- 16 files changed, 16 insertions(+), 742 deletions(-) delete mode 100644 src/category.cpp delete mode 100644 src/category.hpp delete mode 100644 src/func.cpp delete mode 100644 src/func.hpp delete mode 100644 src/funcs.hpp delete mode 100644 src/policies.cpp delete mode 100644 src/policies.hpp diff --git a/src/branches.cpp b/src/branches.cpp index 867052af..56b4a7b8 100644 --- a/src/branches.cpp +++ b/src/branches.cpp @@ -34,7 +34,7 @@ Branches::Branches(const toml::value &toml_) Branch::Mode default_mode; uint64_t default_minfreespace; - default_mode = toml::find_or(toml_,"branches","mode",Branch2::Mode::RW); + default_mode = toml::find_or(toml_,"branches","mode",Branch::Mode::RW); default_minfreespace = toml::find_or(toml_,"branches","min-free-space",0); branches = toml::find(toml_,"branches"); diff --git a/src/category.cpp b/src/category.cpp deleted file mode 100644 index e1fd7f2a..00000000 --- a/src/category.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - ISC License - - Copyright (c) 2020, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#include "category.hpp" -#include "errno.hpp" -#include "str.hpp" - -#include - -int -Category::Base::from_string(const std::string &s_) -{ - int rv; - - for(auto func : funcs) - { - rv = func->from_string(s_); - if(rv < 0) - return rv; - } - - return 0; -} - -std::string -Category::Base::to_string(void) const -{ - std::set rv; - - for(auto func : funcs) - rv.insert(func->to_string()); - - return str::join(rv,','); -} diff --git a/src/category.hpp b/src/category.hpp deleted file mode 100644 index ff3b87f2..00000000 --- a/src/category.hpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - Copyright (c) 2020, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#pragma once - -#include "tofrom_string.hpp" -#include "funcs.hpp" -#include "func.hpp" - -#include - -namespace Category -{ - class Base : public ToFromString - { - public: - int from_string(const std::string &s) final; - std::string to_string() const final; - - protected: - std::vector funcs; - }; - - class Action final : public Base - { - private: - Action(); - - public: - Action(Funcs &funcs_) - { - funcs.push_back(&funcs_.chmod); - funcs.push_back(&funcs_.chown); - funcs.push_back(&funcs_.link); - funcs.push_back(&funcs_.removexattr); - funcs.push_back(&funcs_.rename); - funcs.push_back(&funcs_.rmdir); - funcs.push_back(&funcs_.setxattr); - funcs.push_back(&funcs_.truncate); - funcs.push_back(&funcs_.unlink); - funcs.push_back(&funcs_.utimens); - } - }; - - class Create final : public Base - { - private: - Create(); - - public: - Create(Funcs &funcs_) - { - funcs.push_back(&funcs_.create); - funcs.push_back(&funcs_.mkdir); - funcs.push_back(&funcs_.mknod); - funcs.push_back(&funcs_.symlink); - } - }; - - class Search final : public Base - { - private: - Search(); - - public: - Search(Funcs &funcs_) - { - funcs.push_back(&funcs_.access); - funcs.push_back(&funcs_.getattr); - funcs.push_back(&funcs_.getxattr); - funcs.push_back(&funcs_.listxattr); - funcs.push_back(&funcs_.open); - funcs.push_back(&funcs_.readlink); - } - }; -} - -class Categories final -{ -private: - Categories(); - -public: - Categories(Funcs &funcs_) - : action(funcs_), - create(funcs_), - search(funcs_) - {} - -public: - Category::Action action; - Category::Create create; - Category::Search search; -}; diff --git a/src/fs_clonepath_branches.cpp b/src/fs_clonepath_branches.cpp index f7948bc4..e28892fa 100644 --- a/src/fs_clonepath_branches.cpp +++ b/src/fs_clonepath_branches.cpp @@ -26,7 +26,7 @@ namespace gfs = ghc::filesystem; int -fs::clonepath_as_root(const Branches2 &branches_, +fs::clonepath_as_root(const Branches &branches_, const gfs::path &to_, const gfs::path &relative_) { diff --git a/src/fs_movefile.hpp b/src/fs_movefile.hpp index 42bae7d4..3c3c2440 100644 --- a/src/fs_movefile.hpp +++ b/src/fs_movefile.hpp @@ -23,15 +23,15 @@ namespace fs { - int - movefile(const Policy::Create &policy, - const Branches::CPtr &branches, - const std::string &fusepath, - int *origfd); + // int + // movefile(const Policy::Create &policy, + // const Branches::CPtr &branches, + // const std::string &fusepath, + // int *origfd); - int - movefile_as_root(const Policy::Create &policy, - const Branches::CPtr &branches, - const std::string &fusepath, - int *origfd); + // int + // movefile_as_root(const Policy::Create &policy, + // const Branches::CPtr &branches, + // const std::string &fusepath, + // int *origfd); } diff --git a/src/func.cpp b/src/func.cpp deleted file mode 100644 index 39aa7194..00000000 --- a/src/func.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - ISC License - - Copyright (c) 2019, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#include "func.hpp" - - -int -Func::Base::Action::from_string(const std::string &policyname_) -{ - policy = Policies::Action::find(policyname_); - - return 0; -} - -std::string -Func::Base::Action::to_string(void) const -{ - return policy.name(); -} - -int -Func::Base::Create::from_string(const std::string &policyname_) -{ - policy = Policies::Create::find(policyname_); - - return 0; -} - -std::string -Func::Base::Create::to_string(void) const -{ - return policy.name(); -} - -int -Func::Base::Search::from_string(const std::string &policyname_) -{ - policy = Policies::Search::find(policyname_); - - return 0; -} - -std::string -Func::Base::Search::to_string(void) const -{ - return policy.name(); -} diff --git a/src/func.hpp b/src/func.hpp deleted file mode 100644 index 65ba694a..00000000 --- a/src/func.hpp +++ /dev/null @@ -1,185 +0,0 @@ -/* - ISC License - - Copyright (c) 2019, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#pragma once - -#include "from_toml.hpp" -#include "policies.hpp" -#include "policy.hpp" -#include "tofrom_string.hpp" - -#include - - -namespace Func -{ - namespace Base - { - class Action : public ToFromString - { - public: - Action(Policy::ActionImpl *policy_) - : policy(policy_) - {} - - public: - int from_string(const std::string &s) final; - std::string to_string() const final; - - public: - Policy::Action policy; - }; - - class Create : public ToFromString - { - public: - Create(Policy::CreateImpl *policy_) - : policy(policy_) - {} - - public: - int from_string(const std::string &s) final; - std::string to_string() const final; - - public: - Policy::Create policy; - }; - - class Search : public ToFromString - { - public: - Search(Policy::SearchImpl *policy_) - : policy(policy_) - {} - - public: - int from_string(const std::string &s) final; - std::string to_string() const final; - - public: - Policy::Search policy; - }; - - class ActionDefault : public Action - { - public: - ActionDefault() - : Func::Base::Action(&Policies::Action::epall) - { - } - }; - - class CreateDefault : public Create - { - public: - CreateDefault() - : Func::Base::Create(&Policies::Create::epmfs) - { - } - }; - - class SearchDefault : public Search - { - public: - SearchDefault() - : Func::Base::Search(&Policies::Search::ff) - { - } - }; - } - - class Access final : public Base::SearchDefault - { - }; - - class Chmod final : public Base::ActionDefault - { - }; - - class Chown final : public Base::ActionDefault - { - }; - - class Create final : public Base::CreateDefault - { - }; - - class GetAttr final : public Base::SearchDefault - { - }; - - class GetXAttr final : public Base::SearchDefault - { - }; - - class Link final : public Base::ActionDefault - { - }; - - class ListXAttr final : public Base::SearchDefault - { - }; - - class Mkdir final : public Base::CreateDefault - { - }; - - class Mknod final : public Base::CreateDefault - { - }; - - class Open final : public Base::SearchDefault - { - }; - - class Readlink final : public Base::SearchDefault - { - }; - - class RemoveXAttr final : public Base::ActionDefault - { - }; - - class Rename final : public Base::ActionDefault - { - }; - - class Rmdir final : public Base::ActionDefault - { - }; - - class SetXAttr final : public Base::ActionDefault - { - }; - - class Symlink final : public Base::CreateDefault - { - }; - - class Truncate final : public Base::ActionDefault - { - }; - - class Unlink final : public Base::ActionDefault - { - }; - - class Utimens final : public Base::ActionDefault - { - }; -} diff --git a/src/funcs.hpp b/src/funcs.hpp deleted file mode 100644 index dbb1eb8c..00000000 --- a/src/funcs.hpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - ISC License - - Copyright (c) 2019, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#pragma once - -#include "func.hpp" - - -struct Funcs -{ - Func::Access access; - Func::Chmod chmod; - Func::Chown chown; - Func::Create create; - Func::GetAttr getattr; - Func::GetXAttr getxattr; - Func::Link link; - Func::ListXAttr listxattr; - Func::Mkdir mkdir; - Func::Mknod mknod; - Func::Open open; - Func::Readlink readlink; - Func::RemoveXAttr removexattr; - Func::Rename rename; - Func::Rmdir rmdir; - Func::SetXAttr setxattr; - Func::Symlink symlink; - Func::Truncate truncate; - Func::Unlink unlink; - Func::Utimens utimens; -}; diff --git a/src/fuse_link_policy_all.hpp b/src/fuse_link_policy_all.hpp index 14978c12..c2bdf795 100644 --- a/src/fuse_link_policy_all.hpp +++ b/src/fuse_link_policy_all.hpp @@ -35,6 +35,6 @@ namespace FUSE::LINK::POLICY const gfs::path &newpath) final; private: - Branches2 _branches; + Branches _branches; }; } diff --git a/src/fuse_listxattr.cpp b/src/fuse_listxattr.cpp index a388c2f3..42d707df 100644 --- a/src/fuse_listxattr.cpp +++ b/src/fuse_listxattr.cpp @@ -14,7 +14,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include "category.hpp" #include "errno.hpp" #include "fs_llistxattr.hpp" #include "fs_path.hpp" @@ -33,28 +32,6 @@ using std::string; namespace l { - static - int - listxattr(const Policy::Search &searchFunc_, - const Branches &branches_, - const char *fusepath_, - char *list_, - const size_t size_) - { - int rv; - string fullpath; - StrVec basepaths; - - rv = searchFunc_(branches_,fusepath_,&basepaths); - if(rv == -1) - return -errno; - - fullpath = fs::path::make(basepaths[0],fusepath_); - - rv = fs::llistxattr(fullpath,list_,size_); - - return ((rv == -1) ? -errno : rv); - } } namespace FUSE::LISTXATTR diff --git a/src/fuse_rename_policy_all.hpp b/src/fuse_rename_policy_all.hpp index 4c4f163a..e3162e49 100644 --- a/src/fuse_rename_policy_all.hpp +++ b/src/fuse_rename_policy_all.hpp @@ -37,6 +37,6 @@ namespace FUSE::RENAME::POLICY const gfs::path &newpath) final; private: - Branches2 _branches; + Branches _branches; }; } diff --git a/src/fuse_statfs_policy_branch.hpp b/src/fuse_statfs_policy_branch.hpp index 558fb64e..ecd16189 100644 --- a/src/fuse_statfs_policy_branch.hpp +++ b/src/fuse_statfs_policy_branch.hpp @@ -37,6 +37,6 @@ namespace FUSE::STATFS::POLICY struct statvfs *fsstat) final; private: - Branches2 _branches; + Branches _branches; }; } diff --git a/src/fuse_statfs_policy_full.hpp b/src/fuse_statfs_policy_full.hpp index 0f697ad6..53d3b2be 100644 --- a/src/fuse_statfs_policy_full.hpp +++ b/src/fuse_statfs_policy_full.hpp @@ -37,6 +37,6 @@ namespace FUSE::STATFS::POLICY struct statvfs *fsstat) final; private: - Branches2 _branches; + Branches _branches; }; } diff --git a/src/fuse_truncate.cpp b/src/fuse_truncate.cpp index ed80e1ed..713c2a70 100644 --- a/src/fuse_truncate.cpp +++ b/src/fuse_truncate.cpp @@ -17,7 +17,6 @@ #include "errno.hpp" #include "fs_path.hpp" #include "fs_truncate.hpp" -#include "policy_rv.hpp" #include "ugid.hpp" #include "state.hpp" diff --git a/src/policies.cpp b/src/policies.cpp deleted file mode 100644 index dc64370c..00000000 --- a/src/policies.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* - ISC License - - Copyright (c) 2020, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#include "policies.hpp" - -#define IFERTA(X) if(name_ == #X) return &Policies::Action::X; -#define IFERTC(X) if(name_ == #X) return &Policies::Create::X; -#define IFERTS(X) if(name_ == #X) return &Policies::Search::X; - -#define IFERT(FUNC) \ - FUNC(all) \ - FUNC(epall) \ - FUNC(epff) \ - FUNC(eplfs) \ - FUNC(eplus) \ - FUNC(epmfs) \ - FUNC(eppfrd) \ - FUNC(eprand) \ - FUNC(erofs) \ - FUNC(ff) \ - FUNC(lfs) \ - FUNC(lus) \ - FUNC(mfs) \ - FUNC(msplfs) \ - FUNC(msplus) \ - FUNC(mspmfs) \ - FUNC(msppfrd) \ - FUNC(newest) \ - FUNC(pfrd) \ - FUNC(rand) - -Policy::ActionImpl* -Policies::Action::find(const std::string &name_) -{ - IFERT(IFERTA); - - return NULL; -} - -Policy::CreateImpl* -Policies::Create::find(const std::string &name_) -{ - IFERT(IFERTC); - - return NULL; -} - -Policy::SearchImpl* -Policies::Search::find(const std::string &name_) -{ - IFERT(IFERTS); - - return NULL; -} - -Policy::All::Action Policies::Action::all; -Policy::EPAll::Action Policies::Action::epall; -Policy::EPFF::Action Policies::Action::epff; -Policy::EPLFS::Action Policies::Action::eplfs; -Policy::EPLUS::Action Policies::Action::eplus; -Policy::EPMFS::Action Policies::Action::epmfs; -Policy::EPPFRD::Action Policies::Action::eppfrd; -Policy::EPRand::Action Policies::Action::eprand; -Policy::ERoFS::Action Policies::Action::erofs; -Policy::FF::Action Policies::Action::ff; -Policy::LFS::Action Policies::Action::lfs; -Policy::LUS::Action Policies::Action::lus; -Policy::MFS::Action Policies::Action::mfs; -Policy::MSPLFS::Action Policies::Action::msplfs; -Policy::MSPLUS::Action Policies::Action::msplus; -Policy::MSPMFS::Action Policies::Action::mspmfs; -Policy::MSPPFRD::Action Policies::Action::msppfrd; -Policy::Newest::Action Policies::Action::newest; -Policy::PFRD::Action Policies::Action::pfrd; -Policy::Rand::Action Policies::Action::rand; - -Policy::All::Create Policies::Create::all; -Policy::EPAll::Create Policies::Create::epall; -Policy::EPFF::Create Policies::Create::epff; -Policy::EPLFS::Create Policies::Create::eplfs; -Policy::EPLUS::Create Policies::Create::eplus; -Policy::EPMFS::Create Policies::Create::epmfs; -Policy::EPPFRD::Create Policies::Create::eppfrd; -Policy::EPRand::Create Policies::Create::eprand; -Policy::ERoFS::Create Policies::Create::erofs; -Policy::FF::Create Policies::Create::ff; -Policy::LFS::Create Policies::Create::lfs; -Policy::LUS::Create Policies::Create::lus; -Policy::MFS::Create Policies::Create::mfs; -Policy::MSPLFS::Create Policies::Create::msplfs; -Policy::MSPLUS::Create Policies::Create::msplus; -Policy::MSPMFS::Create Policies::Create::mspmfs; -Policy::MSPPFRD::Create Policies::Create::msppfrd; -Policy::Newest::Create Policies::Create::newest; -Policy::PFRD::Create Policies::Create::pfrd; -Policy::Rand::Create Policies::Create::rand; - -Policy::All::Search Policies::Search::all; -Policy::EPAll::Search Policies::Search::epall; -Policy::EPFF::Search Policies::Search::epff; -Policy::EPLFS::Search Policies::Search::eplfs; -Policy::EPLUS::Search Policies::Search::eplus; -Policy::EPMFS::Search Policies::Search::epmfs; -Policy::EPPFRD::Search Policies::Search::eppfrd; -Policy::EPRand::Search Policies::Search::eprand; -Policy::ERoFS::Search Policies::Search::erofs; -Policy::FF::Search Policies::Search::ff; -Policy::LFS::Search Policies::Search::lfs; -Policy::LUS::Search Policies::Search::lus; -Policy::MFS::Search Policies::Search::mfs; -Policy::MSPLFS::Search Policies::Search::msplfs; -Policy::MSPLUS::Search Policies::Search::msplus; -Policy::MSPMFS::Search Policies::Search::mspmfs; -Policy::MSPPFRD::Search Policies::Search::msppfrd; -Policy::Newest::Search Policies::Search::newest; -Policy::PFRD::Search Policies::Search::pfrd; -Policy::Rand::Search Policies::Search::rand; diff --git a/src/policies.hpp b/src/policies.hpp deleted file mode 100644 index 65d7f7a0..00000000 --- a/src/policies.hpp +++ /dev/null @@ -1,121 +0,0 @@ -/* - ISC License - - Copyright (c) 2020, Antonio SJ Musumeci - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#pragma once - -#include "policy_all.hpp" -#include "policy_epall.hpp" -#include "policy_epff.hpp" -#include "policy_eplfs.hpp" -#include "policy_eplus.hpp" -#include "policy_epmfs.hpp" -#include "policy_eppfrd.hpp" -#include "policy_eprand.hpp" -#include "policy_erofs.hpp" -#include "policy_ff.hpp" -#include "policy_lfs.hpp" -#include "policy_lus.hpp" -#include "policy_mfs.hpp" -#include "policy_msplfs.hpp" -#include "policy_msplus.hpp" -#include "policy_mspmfs.hpp" -#include "policy_msppfrd.hpp" -#include "policy_newest.hpp" -#include "policy_pfrd.hpp" -#include "policy_rand.hpp" - -struct Policies -{ - struct Action - { - static Policy::ActionImpl *find(const std::string &name); - - static Policy::All::Action all; - static Policy::EPAll::Action epall; - static Policy::EPFF::Action epff; - static Policy::EPLFS::Action eplfs; - static Policy::EPLUS::Action eplus; - static Policy::EPMFS::Action epmfs; - static Policy::EPPFRD::Action eppfrd; - static Policy::EPRand::Action eprand; - static Policy::ERoFS::Action erofs; - static Policy::FF::Action ff; - static Policy::LFS::Action lfs; - static Policy::LUS::Action lus; - static Policy::MFS::Action mfs; - static Policy::MSPLFS::Action msplfs; - static Policy::MSPLUS::Action msplus; - static Policy::MSPMFS::Action mspmfs; - static Policy::MSPPFRD::Action msppfrd; - static Policy::Newest::Action newest; - static Policy::PFRD::Action pfrd; - static Policy::Rand::Action rand; - }; - - struct Create - { - static Policy::CreateImpl *find(const std::string &name); - - static Policy::All::Create all; - static Policy::EPAll::Create epall; - static Policy::EPFF::Create epff; - static Policy::EPLFS::Create eplfs; - static Policy::EPLUS::Create eplus; - static Policy::EPMFS::Create epmfs; - static Policy::EPPFRD::Create eppfrd; - static Policy::EPRand::Create eprand; - static Policy::ERoFS::Create erofs; - static Policy::FF::Create ff; - static Policy::LFS::Create lfs; - static Policy::LUS::Create lus; - static Policy::MFS::Create mfs; - static Policy::MSPLFS::Create msplfs; - static Policy::MSPLUS::Create msplus; - static Policy::MSPMFS::Create mspmfs; - static Policy::MSPPFRD::Create msppfrd; - static Policy::Newest::Create newest; - static Policy::PFRD::Create pfrd; - static Policy::Rand::Create rand; - }; - - struct Search - { - static Policy::SearchImpl *find(const std::string &name); - - static Policy::All::Search all; - static Policy::EPAll::Search epall; - static Policy::EPFF::Search epff; - static Policy::EPLFS::Search eplfs; - static Policy::EPLUS::Search eplus; - static Policy::EPMFS::Search epmfs; - static Policy::EPPFRD::Search eppfrd; - static Policy::EPRand::Search eprand; - static Policy::ERoFS::Search erofs; - static Policy::FF::Search ff; - static Policy::LFS::Search lfs; - static Policy::LUS::Search lus; - static Policy::MFS::Search mfs; - static Policy::MSPLFS::Search msplfs; - static Policy::MSPLUS::Search msplus; - static Policy::MSPMFS::Search mspmfs; - static Policy::MSPPFRD::Search msppfrd; - static Policy::Newest::Search newest; - static Policy::PFRD::Search pfrd; - static Policy::Rand::Search rand; - }; -};