Repository :
http://git.fedorahosted.org/cgit/firewalld-recode.git
On branch : master
---------------------------------------------------------------
commit 19908186782f479bfa276151420fb1f54235e7c4
Author: Daniel Kopecek <dkopecek(a)redhat.com>
Date: Tue Sep 23 13:02:11 2014 +0200
Added smart pointer types
---------------------------------------------------------------
src/Common/Types.hpp | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/Common/Types.hpp b/src/Common/Types.hpp
index b75cd59..b007503 100644
--- a/src/Common/Types.hpp
+++ b/src/Common/Types.hpp
@@ -24,6 +24,7 @@
#include <vector>
#include <list>
#include <map>
+#include <memory>
namespace firewalld
{
@@ -49,6 +50,25 @@ namespace firewalld
template<typename value_type>
using UStringKeyMap = std::map<UString, value_type>;
+ // Smart Pointers
+ template<typename pointer_type>
+ using Pointer = std::shared_ptr<pointer_type>;
+
+ template<typename pointer_type>
+ using UniquePointer = std::unique_ptr<pointer_type>;
+
+ template<typename pointer_type>
+ using PointerVector = std::vector<Pointer<pointer_type> >;
+
+ template<typename key_type, typename pointer_type>
+ using PointerMap = std::map<key_type, Pointer<pointer_type> >;
+
+ template<typename pointer_type, typename... Args>
+ static inline Pointer<pointer_type> makePointer(Args&&... args)
+ {
+ return std::make_shared<pointer_type>(std::forward<Args>(args)...);
+ }
+
} /* namespace firewalld */
#endif /* _FIREWALLD_TYPES_H_ */