8 #ifndef OBJECTWRAPPERT_H_ 9 #define OBJECTWRAPPERT_H_ 74 const std::type_info &
GetObjType() {
return typeid(DataType); }
111 bool WrapObject(
void *address,
const std::type_info &type,
bool own);
135 throw std::logic_error(
"Call to ObjectWrapperT::CloneObject for non-copy-constructible class");
157 template <
typename DataType>
158 class ObjectWrapperT<DataType, typename std::enable_if<smart_is_copy_constructible<DataType>::value>::type>
std::unique_ptr< ObjectWrapperBase > CloneWrapper()
Clones the wrapper.
Definition: ObjectWrapperT.h:180
ObjectWrapperTImpl(observer_ptr< DataType > dataObjPtr)
Constructor.
Definition: ObjectWrapperT.hpp:17
void * GetObjAddress()
Getter for raw pointer to the wrapped object.
Definition: ObjectWrapperT.h:97
T * get() const
Getter for pointed address.
Definition: ObserverPtr.h:155
bool IsPolymorphic()
Test for polymorphic wrapped object.
Definition: ObjectWrapperT.hpp:37
Wrapper class for non-copy-constructible objects.
Definition: ObjectWrapperT.h:125
const std::type_info & GetObjType()
Returns the type of the wrapped object.
Definition: ObjectWrapperT.h:74
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
void WrapNothing()
Remove the wrapped object.
Definition: ObjectWrapperT.h:82
std::shared_ptr< DataType > _dataObjSharedPtr
Definition: ObjectWrapperT.h:116
std::unique_ptr< ObjectWrapperBase > CloneObject()
Throws an exception since the wrapped object is not copy-constructible.
Definition: ObjectWrapperT.h:134
virtual std::unique_ptr< ObjectWrapperBase > CloneObject()=0
Clones the wrapped object and wraps it.
Mother class for data wrapper template class.
Definition: ObjectWrapperBase.h:22
observer_ptr< DataType > _dataObjPtr
Definition: ObjectWrapperT.h:115
bool WrapObject(void *address, const std::type_info &type, bool own)
Wrap the object at the given address.
Definition: ObjectWrapperT.hpp:51
observer_ptr< DataType > GetObj()
Data object getter method.
Definition: ObjectWrapperT.hpp:35
bool _isPolymorphic
Definition: ObjectWrapperT.h:114
std::unique_ptr< ObjectWrapperBase > CloneWrapper()
Clones the wrapper.
Definition: ObjectWrapperT.h:144
bool WrapsSomething()
Checks if the wrapper wraps something.
Definition: ObjectWrapperT.h:91
Wrapper for data objects.
Definition: ObjectWrapperT.h:26