OpenDDS  Snapshot(2023/04/28-20:55)
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
 
- 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 116 of file Sample.h.

Member Typedef Documentation

◆ KeyOnlyType

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

Definition at line 121 of file Sample.h.

◆ MarshalTraitsType

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

Definition at line 119 of file Sample.h.

◆ MutableKeyOnlyType

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

Definition at line 122 of file Sample.h.

◆ Rch

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

Definition at line 120 of file Sample.h.

◆ TraitsType

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

Definition at line 118 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 124 of file Sample.h.

References if().

125  : Sample(ReadOnly, extent)
126  , owns_data_(false)
127  , data_(&data)
128 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
129  , dynamic_data_(0)
130 #endif
131  {
132  }
const NativeType & data() const
Definition: Sample.h:171
const NativeType * data_
Definition: Sample.h:277
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:279
const bool owns_data_
Definition: Sample.h:276

◆ Sample_T() [2/4]

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

Definition at line 134 of file Sample.h.

References if().

135  : Sample(ReadOnly, extent)
136  , owns_data_(true)
137  , data_(data)
138 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
139  , dynamic_data_(0)
140 #endif
141  {
142  }
const NativeType & data() const
Definition: Sample.h:171
const NativeType * data_
Definition: Sample.h:277
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:279
const bool owns_data_
Definition: Sample.h:276

◆ Sample_T() [3/4]

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

Definition at line 144 of file Sample.h.

References if().

145  : Sample(Mutable, extent)
146  , owns_data_(false)
147  , data_(&data)
148 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
149  , dynamic_data_(0)
150 #endif
151  {
152  }
const NativeType & data() const
Definition: Sample.h:171
const NativeType * data_
Definition: Sample.h:277
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:279
const bool owns_data_
Definition: Sample.h:276

◆ Sample_T() [4/4]

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

Definition at line 154 of file Sample.h.

References if().

155  : Sample(Mutable, extent)
156  , owns_data_(true)
157  , data_(data)
158 #if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
159  , dynamic_data_(0)
160 #endif
161  {
162  }
const NativeType & data() const
Definition: Sample.h:171
const NativeType * data_
Definition: Sample.h:277
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:279
const bool owns_data_
Definition: Sample.h:276

◆ ~Sample_T()

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

Definition at line 164 of file Sample.h.

165  {
166  if (owns_data_) {
167  delete data_;
168  }
169  }
const NativeType * data_
Definition: Sample.h:277
const bool owns_data_
Definition: Sample.h:276

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 219 of file Sample.h.

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

220  {
221  const Sample_T<NativeType>* const other_same_kind =
222  dynamic_cast<const Sample_T<NativeType>*>(&other);
223  OPENDDS_ASSERT(other_same_kind);
224  return typename TraitsType::LessThanType()(*data_, *other_same_kind->data_);
225  }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:72
const NativeType * data_
Definition: Sample.h:277

◆ 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 237 of file Sample.h.

References OpenDDS::DCPS::dynamic_rchandle_cast().

238  {
239  NativeType* new_data = new NativeType;
240  *new_data = *data_;
241  return dynamic_rchandle_cast<Sample>(mutability == ReadOnly ?
242  make_rch<Sample_T<NativeType> >(const_cast<const NativeType*>(new_data), extent) :
243  make_rch<Sample_T<NativeType> >(new_data, extent));
244  }
RcHandle< T > make_rch()
Definition: RcHandle_T.h:256
const NativeType * data_
Definition: Sample.h:277
Sample_T(const NativeType &data, Extent extent=Full)
Definition: Sample.h:124
RcHandle< T > dynamic_rchandle_cast(const RcHandle< U > &h)
Definition: RcHandle_T.h:214

◆ data()

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

Definition at line 171 of file Sample.h.

172  {
173  return *data_;
174  }
const NativeType * data_
Definition: Sample.h:277

◆ deserialize()

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

