OpenDDS  Snapshot(2023/04/07-19:43)
Public Types | Public Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::Sample_T< NativeType > Class Template Reference

#include <Sample.h>

Inheritance diagram for OpenDDS::DCPS::Sample_T< NativeType >:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::Sample_T< NativeType >:
Collaboration graph
[legend]

Public Types

typedef DDSTraits< NativeType > TraitsType
 
typedef MarshalTraits< NativeType > MarshalTraitsType
 
typedef RcHandle< Sample_T< NativeType > > Rch
 
typedef DCPS::KeyOnly< const NativeType > KeyOnlyType
 
typedef DCPS::KeyOnly< NativeType > MutableKeyOnlyType
 
typedef XTypes::DynamicDataAdapter< NativeType > DynamicDataImpl
 
- Public Types inherited from OpenDDS::DCPS::Sample
enum  Mutability { Mutable, ReadOnly }
 
enum  Extent { Full, KeyOnly, NestedKeyOnly }
 

Public Member Functions

 Sample_T (const NativeType &data, Extent extent=Full)
 
 Sample_T (const NativeType *data, Extent extent=Full)
 
 Sample_T (NativeType &data, Extent extent=Full)
 
 Sample_T (NativeType *data, Extent extent=Full)
 
virtual ~Sample_T ()
 
const NativeType & data () const
 
NativeType & mutable_data () const
 
KeyOnlyType key_only_data () const
 
MutableKeyOnlyType mutable_key_only_data () const
 
bool serialize (Serializer &ser) const
 
bool deserialize (Serializer &ser)
 
size_t serialized_size (const Encoding &enc) const
 
bool compare (const Sample &other) const
 
bool to_message_block (ACE_Message_Block &mb) const
 
bool from_message_block (const ACE_Message_Block &mb)
 
Sample_rch copy (Mutability mutability, Extent extent) const
 
DDS::DynamicData_var get_dynamic_data (DDS::DynamicType_ptr type) const
 
const void * native_data () const
 
bool eval (FilterEvaluator &evaluator, const DDS::StringSeq &params) const
 
- Public Member Functions inherited from OpenDDS::DCPS::Sample
 Sample ()
 
 Sample (Mutability mutability, Extent extent)
 
virtual ~Sample ()
 
bool read_only () const
 
bool key_only () const
 
Sample_rch copy (Mutability mutability) const
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Attributes

const bool owns_data_
 
const NativeType * data_
 
DDS::DynamicData_var dynamic_data_
 

Additional Inherited Members

- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 
- Protected Attributes inherited from OpenDDS::DCPS::Sample
Mutability mutability_
 
Extent extent_
 

Detailed Description

template<typename NativeType>
class OpenDDS::DCPS::Sample_T< NativeType >

Definition at line 105 of file Sample.h.

Member Typedef Documentation

◆ DynamicDataImpl

template<typename NativeType>
typedef XTypes::DynamicDataAdapter<NativeType> OpenDDS::DCPS::Sample_T< NativeType >::DynamicDataImpl

Definition at line 113 of file Sample.h.

◆ KeyOnlyType

template<typename NativeType>
typedef DCPS::KeyOnly<const NativeType> OpenDDS::DCPS::Sample_T< NativeType >::KeyOnlyType

Definition at line 110 of file Sample.h.

◆ MarshalTraitsType

template<typename NativeType>
typedef MarshalTraits<NativeType> OpenDDS::DCPS::Sample_T< NativeType >::MarshalTraitsType

Definition at line 108 of file Sample.h.

◆ MutableKeyOnlyType

template<typename NativeType>
typedef DCPS::KeyOnly<NativeType> OpenDDS::DCPS::Sample_T< NativeType >::MutableKeyOnlyType

Definition at line 111 of file Sample.h.

◆ Rch

template<typename NativeType>
typedef RcHandle<Sample_T<NativeType> > OpenDDS::DCPS::Sample_T< NativeType >::Rch

Definition at line 109 of file Sample.h.

◆ TraitsType

template<typename NativeType>
typedef DDSTraits<NativeType> OpenDDS::DCPS::Sample_T< NativeType >::TraitsType

Definition at line 107 of file Sample.h.

Constructor & Destructor Documentation

◆ Sample_T() [1/4]

template<typename NativeType>
OpenDDS::DCPS::Sample_T< NativeType >::Sample_T ( const NativeType &  data,
Extent  extent = Full 
)
inlineexplicit

Definition at line 116 of file Sample.h.

References if().

117  : Sample(ReadOnly, extent)
118  , owns_data_(false)
119  , data_(&data)
120 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
121  , dynamic_data_(0)
122 #endif
123  {
124  }
const bool owns_data_
Definition: Sample.h:266
const NativeType * data_
Definition: Sample.h:267
const NativeType & data() const
Definition: Sample.h:163
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:269

◆ Sample_T() [2/4]

