17 #ifndef IOX_POSH_MEPOO_SHARED_POINTER_HPP
18 #define IOX_POSH_MEPOO_SHARED_POINTER_HPP
20 #include "iceoryx_posh/internal/mepoo/shared_chunk.hpp"
21 #include "iceoryx_posh/mepoo/chunk_header.hpp"
22 #include "iceoryx_utils/design_pattern/creation.hpp"
28 enum class SharedPointerError
46 class SharedPointer :
public DesignPattern::Creation<SharedPointer<T>, SharedPointerError>
49 using CreationPattern_t = DesignPattern::Creation<SharedPointer<T>, SharedPointerError>;
60 const T* get()
const noexcept;
62 T* operator->() noexcept;
63 const T* operator->()
const noexcept;
65 T& operator*() noexcept;
66 const T& operator*()
const noexcept;
68 explicit operator bool()
const noexcept;
70 friend class DesignPattern::Creation<
SharedPointer<T>, SharedPointerError>;
73 template <
typename... Targs>
76 void deleteManagedObjectIfNecessary() noexcept;
83 #include "iceoryx_posh/internal/mepoo/shared_pointer.inl"
WARNING: SharedChunk is not thread safe! Don't share SharedChunk objects between threads!...
Definition: shared_chunk.hpp:35
DesignPattern::Creation offers us a create method which forwards the arguments to the constructor....
Definition: shared_pointer.hpp:47
Definition: service_description.hpp:29