Implements OpenDDS::DCPS::Sample.

Definition at line 201 of file Sample.h.

202  {
203  if (key_only()) {
204  return ser >> mutable_key_only_data();
205  } else {
206  return ser >> mutable_data();
207  }
208  }
NativeType & mutable_data() const
Definition: Sample.h:176
bool key_only() const
Definition: Sample.h:75
MutableKeyOnlyType mutable_key_only_data() const
Definition: Sample.h:187

◆ 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 269 of file Sample.h.

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

270  {
271  return evaluator.eval(*data_, params);
272  }
const NativeType * data_
Definition: Sample.h:277

◆ 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 232 of file Sample.h.

233  {
234  return MarshalTraitsType::from_message_block(mutable_data(), mb);
235  }
NativeType & mutable_data() const
Definition: Sample.h:176

◆ 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 247 of file Sample.h.

248  {
249 # if OPENDDS_HAS_DYNAMIC_DATA_ADAPTER
250  if (!dynamic_data_ && data_) {
252  XTypes::get_dynamic_data_adapter<NativeType, NativeType>(type, *data_) :
253  XTypes::get_dynamic_data_adapter<NativeType, NativeType>(type, mutable_data());
254  }
255  return dynamic_data_;
256 # else
257  ACE_UNUSED_ARG(type);
258  return 0;
259 # endif
260  }
NativeType & mutable_data() const
Definition: Sample.h:176
const NativeType * data_
Definition: Sample.h:277
DDS::DynamicData_var dynamic_data_
Definition: Sample.h:279
bool read_only() const
Definition: Sample.h:70

◆ key_only_data()

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

Definition at line 182 of file Sample.h.

183  {
184  return KeyOnlyType(*data_);
185  }
const NativeType * data_
Definition: Sample.h:277
DCPS::KeyOnly< const NativeType > KeyOnlyType
Definition: Sample.h:121

◆ mutable_data()

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

Definition at line 176 of file Sample.h.

References OPENDDS_ASSERT.

177  {
179  return *const_cast<NativeType*>(data_);
180  }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:72
const NativeType * data_
Definition: Sample.h:277
bool read_only() const
Definition: Sample.h:70

◆ mutable_key_only_data()

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

Definition at line 187 of file Sample.h.

188  {
190  }
NativeType & mutable_data() const
Definition: Sample.h:176
DCPS::KeyOnly< NativeType > MutableKeyOnlyType
Definition: Sample.h:122

◆ native_data()

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

Implements OpenDDS::DCPS::Sample.

Definition at line 263 of file Sample.h.

264  {
265  return data_;
266  }
const NativeType * data_
Definition: Sample.h:277

◆ serialize()

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

Implements OpenDDS::DCPS::Sample.

Definition at line 192 of file Sample.h.

193  {
194  if (key_only()) {
195  return ser << key_only_data();
196  } else {
197  return ser << data();
198  }
199  }
const NativeType & data() const
Definition: Sample.h:171
bool key_only() const
Definition: Sample.h:75
KeyOnlyType key_only_data() const
Definition: Sample.h:182

◆ 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 210 of file Sample.h.

References OpenDDS::DCPS::serialized_size().

211  {
212  if (key_only()) {
214  } else {
215  return OpenDDS::DCPS::serialized_size(enc, data());
216  }
217  }
const NativeType & data() const
Definition: Sample.h:171
bool key_only() const
Definition: Sample.h:75
void serialized_size(const Encoding &encoding, size_t &size, const SequenceNumber &)
KeyOnlyType key_only_data() const
Definition: Sample.h:182

◆ 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 227 of file Sample.h.

228  {
229  return MarshalTraitsType::to_message_block(mb, data());
230  }
const NativeType & data() const
Definition: Sample.h:171

Member Data Documentation

◆ data_

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

Definition at line 277 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 279 of file Sample.h.

◆ owns_data_

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

Definition at line 276 of file Sample.h.


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