From a615da850d89ecd785a6a43e07527932637f8a2f Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 20 Sep 2020 16:10:50 +0100 Subject: Common base for mappers --- netfs/fuse/fuseMappersImpl.cpp | 23 ----------------------- netfs/fuse/fuseMappersImpl.h | 21 +++++---------------- netfs/lib/baseMapper.cpp | 13 +++++++++++++ netfs/lib/baseMapper.h | 23 +++++++++++++++++++++++ netfs/lib/defaultMapper.cpp | 13 ------------- netfs/lib/defaultMapper.h | 11 +++-------- 6 files changed, 44 insertions(+), 60 deletions(-) create mode 100644 netfs/lib/baseMapper.cpp create mode 100644 netfs/lib/baseMapper.h diff --git a/netfs/fuse/fuseMappersImpl.cpp b/netfs/fuse/fuseMappersImpl.cpp index 4aa2789..5bde752 100644 --- a/netfs/fuse/fuseMappersImpl.cpp +++ b/netfs/fuse/fuseMappersImpl.cpp @@ -5,18 +5,6 @@ namespace NetFS::Client { constexpr int MASK_EVERYTHING = ~0; static_assert(MASK_EVERYTHING == static_cast(0xFFFFFFFF)); - HideUnknownMapperImpl::HideUnknownMapperImpl() : HideUnknownMapperImpl(std::make_shared()) { } - - HideUnknownMapperImpl::HideUnknownMapperImpl(EntryResolverPtr u) : - HideUnknownMapperImpl(std::move(u), std::make_shared(u)) - { - } - - HideUnknownMapperImpl::HideUnknownMapperImpl(EntryResolverPtr u, EntryResolverPtr g) : - users(std::move(u)), groups(std::move(g)) - { - } - Mapping::FileSystem HideUnknownMapperImpl::mapTransport(const std::string & un, const std::string & gn) { @@ -38,17 +26,6 @@ namespace NetFS::Client { } return {u->name, g->name, 0}; } - MaskUnknownMapperImpl::MaskUnknownMapperImpl() : MaskUnknownMapperImpl(std::make_shared()) { } - - MaskUnknownMapperImpl::MaskUnknownMapperImpl(EntryResolverPtr u) : - MaskUnknownMapperImpl(std::move(u), std::make_shared(u)) - { - } - - MaskUnknownMapperImpl::MaskUnknownMapperImpl(EntryResolverPtr u, EntryResolverPtr g) : - users(std::move(u)), groups(std::move(g)) - { - } Mapping::FileSystem MaskUnknownMapperImpl::mapTransport(const std::string & un, const std::string & gn) diff --git a/netfs/fuse/fuseMappersImpl.h b/netfs/fuse/fuseMappersImpl.h index 41d78b8..2bcf579 100644 --- a/netfs/fuse/fuseMappersImpl.h +++ b/netfs/fuse/fuseMappersImpl.h @@ -1,6 +1,7 @@ #ifndef NETFS_MAPPING_CLIENTIMPL_H #define NETFS_MAPPING_CLIENTIMPL_H +#include "baseMapper.h" #include "entries.h" #include "entryResolver.h" #include @@ -8,32 +9,20 @@ namespace NetFS { namespace Client { - class DLL_PUBLIC HideUnknownMapperImpl : public HideUnknownMapper { + class DLL_PUBLIC HideUnknownMapperImpl : public HideUnknownMapper, Mapping::BaseMapper { public: - HideUnknownMapperImpl(); - HideUnknownMapperImpl(EntryResolverPtr u); - HideUnknownMapperImpl(EntryResolverPtr u, EntryResolverPtr g); + using BaseMapper::BaseMapper; Mapping::Transport mapFileSystem(int uid, int gid) override; Mapping::FileSystem mapTransport(const std::string & un, const std::string & gn) override; - - protected: - EntryResolverPtr users; - EntryResolverPtr groups; }; - class DLL_PUBLIC MaskUnknownMapperImpl : public MaskUnknownMapper { + class DLL_PUBLIC MaskUnknownMapperImpl : public MaskUnknownMapper, Mapping::BaseMapper { public: - MaskUnknownMapperImpl(); - MaskUnknownMapperImpl(EntryResolverPtr u); - MaskUnknownMapperImpl(EntryResolverPtr u, EntryResolverPtr g); + using BaseMapper::BaseMapper; Mapping::Transport mapFileSystem(int uid, int gid) override; Mapping::FileSystem mapTransport(const std::string & un, const std::string & gn) override; - - protected: - EntryResolverPtr users; - EntryResolverPtr groups; }; } } diff --git a/netfs/lib/baseMapper.cpp b/netfs/lib/baseMapper.cpp new file mode 100644 index 0000000..c3518e4 --- /dev/null +++ b/netfs/lib/baseMapper.cpp @@ -0,0 +1,13 @@ +#include "baseMapper.h" +#include "entCache.h" + +namespace NetFS::Mapping { + BaseMapper::BaseMapper() : BaseMapper(std::make_shared()) { } + + BaseMapper::BaseMapper(EntryResolverPtr u) : BaseMapper(std::move(u), std::make_shared(u)) { } + + BaseMapper::BaseMapper(EntryResolverPtr u, EntryResolverPtr g) : + users(std::move(u)), groups(std::move(g)) + { + } +} diff --git a/netfs/lib/baseMapper.h b/netfs/lib/baseMapper.h new file mode 100644 index 0000000..c3bd46e --- /dev/null +++ b/netfs/lib/baseMapper.h @@ -0,0 +1,23 @@ +#ifndef NETFS_MAPPING_BASEIMPL_H +#define NETFS_MAPPING_BASEIMPL_H + +#include "entries.h" +#include "entryResolver.h" +#include + +namespace NetFS { + namespace Mapping { + class BaseMapper { + public: + BaseMapper(); + BaseMapper(EntryResolverPtr users); + BaseMapper(EntryResolverPtr users, EntryResolverPtr groups); + + protected: + EntryResolverPtr users; + EntryResolverPtr groups; + }; + } +} + +#endif diff --git a/netfs/lib/defaultMapper.cpp b/netfs/lib/defaultMapper.cpp index d20f7ba..c57f340 100644 --- a/netfs/lib/defaultMapper.cpp +++ b/netfs/lib/defaultMapper.cpp @@ -1,20 +1,7 @@ #include "defaultMapper.h" -#include "entCache.h" #include namespace NetFS::Mapping { - DefaultMapper::DefaultMapper() : DefaultMapper(std::make_shared()) { } - - DefaultMapper::DefaultMapper(EntryResolverPtr u) : - DefaultMapper(std::move(u), std::make_shared(u)) - { - } - - DefaultMapper::DefaultMapper(EntryResolverPtr u, EntryResolverPtr g) : - users(std::move(u)), groups(std::move(g)) - { - } - FileSystem DefaultMapper::mapTransport(const std::string & un, const std::string & gn) { diff --git a/netfs/lib/defaultMapper.h b/netfs/lib/defaultMapper.h index 5a5c335..9f063a8 100644 --- a/netfs/lib/defaultMapper.h +++ b/netfs/lib/defaultMapper.h @@ -1,24 +1,19 @@ #ifndef NETFS_MAPPING_DEFAULTIMPL_H #define NETFS_MAPPING_DEFAULTIMPL_H +#include "baseMapper.h" #include "entries.h" #include "entryResolver.h" #include namespace NetFS { namespace Mapping { - class DefaultMapper : public Mapper { + class DefaultMapper : public Mapper, BaseMapper { public: - DefaultMapper(); - DefaultMapper(EntryResolverPtr users); - DefaultMapper(EntryResolverPtr users, EntryResolverPtr groups); + using BaseMapper::BaseMapper; Transport mapFileSystem(int uid, int gid) override; FileSystem mapTransport(const std::string & un, const std::string & gn) override; - - protected: - EntryResolverPtr users; - EntryResolverPtr groups; }; } } -- cgit v1.2.3