template<typename NativeType>
OpenDDS::DCPS::Sample_T< NativeType >::Sample_T ( const NativeType *  data,
Extent  extent = Full 
)
inlineexplicit

Definition at line 126 of file Sample.h.

References if().

127  : Sample(ReadOnly, extent)
128  , owns_data_(true)
129  , data_(data)
130 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
131  , dynamic_data_(0)
132 #endif
133  {
134  }
const bool owns_data_
Definition: Sample.h:266
const NativeType * data_
Definition: Sample.h:267
const NativeType & data() const
Definition: Sample.h:163
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:269

◆ Sample_T() [3/4]

template<typename NativeType>
OpenDDS::DCPS::Sample_T< NativeType >::Sample_T ( NativeType &  data,
Extent  extent = Full 
)
inlineexplicit

Definition at line 136 of file Sample.h.

References if().

137  : Sample(Mutable, extent)
138  , owns_data_(false)
139  , data_(&data)
140 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
141  , dynamic_data_(0)
142 #endif
143  {
144  }
const bool owns_data_
Definition: Sample.h:266
const NativeType * data_
Definition: Sample.h:267
const NativeType & data() const
Definition: Sample.h:163
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:269

◆ Sample_T() [4/4]

template<typename NativeType>
OpenDDS::DCPS::Sample_T< NativeType >::Sample_T ( NativeType *  data,
Extent  extent = Full 
)
inlineexplicit

Definition at line 146 of file Sample.h.

References if().

147  : Sample(Mutable, extent)
148  , owns_data_(true)
149  , data_(data)
150 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
151  , dynamic_data_(0)
152 #endif
153  {
154  }
const bool owns_data_
Definition: Sample.h:266
const NativeType * data_
Definition: Sample.h:267
const NativeType & data() const
Definition: Sample.h:163
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:269

◆ ~Sample_T()

template<typename NativeType>
virtual OpenDDS::DCPS::Sample_T< NativeType >::~Sample_T ( )
inlinevirtual

Definition at line 156 of file Sample.h.

157  {
158  if (owns_data_) {
159  delete data_;
160  }
161  }
const bool owns_data_
Definition: Sample.h:266
const NativeType * data_
Definition: Sample.h:267

Member Function Documentation

◆ compare()

template<typename NativeType>
bool OpenDDS::DCPS::Sample_T< NativeType >::compare ( const Sample other) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 211 of file Sample.h.

References OpenDDS::DCPS::Sample_T< NativeType >::data_, and OPENDDS_ASSERT.

212  {
213  const Sample_T<NativeType>* const other_same_kind =
214  dynamic_cast<const Sample_T<NativeType>*>(&other);
215  OPENDDS_ASSERT(other_same_kind);
216  return typename TraitsType::LessThanType()(*data_, *other_same_kind->data_);
217  }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
const NativeType * data_
Definition: Sample.h:267

◆ copy()

template<typename NativeType>
Sample_rch OpenDDS::DCPS::Sample_T< NativeType >::copy ( Mutability  mutability,
Extent  extent 
) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 229 of file Sample.h.

References OpenDDS::DCPS::dynamic_rchandle_cast().

230  {
231  NativeType* new_data = new NativeType;
232  *new_data = *data_;
233  return dynamic_rchandle_cast<Sample>(mutability == ReadOnly ?
234  make_rch<Sample_T<NativeType> >(const_cast<const NativeType*>(new_data), extent) :
235  make_rch<Sample_T<NativeType> >(new_data, extent));
236  }
const NativeType * data_
Definition: Sample.h:267
RcHandle< T > dynamic_rchandle_cast(const RcHandle< U > &h)
Definition: RcHandle_T.h:214
RcHandle< T > make_rch()
Definition: RcHandle_T.h:256
Sample_T(const NativeType &data, Extent extent=Full)
Definition: Sample.h:116

◆ data()

template<typename NativeType>
const NativeType& OpenDDS::DCPS::Sample_T< NativeType >::data ( void  ) const
inline

Definition at line 163 of file Sample.h.

164  {
165  return *data_;
166  }
const NativeType * data_
Definition: Sample.h:267

◆ deserialize()

template<typename NativeType>
bool OpenDDS::DCPS::Sample_T< NativeType >::deserialize ( Serializer ser)
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 193 of file Sample.h.

194  {
195  if (key_only()) {
196  return ser >> mutable_key_only_data();
197  } else {
198  return ser >> mutable_data();
199  }
200  }
bool key_only() const
Definition: Sample.h:64
MutableKeyOnlyType mutable_key_only_data() const
Definition: Sample.h:179
NativeType & mutable_data() const
Definition: Sample.h:168

◆ eval()

template<typename NativeType>
bool OpenDDS::DCPS::Sample_T< NativeType >::eval ( FilterEvaluator evaluator,
const DDS::StringSeq params 
) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 259 of file Sample.h.

References OpenDDS::DCPS::FilterEvaluator::eval().

