mirror of
https://github.com/trapexit/mergerfs.git
synced 2024-11-22 05:27:28 +08:00
checkpoint
This commit is contained in:
parent
469492800c
commit
5c41e39874
|
@ -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");
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
/*
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2020, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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 <string>
|
||||
|
||||
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<std::string> rv;
|
||||
|
||||
for(auto func : funcs)
|
||||
rv.insert(func->to_string());
|
||||
|
||||
return str::join(rv,',');
|
||||
}
|
107
src/category.hpp
107
src/category.hpp
|
@ -1,107 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2020, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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 <string>
|
||||
|
||||
namespace Category
|
||||
{
|
||||
class Base : public ToFromString
|
||||
{
|
||||
public:
|
||||
int from_string(const std::string &s) final;
|
||||
std::string to_string() const final;
|
||||
|
||||
protected:
|
||||
std::vector<ToFromString*> 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;
|
||||
};
|
|
@ -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_)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
62
src/func.cpp
62
src/func.cpp
|
@ -1,62 +0,0 @@
|
|||
/*
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2019, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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();
|
||||
}
|
185
src/func.hpp
185
src/func.hpp
|
@ -1,185 +0,0 @@
|
|||
/*
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2019, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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 <string>
|
||||
|
||||
|
||||
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
|
||||
{
|
||||
};
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
/*
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2019, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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;
|
||||
};
|
|
@ -35,6 +35,6 @@ namespace FUSE::LINK::POLICY
|
|||
const gfs::path &newpath) final;
|
||||
|
||||
private:
|
||||
Branches2 _branches;
|
||||
Branches _branches;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -37,6 +37,6 @@ namespace FUSE::RENAME::POLICY
|
|||
const gfs::path &newpath) final;
|
||||
|
||||
private:
|
||||
Branches2 _branches;
|
||||
Branches _branches;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -37,6 +37,6 @@ namespace FUSE::STATFS::POLICY
|
|||
struct statvfs *fsstat) final;
|
||||
|
||||
private:
|
||||
Branches2 _branches;
|
||||
Branches _branches;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -37,6 +37,6 @@ namespace FUSE::STATFS::POLICY
|
|||
struct statvfs *fsstat) final;
|
||||
|
||||
private:
|
||||
Branches2 _branches;
|
||||
Branches _branches;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
132
src/policies.cpp
132
src/policies.cpp
|
@ -1,132 +0,0 @@
|
|||
/*
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2020, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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;
|
121
src/policies.hpp
121
src/policies.hpp
|
@ -1,121 +0,0 @@
|
|||
/*
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2020, Antonio SJ Musumeci <trapexit@spawn.link>
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue
Block a user