OnixS C++ ICE Binary Order Entry Handler 1.1.1
API Documentation
Loading...
Searching...
No Matches
MessagePtr< Message > Class Template Reference

Public Types

using Container = std::shared_ptr<UInt8>

Public Member Functions

 MessagePtr (Container &&, MessageSize)
template<class AnotherType>
 MessagePtr (const MessagePtr< AnotherType > &rhs)
template<class AnotherType>
 MessagePtr (MessagePtr< AnotherType > &&rhs)
 MessagePtr ()
 MessagePtr (const MessagePtr &)=default
MessagePtroperator= (const MessagePtr &)=default
 MessagePtr (MessagePtr &&rhs) noexcept
MessagePtroperator= (MessagePtr &&rhs) noexcept
bool valid () const noexcept
void swap (MessagePtr &rhs) noexcept
Message * operator-> () noexcept
const Message * operator-> () const noexcept
Message & operator* () noexcept
const Message & operator* () const noexcept
Message & message () noexcept
const Message & message () const noexcept
 operator Message () noexcept
 operator const Message () const noexcept
UInt8buf () noexcept
void reset ()
std::string toString () const

Friends

template<class T>
class MessagePtr

Detailed Description

template<typename Message>
class OnixS::ICE::BOE::Testing::MessagePtr< Message >

Definition at line 51 of file MessagePtr.h.

Member Typedef Documentation

◆ Container

template<typename Message>
using Container = std::shared_ptr<UInt8>

Definition at line 54 of file MessagePtr.h.

Constructor & Destructor Documentation

◆ MessagePtr() [1/6]

template<typename Message>
MessagePtr ( Container && ,
MessageSize  )

Creates from the given memory block.

◆ MessagePtr() [2/6]

template<typename Message>
template<class AnotherType>
MessagePtr ( const MessagePtr< AnotherType > & rhs)
inlineexplicit

Create from another type.

Definition at line 62 of file MessagePtr.h.

63 : size_(rhs.size_)
64 , container_(rhs.container_)
65 , message_()
66 {
67 fromAnotherType(rhs);
68 }

◆ MessagePtr() [3/6]

template<typename Message>
template<class AnotherType>
MessagePtr ( MessagePtr< AnotherType > && rhs)
inlineexplicit

Creates from the given type.

Definition at line 73 of file MessagePtr.h.

74 : size_(rhs.size_)
75 , container_(std::move(rhs.container_))
76 , message_()
77 {
78 fromAnotherType(rhs);
79 }

◆ MessagePtr() [4/6]

template<typename Message>
MessagePtr ( )
inline

Creates an empty message container.

Definition at line 82 of file MessagePtr.h.

83 : size_(0)
84 , container_()
85 , message_()
86 {
87 }

◆ MessagePtr() [5/6]

template<typename Message>
MessagePtr ( const MessagePtr< Message > & )
default

◆ MessagePtr() [6/6]

template<typename Message>
MessagePtr ( MessagePtr< Message > && rhs)
inlinenoexcept

Definition at line 93 of file MessagePtr.h.

94 {
95 rhs.swap(*this);
96 rhs.reset();
97 }

Member Function Documentation

◆ buf()

template<typename Message>
UInt8 * buf ( )
inlinenoexcept
Returns
the underlying buffer.

Definition at line 178 of file MessagePtr.h.

179 {
180 return container_.get();
181 }

◆ message() [1/2]

template<typename Message>
const Message & message ( ) const
inlinenoexcept
Returns
the underlying message.

Definition at line 159 of file MessagePtr.h.

160 {
161 assert(valid());
162 return message_;
163 }

◆ message() [2/2]

template<typename Message>
Message & message ( )
inlinenoexcept
Returns
the underlying message.

Definition at line 152 of file MessagePtr.h.

153 {
154 assert(valid());
155 return message_;
156 }

◆ operator const Message()

template<typename Message>
operator const Message ( ) const
inlinenoexcept

Definition at line 172 of file MessagePtr.h.

173 {
174 return message();
175 }

◆ operator Message()

template<typename Message>
operator Message ( )
inlinenoexcept

Definition at line 166 of file MessagePtr.h.

167 {
168 return message();
169 }

◆ operator*() [1/2]

template<typename Message>
const Message & operator* ( ) const
inlinenoexcept

Definition at line 146 of file MessagePtr.h.

147 {
148 return message_;
149 }

◆ operator*() [2/2]

template<typename Message>
Message & operator* ( )
inlinenoexcept

Definition at line 140 of file MessagePtr.h.

141 {
142 return message_;
143 }

◆ operator->() [1/2]

template<typename Message>
const Message * operator-> ( ) const
inlinenoexcept

Definition at line 133 of file MessagePtr.h.

134 {
135 assert(valid());
136 return &message_;
137 }

◆ operator->() [2/2]

template<typename Message>
Message * operator-> ( )
inlinenoexcept

Definition at line 126 of file MessagePtr.h.

127 {
128 assert(valid());
129 return &message_;
130 }

◆ operator=() [1/2]

template<typename Message>
MessagePtr & operator= ( const MessagePtr< Message > & )
default

◆ operator=() [2/2]

template<typename Message>
MessagePtr & operator= ( MessagePtr< Message > && rhs)
inlinenoexcept

Definition at line 100 of file MessagePtr.h.

101 {
102 if (&rhs == this)
103 return *this;
104
105 rhs.swap(*this);
106 rhs.reset();
107
108 return *this;
109 }

◆ reset()

template<typename Message>
void reset ( )
inline

Resets the message.

Definition at line 184 of file MessagePtr.h.

185 {
186 size_ = 0;
187 container_.reset();
188 message_ = Message();
189 }

◆ swap()

template<typename Message>
void swap ( MessagePtr< Message > & rhs)
inlinenoexcept

Definition at line 118 of file MessagePtr.h.

119 {
120 std::swap(rhs.size_, size_);
121 std::swap(rhs.container_, container_);
122 std::swap(rhs.message_, message_);
123 }

◆ toString()

template<typename Message>
std::string toString ( ) const
inline
Returns
the human-readable presentation.

Definition at line 192 of file MessagePtr.h.

193 {
194 return message_.toString();
195 }

◆ valid()

template<typename Message>
bool valid ( ) const
inlinenoexcept

Definition at line 112 of file MessagePtr.h.

113 {
114 return isMessageValid(message_);
115 }
bool isMessageValid(const SbeMessage msg) noexcept
Definition MessagePtr.h:38

◆ MessagePtr

template<typename Message>
template<class T>
friend class MessagePtr
friend

Definition at line 249 of file MessagePtr.h.