260  {
261  return evaluator.eval(*data_, params);
262  }
const NativeType * data_
Definition: Sample.h:267

◆ from_message_block()

template<typename NativeType>
bool OpenDDS::DCPS::Sample_T< NativeType >::from_message_block ( const ACE_Message_Block mb)
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 224 of file Sample.h.

225  {
226  return MarshalTraitsType::from_message_block(mutable_data(), mb);
227  }
NativeType & mutable_data() const
Definition: Sample.h:168

◆ get_dynamic_data()

template<typename NativeType>
DDS::DynamicData_var OpenDDS::DCPS::Sample_T< NativeType >::get_dynamic_data ( DDS::DynamicType_ptr  type) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 239 of file Sample.h.

240  {
241 # if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
242  if (type && !dynamic_data_) {
243  dynamic_data_ = new DynamicDataImpl(type, getMetaStruct<NativeType>(), *data_);
244  }
245  return dynamic_data_;
246 # else
247  ACE_UNUSED_ARG(type);
248  return 0;
249 # endif
250  }
XTypes::DynamicDataAdapter< NativeType > DynamicDataImpl
Definition: Sample.h:113
const NativeType * data_
Definition: Sample.h:267
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:269

◆ key_only_data()

template<typename NativeType>
KeyOnlyType OpenDDS::DCPS::Sample_T< NativeType >::key_only_data ( ) const
inline

Definition at line 174 of file Sample.h.

175  {
176  return KeyOnlyType(*data_);
177  }
const NativeType * data_
Definition: Sample.h:267
DCPS::KeyOnly< const NativeType > KeyOnlyType
Definition: Sample.h:110

◆ mutable_data()

template<typename NativeType>
NativeType& OpenDDS::DCPS::Sample_T< NativeType >::mutable_data ( ) const
inline

Definition at line 168 of file Sample.h.

References OPENDDS_ASSERT.

169  {
171  return *const_cast<NativeType*>(data_);
172  }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
bool read_only() const
Definition: Sample.h:59
const NativeType * data_
Definition: Sample.h:267

◆ mutable_key_only_data()

template<typename NativeType>
MutableKeyOnlyType OpenDDS::DCPS::Sample_T< NativeType >::mutable_key_only_data ( ) const
inline

Definition at line 179 of file Sample.h.

180  {
182  }
DCPS::KeyOnly< NativeType > MutableKeyOnlyType
Definition: Sample.h:111
NativeType & mutable_data() const
Definition: Sample.h:168

◆ native_data()

template<typename NativeType>
const void* OpenDDS::DCPS::Sample_T< NativeType >::native_data ( ) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 253 of file Sample.h.

254  {
255  return data_;
256  }
const NativeType * data_
Definition: Sample.h:267

◆ serialize()

template<typename NativeType>
bool OpenDDS::DCPS::Sample_T< NativeType >::serialize ( Serializer ser) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 184 of file Sample.h.

185  {
186  if (key_only()) {
187  return ser << key_only_data();
188  } else {
189  return ser << data();
190  }
191  }
bool key_only() const
Definition: Sample.h:64
KeyOnlyType key_only_data() const
Definition: Sample.h:174
const NativeType & data() const
Definition: Sample.h:163

◆ serialized_size()

template<typename NativeType>
size_t OpenDDS::DCPS::Sample_T< NativeType >::serialized_size ( const Encoding enc) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 202 of file Sample.h.

References OpenDDS::DCPS::serialized_size().

203  {
204  if (key_only()) {
206  } else {
207  return OpenDDS::DCPS::serialized_size(enc, data());
208  }
209  }
bool key_only() const
Definition: Sample.h:64
KeyOnlyType key_only_data() const
Definition: Sample.h:174
void serialized_size(const Encoding &encoding, size_t &size, const SequenceNumber &)
const NativeType & data() const
Definition: Sample.h:163

◆ to_message_block()

template<typename NativeType>
bool OpenDDS::DCPS::Sample_T< NativeType >::to_message_block ( ACE_Message_Block mb) const
inlinevirtual

Implements OpenDDS::DCPS::Sample.

Definition at line 219 of file Sample.h.

220  {
221  return MarshalTraitsType::to_message_block(mb, data());
222  }
const NativeType & data() const
Definition: Sample.h:163

Member Data Documentation

◆ data_

template<typename NativeType>
const NativeType* OpenDDS::DCPS::Sample_T< NativeType >::data_
private

Definition at line 267 of file Sample.h.

Referenced by OpenDDS::DCPS::Sample_T< NativeType >::compare().

◆ dynamic_data_

template<typename NativeType>
DDS::DynamicData_var OpenDDS::DCPS::Sample_T< NativeType >::dynamic_data_
mutableprivate

Definition at line 269 of file Sample.h.

◆ owns_data_

template<typename NativeType>
const bool OpenDDS::DCPS::Sample_T< NativeType >::owns_data_
private

Definition at line 266 of file Sample.h.


The documentation for this class was generated from the following file: