diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2017-10-30 21:23:57 +0000 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2017-12-16 20:51:55 +0000 | 
| commit | 7e7aac708484428fe03a1f01a9a7245d680b2c41 (patch) | |
| tree | f6a61c0ce1009b4cf6e4ea85dfb305965b7dc5ae | |
| parent | Use std::shared_ptr and variadic calls to make_shared in fuse components (diff) | |
| download | netfs-7e7aac708484428fe03a1f01a9a7245d680b2c41.tar.bz2 netfs-7e7aac708484428fe03a1f01a9a7245d680b2c41.tar.xz netfs-7e7aac708484428fe03a1f01a9a7245d680b2c41.zip  | |
Use std::shared_ptr and variadic calls to make_shared in shared components
| -rw-r--r-- | netfs/lib/entCache.cpp | 12 | ||||
| -rw-r--r-- | netfs/lib/entCache.h | 10 | 
2 files changed, 10 insertions, 12 deletions
diff --git a/netfs/lib/entCache.cpp b/netfs/lib/entCache.cpp index 6699a4b..fbdba3e 100644 --- a/netfs/lib/entCache.cpp +++ b/netfs/lib/entCache.cpp @@ -84,7 +84,7 @@ EntCache<User>::fillCache() const  	char buf[BUFLEN];  	struct passwd pwbuf, * pwp;  	while (getpwent_r(&pwbuf, buf, BUFLEN, &pwp) == 0) { -		idcache.insert(new User(pwp->pw_uid, pwp->pw_name, pwp->pw_gid)); +		idcache.insert(std::make_shared<User>(pwp->pw_uid, pwp->pw_name, pwp->pw_gid));  	}  	endpwent();  	time(&fillTime); @@ -107,7 +107,7 @@ EntCache<Group>::fillCache() const  	struct group grpbuf, * grp;  	EntCache<User> instance;  	while (getgrent_r(&grpbuf, buf, BUFLEN, &grp) == 0) { -		auto g = new Group(grp->gr_gid, grp->gr_name); +		auto g = std::make_shared<Group>(grp->gr_gid, grp->gr_name);  		for (auto member = grp->gr_mem; *member; member++) {  			try {  				g->members.insert(instance.getEntry((const name_t &)*member)->id); @@ -129,15 +129,15 @@ DLL_PUBLIC Group::hasMember(uid_t u) const  template DLL_PUBLIC EntCache<User>::EntCache();  template DLL_PUBLIC EntCache<User>::~EntCache(); -template IceUtil::Handle<User> DLL_PUBLIC EntCache<User>::getEntry<std::string>(const std::string &) const; -template IceUtil::Handle<User> DLL_PUBLIC EntCache<User>::getEntry<uid_t>(const uid_t &) const; +template std::shared_ptr<User> DLL_PUBLIC EntCache<User>::getEntry<std::string>(const std::string &) const; +template std::shared_ptr<User> DLL_PUBLIC EntCache<User>::getEntry<uid_t>(const uid_t &) const;  template DLL_PUBLIC void EntCache<User>::getName(const gid_t &, std::string *) const;  template DLL_PUBLIC void EntCache<User>::getID(const std::string &, gid_t *) const;  template DLL_PUBLIC EntCache<Group>::EntCache();  template DLL_PUBLIC EntCache<Group>::~EntCache(); -template IceUtil::Handle<Group> DLL_PUBLIC EntCache<Group>::getEntry<std::string>(const std::string &) const; -template IceUtil::Handle<Group> DLL_PUBLIC EntCache<Group>::getEntry<gid_t>(const gid_t &) const; +template std::shared_ptr<Group> DLL_PUBLIC EntCache<Group>::getEntry<std::string>(const std::string &) const; +template std::shared_ptr<Group> DLL_PUBLIC EntCache<Group>::getEntry<gid_t>(const gid_t &) const;  template DLL_PUBLIC void EntCache<Group>::getName(const gid_t &, std::string *) const;  template DLL_PUBLIC void EntCache<Group>::getID(const std::string &, gid_t *) const; diff --git a/netfs/lib/entCache.h b/netfs/lib/entCache.h index 7e82171..1ded6ee 100644 --- a/netfs/lib/entCache.h +++ b/netfs/lib/entCache.h @@ -3,15 +3,13 @@  #include <string>  #include <set> -#include <IceUtil/Shared.h> -#include <IceUtil/Handle.h>  #include <boost/multi_index_container.hpp>  #include <boost/multi_index/member.hpp>  #include <boost/multi_index/ordered_index.hpp>  #include <boost/thread/shared_mutex.hpp>  #include <entryResolver.h> -class User : public IceUtil::Shared { +class User {  	public:  		User(uid_t, const std::string &, gid_t);  		uid_t id; @@ -19,7 +17,7 @@ class User : public IceUtil::Shared {  		gid_t group;  }; -class Group : public IceUtil::Shared { +class Group {  	public:  		Group(gid_t, const std::string &); @@ -35,7 +33,7 @@ class EntCache : public EntryResolver<decltype(entry_t::id)> {  	public:  		typedef decltype(entry_t::id) id_t;  		typedef decltype(entry_t::name) name_t; -		typedef IceUtil::Handle<entry_t> entry_ptr; +		typedef std::shared_ptr<entry_t> entry_ptr;  		EntCache();  		virtual ~EntCache(); @@ -50,7 +48,7 @@ class EntCache : public EntryResolver<decltype(entry_t::id)> {  		template<class key_t>  		entry_ptr getEntryNoFill(const key_t &) const; -		typedef boost::multi_index::multi_index_container<IceUtil::Handle<entry_t>, +		typedef boost::multi_index::multi_index_container<std::shared_ptr<entry_t>,  						boost::multi_index::indexed_by<  						boost::multi_index::ordered_unique<  							boost::multi_index::tag<id_t>, BOOST_MULTI_INDEX_MEMBER(entry_t, const id_t, id)>,  | 
