EventAnalysis  1.0.0
ObjectWrapper.hpp
Go to the documentation of this file.
1 /*
2  * ObjectWrapper.hpp
3  *
4  * Created on: 04 Dec 2017
5  * Author: Nicola Mori
6  */
7 
8 #ifndef OBJECTWRAPPER_HPP_
9 #define OBJECTWRAPPER_HPP_
10 
11 namespace EA {
12 
13 template <typename DataType> ObjectWrapper::ObjectWrapper(observer_ptr<DataType> ptr) {
14  content = std::make_unique<ObjectWrapperT<DataType>>(ptr);
15 }
16 
17 template <typename DataType> ObjectWrapper::ObjectWrapper(std::shared_ptr<DataType> ptr) {
18  content = std::make_unique<ObjectWrapperT<DataType>>(ptr);
19 }
20 
21 template <typename DataType> ObjectWrapper::ObjectWrapper(std::unique_ptr<DataType> ptr) {
22  content = std::make_unique<ObjectWrapperT<DataType>>(std::move(ptr));
23 }
24 
25 template <typename DataType> ObjectWrapper &ObjectWrapper::operator=(DataType *rhs) {
26  content = std::make_unique<ObjectWrapperT<DataType>>(rhs);
27  return *this;
28 }
29 
30 template <typename DataType> ObjectWrapper &ObjectWrapper::operator=(DataType &rhs) {
31  content = std::make_unique<ObjectWrapperT<DataType>>(&rhs);
32  return *this;
33 }
34 
35 template <typename DataType> ObjectWrapper &ObjectWrapper::operator=(std::shared_ptr<DataType> rhs) {
36  content = std::make_unique<ObjectWrapperT<DataType>>(rhs);
37  return *this;
38 }
39 
40 template <typename DataType> ObjectWrapper &ObjectWrapper::operator=(std::unique_ptr<DataType> rhs) {
41  content = std::make_unique<ObjectWrapperT<DataType>>(std::move(rhs));
42  return *this;
43 }
44 
45 } // namespace EA
46 
47 #endif /* OBJECTWRAPPER_HPP_ */
ObjectWrapper & operator=(DataType *rhs)
Assignment operator.
Definition: ObjectWrapper.hpp:25
ObjectWrapper()
Default constructor.
Definition: ObjectWrapper.cpp:12
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
Generic wrapper class.
Definition: ObjectWrapper.h:28
std::unique_ptr< ObjectWrapperBase > content
Definition: ObjectWrapper.h:215