OpenDDS  Snapshot(2023/04/07-19:43)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
OpenDDS::XTypes::DynamicDataBase Class Referenceabstract

#include <DynamicDataBase.h>

Inheritance diagram for OpenDDS::XTypes::DynamicDataBase:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::XTypes::DynamicDataBase:
Collaboration graph
[legend]

Public Member Functions

 DynamicDataBase ()
 
 DynamicDataBase (DDS::DynamicType_ptr type)
 
DDS::ReturnCode_t get_descriptor (DDS::MemberDescriptor *&value, MemberId id)
 
DDS::MemberId get_member_id_by_name (const char *name)
 
virtual DDS::ReturnCode_t get_simple_value (DCPS::Value &value, DDS::MemberId id)=0
 
- Public Member Functions inherited from DDS::DynamicData
DDS::ReturnCode_t get_descriptor (inout MemberDescriptor value, in MemberId id)
 
DDS::ReturnCode_t set_descriptor (in MemberId id, in MemberDescriptor value)
 
boolean equals (in DynamicData other)
 
MemberId get_member_id_by_name (in ObjectName name)
 
MemberId get_member_id_at_index (in unsigned long index)
 
unsigned long get_item_count ()
 
DDS::ReturnCode_t clear_all_values ()
 
DDS::ReturnCode_t clear_nonkey_values ()
 
DDS::ReturnCode_t clear_value (in MemberId id)
 
DynamicData loan_value (in MemberId id)
 
DDS::ReturnCode_t return_loaned_value (in DynamicData value)
 
DynamicData clone ()
 
DDS::ReturnCode_t get_int32_value (inout long value, in MemberId id)
 
DDS::ReturnCode_t set_int32_value (in MemberId id, in long value)
 
DDS::ReturnCode_t get_uint32_value (inout unsigned long value, in MemberId id)
 
DDS::ReturnCode_t set_uint32_value (in MemberId id, in unsigned long value)
 
DDS::ReturnCode_t get_int8_value (inout int8 value, in MemberId id)
 
DDS::ReturnCode_t set_int8_value (in MemberId id, in int8 value)
 
DDS::ReturnCode_t get_uint8_value (inout uint8 value, in MemberId id)
 
DDS::ReturnCode_t set_uint8_value (in MemberId id, in uint8 value)
 
DDS::ReturnCode_t get_int16_value (inout short value, in MemberId id)
 
DDS::ReturnCode_t set_int16_value (in MemberId id, in short value)
 
DDS::ReturnCode_t get_uint16_value (inout unsigned short value, in MemberId id)
 
DDS::ReturnCode_t set_uint16_value (in MemberId id, in unsigned short value)
 
DDS::ReturnCode_t get_int64_value (inout long long value, in MemberId id)
 
DDS::ReturnCode_t set_int64_value (in MemberId id, in long long value)
 
DDS::ReturnCode_t get_uint64_value (inout unsigned long long value, in MemberId id)
 
DDS::ReturnCode_t set_uint64_value (in MemberId id, in unsigned long long value)
 
DDS::ReturnCode_t get_float32_value (inout float value, in MemberId id)
 
DDS::ReturnCode_t set_float32_value (in MemberId id, in float value)
 
DDS::ReturnCode_t get_float64_value (inout double value, in MemberId id)
 
DDS::ReturnCode_t set_float64_value (in MemberId id, in double value)
 
DDS::ReturnCode_t get_float128_value (inout long double value, in MemberId id)
 
DDS::ReturnCode_t set_float128_value (in MemberId id, in long double value)
 
DDS::ReturnCode_t get_char8_value (inout char value, in MemberId id)
 
DDS::ReturnCode_t set_char8_value (in MemberId id, in char value)
 
DDS::ReturnCode_t get_char16_value (inout wchar value, in MemberId id)
 
DDS::ReturnCode_t set_char16_value (in MemberId id, in wchar value)
 
DDS::ReturnCode_t get_byte_value (inout octet value, in MemberId id)
 
DDS::ReturnCode_t set_byte_value (in MemberId id, in octet value)
 
DDS::ReturnCode_t get_boolean_value (inout boolean value, in MemberId id)
 
DDS::ReturnCode_t set_boolean_value (in MemberId id, in boolean value)
 
DDS::ReturnCode_t get_string_value (inout string value, in MemberId id)
 
DDS::ReturnCode_t set_string_value (in MemberId id, in string value)
 
DDS::ReturnCode_t get_wstring_value (inout wstring value, in MemberId id)
 
DDS::ReturnCode_t set_wstring_value (in MemberId id, in wstring value)
 
DDS::ReturnCode_t get_complex_value (inout DynamicData value, in MemberId id)
 
DDS::ReturnCode_t set_complex_value (in MemberId id, in DynamicData value)
 
DDS::ReturnCode_t get_int32_values (inout Int32Seq value, in MemberId id)
 
DDS::ReturnCode_t set_int32_values (in MemberId id, in Int32Seq value)
 
DDS::ReturnCode_t get_uint32_values (inout UInt32Seq value, in MemberId id)
 
DDS::ReturnCode_t set_uint32_values (in MemberId id, in UInt32Seq value)
 
DDS::ReturnCode_t get_int8_values (inout Int8Seq value, in MemberId id)
 
DDS::ReturnCode_t set_int8_values (in MemberId id, in Int8Seq value)
 
DDS::ReturnCode_t get_uint8_values (inout UInt8Seq value, in MemberId id)
 
DDS::ReturnCode_t set_uint8_values (in MemberId id, in UInt8Seq value)
 
DDS::ReturnCode_t get_int16_values (inout Int16Seq value, in MemberId id)
 
DDS::ReturnCode_t set_int16_values (in MemberId id, in Int16Seq value)
 
DDS::ReturnCode_t get_uint16_values (inout UInt16Seq value, in MemberId id)
 
DDS::ReturnCode_t set_uint16_values (in MemberId id, in UInt16Seq value)
 
DDS::ReturnCode_t get_int64_values (inout Int64Seq value, in MemberId id)
 
DDS::ReturnCode_t set_int64_values (in MemberId id, in Int64Seq value)
 
DDS::ReturnCode_t get_uint64_values (inout UInt64Seq value, in MemberId id)
 
DDS::ReturnCode_t set_uint64_values (in MemberId id, in UInt64Seq value)
 
DDS::ReturnCode_t get_float32_values (inout Float32Seq value, in MemberId id)
 
DDS::ReturnCode_t set_float32_values (in MemberId id, in Float32Seq value)
 
DDS::ReturnCode_t get_float64_values (inout Float64Seq value, in MemberId id)
 
DDS::ReturnCode_t set_float64_values (in MemberId id, in Float64Seq value)
 
DDS::ReturnCode_t get_float128_values (inout Float128Seq value, in MemberId id)
 
DDS::ReturnCode_t set_float128_values (in MemberId id, in Float128Seq value)
 
DDS::ReturnCode_t get_char8_values (inout CharSeq value, in MemberId id)
 
DDS::ReturnCode_t set_char8_values (in MemberId id, in CharSeq value)
 
DDS::ReturnCode_t get_char16_values (inout WcharSeq value, in MemberId id)
 
DDS::ReturnCode_t set_char16_values (in MemberId id, in WcharSeq value)
 
DDS::ReturnCode_t get_byte_values (inout ByteSeq value, in MemberId id)
 
DDS::ReturnCode_t set_byte_values (in MemberId id, in ByteSeq value)
 
DDS::ReturnCode_t get_boolean_values (inout BooleanSeq value, in MemberId id)
 
DDS::ReturnCode_t set_boolean_values (in MemberId id, in BooleanSeq value)
 
DDS::ReturnCode_t get_string_values (inout StringSeq value, in MemberId id)
 
DDS::ReturnCode_t set_string_values (in MemberId id, in StringSeq value)
 
DDS::ReturnCode_t get_wstring_values (inout WstringSeq value, in MemberId id)
 
DDS::ReturnCode_t set_wstring_values (in MemberId id, in WstringSeq value)
 
- Public Member Functions inherited from OpenDDS::DCPS::LocalObjectBase
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
virtual CORBA::ULong _refcount_value () const
 
- Public Member Functions inherited from CORBA::LocalObject
virtual ~LocalObject (void)
 
virtual CORBA::Boolean _non_existent (void)
 
virtual char * _repository_id (void)
 
virtual CORBA::InterfaceDef_ptr _get_interface (void)
 
virtual CORBA::Object_ptr _get_component (void)
 
virtual void _create_request (CORBA::Context_ptr ctx, const char *operation, CORBA::NVList_ptr arg_list, CORBA::NamedValue_ptr result, CORBA::Request_ptr &request, CORBA::Flags req_flags)
 
virtual void _create_request (CORBA::Context_ptr ctx, const char *operation, CORBA::NVList_ptr arg_list, CORBA::NamedValue_ptr result, CORBA::ExceptionList_ptr exclist, CORBA::ContextList_ptr ctxtlist, CORBA::Request_ptr &request, CORBA::Flags req_flags)
 
virtual CORBA::Request_ptr _request (const char *operation)
 
CORBA::Policy_ptr _get_policy (CORBA::PolicyType type)
 
CORBA::Policy_ptr _get_cached_policy (TAO_Cached_Policy_Type type)
 
CORBA::Object_ptr _set_policy_overrides (const CORBA::PolicyList &policies, CORBA::SetOverrideType set_add)
 
CORBA::PolicyList_get_policy_overrides (const CORBA::PolicyTypeSeq &types)
 
CORBA::Boolean _validate_connection (CORBA::PolicyList_out inconsistent_policies)
 
virtual CORBA::ULong _hash (CORBA::ULong maximum)
 
virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj)
 
virtual CORBA::ORB_ptr _get_orb (void)
 
virtual TAO::ObjectKey_key (void)
 
- Public Member Functions inherited from CORBA::Object
virtual ~Object (void)
 
virtual TAO_Abstract_ServantBase_servant (void) const
 
virtual CORBA::Boolean _is_collocated (void) const
 
virtual CORBA::Boolean _is_local (void) const
 
 Object (TAO_Stub *p, CORBA::Boolean collocated=false, TAO_Abstract_ServantBase *servant=0, TAO_ORB_Core *orb_core=0)
 
 Object (IOP::IOR *ior, TAO_ORB_Core *orb_core)
 
virtual TAO_Stub_stubobj (void) const
 
virtual TAO_Stub_stubobj (void)
 
virtual void _proxy_broker (TAO::Object_Proxy_Broker *proxy_broker)
 
virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr)
 
CORBA::Boolean is_evaluated (void) const
 
TAO_ORB_Coreorb_core (void) const
 
IOP::IORsteal_ior (void)
 
const IOP::IORior (void) const
 
virtual bool can_convert_to_ior (void) const
 
virtual char * convert_to_ior (bool use_omg_ior_format, const char *ior_prefix) const
 
void _decr_refcount (void)
 
virtual CORBA::Boolean _is_a (const char *logical_type_id)
 
virtual const char * _interface_repository_id (void) const
 
CORBA::Policy_ptr _get_policy (CORBA::PolicyType type)
 
CORBA::Policy_ptr _get_cached_policy (TAO_Cached_Policy_Type type)
 
CORBA::Object_ptr _set_policy_overrides (const CORBA::PolicyList &policies, CORBA::SetOverrideType set_add)
 
CORBA::PolicyList_get_policy_overrides (const CORBA::PolicyTypeSeq &types)
 
CORBA::Boolean _validate_connection (CORBA::PolicyList_out inconsistent_policies)
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Static Public Member Functions

static bool has_explicit_keys (DDS::DynamicType *dt)
 
static bool exclude_member (DCPS::Sample::Extent ext, bool is_key, bool has_explicit_keys)
 
static DCPS::Sample::Extent nested (DCPS::Sample::Extent ext)
 
- Static Public Member Functions inherited from OpenDDS::DCPS::LocalObject< DDS::DynamicData >
static _ptr_type _narrow (CORBA::Object_ptr obj)
 
- Static Public Member Functions inherited from CORBA::LocalObject
static LocalObject_ptr _duplicate (LocalObject_ptr obj)
 
static LocalObject_ptr _nil (void)
 
static LocalObject_ptr _narrow (CORBA::Object_ptr obj)
 
- Static Public Member Functions inherited from CORBA::Object
static CORBA::Boolean marshal (const Object_ptr x, TAO_OutputCDR &cdr)
 
static void _tao_any_destructor (void *)
 
static CORBA::Boolean is_nil_i (CORBA::Object_ptr obj)
 
static void tao_object_initialize (Object *)
 
static CORBA::Object_ptr _duplicate (CORBA::Object_ptr obj)
 
static CORBA::Object_ptr _nil (void)
 
static CORBA::Object_ptr _narrow (CORBA::Object_ptr obj)
 

Protected Member Functions

bool is_type_supported (TypeKind tk, const char *func_name)
 
bool is_primitive (TypeKind tk) const
 
bool is_basic (TypeKind tk) const
 
bool is_complex (TypeKind tk) const
 
bool get_index_from_id (DDS::MemberId id, ACE_CDR::ULong &index, ACE_CDR::ULong bound) const
 
bool enum_string_helper (char *&strInOut, MemberId id)
 
DDS::ReturnCode_t check_member (DDS::MemberDescriptor_var &md, DDS::DynamicType_var &type, const char *method, const char *what, DDS::MemberId id, DDS::TypeKind tk)
 
DDS::DynamicDatainterface_from_this () const
 
- Protected Member Functions inherited from CORBA::LocalObject
 LocalObject (void)
 
- Protected Member Functions inherited from CORBA::Object
 Object (int dummy=0)
 
TAO::Object_Proxy_Brokerproxy_broker () const
 
- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 

Static Protected Member Functions

static CORBA::ULong bound_total (DDS::TypeDescriptor_var descriptor)
 
static DDS::MemberId get_union_default_member (DDS::DynamicType *type)
 
static bool discriminator_selects_no_member (DDS::DynamicType *type, ACE_CDR::Long disc)
 

Protected Attributes

DDS::DynamicType_var type_
 The actual (i.e., non-alias) DynamicType of the associated type. More...
 
- Protected Attributes inherited from CORBA::Object
ACE_Atomic_Op< TAO_SYNCH_MUTEX, unsigned long > refcount_
 

Additional Inherited Members

- Public Types inherited from OpenDDS::DCPS::LocalObject< DDS::DynamicData >
typedef DDS::DynamicData ::_ptr_type _ptr_type
 
typedef DDS::DynamicData ::_var_type _var_type
 
- Public Types inherited from CORBA::LocalObject
typedef LocalObject_ptr _ptr_type
 
typedef LocalObject_var _var_type
 
typedef LocalObject_out _out_type
 
- Public Types inherited from CORBA::Object
typedef Object_ptr _ptr_type
 
typedef Object_var _var_type
 
typedef Object_out _out_type
 
- Public Attributes inherited from DDS::DynamicData
readonly attribute DynamicType type
 

Detailed Description

Definition at line 26 of file DynamicDataBase.h.

Constructor & Destructor Documentation

◆ DynamicDataBase() [1/2]

OpenDDS::XTypes::DynamicDataBase::DynamicDataBase ( )

Definition at line 17 of file DynamicDataBase.cpp.

17 {}

◆ DynamicDataBase() [2/2]

OpenDDS::XTypes::DynamicDataBase::DynamicDataBase ( DDS::DynamicType_ptr  type)

Definition at line 19 of file DynamicDataBase.cpp.

21 {}
DDS::DynamicType_var type_
The actual (i.e., non-alias) DynamicType of the associated type.
DDS::DynamicType_var get_base_type(DDS::DynamicType_ptr type)
readonly attribute DynamicType type

Member Function Documentation

◆ bound_total()

CORBA::ULong OpenDDS::XTypes::DynamicDataBase::bound_total ( DDS::TypeDescriptor_var  descriptor)
staticprotected

◆ check_member()

DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataBase::check_member ( DDS::MemberDescriptor_var &  md,
DDS::DynamicType_var &  type,
const char *  method,
const char *  what,
DDS::MemberId  id,
DDS::TypeKind  tk 
)
protected

Definition at line 202 of file DynamicDataBase.cpp.

References ACE_ERROR, OpenDDS::XTypes::bitmask_bound(), OpenDDS::XTypes::enum_bound(), OpenDDS::XTypes::get_base_type(), get_descriptor(), TAO::String_var< charT >::in(), is_basic(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_BAD_PARAMETER, DDS::RETCODE_OK, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_ENUM, type_, and OpenDDS::XTypes::typekind_to_string().

Referenced by OpenDDS::XTypes::DynamicDataImpl::get_value_from_struct(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_union(), and OpenDDS::XTypes::DynamicDataImpl::set_value_to_struct().

205 {
206  DDS::ReturnCode_t rc = get_descriptor(md, id);
207  if (rc != DDS::RETCODE_OK) {
208  return rc;
209  }
210  type = get_base_type(md->type());
211  if (!type) {
213  }
214 
215  const TypeKind type_kind = type->get_kind();
216  TypeKind cmp_type_kind = type_kind;
217  switch (type_kind) {
218  case TK_ENUM:
219  rc = enum_bound(type, cmp_type_kind);
220  if (rc != DDS::RETCODE_OK) {
221  return rc;
222  }
223  break;
224  case TK_BITMASK:
225  rc = bitmask_bound(type, cmp_type_kind);
226  if (rc != DDS::RETCODE_OK) {
227  return rc;
228  }
229  break;
230  }
231 
232  bool invalid_tk = true;
233  if (is_basic(cmp_type_kind)) {
234  invalid_tk = cmp_type_kind != tk;
235  }
236  if (invalid_tk) {
238  const CORBA::String_var member_name = md->name();
239  const CORBA::String_var type_name = type_->get_name();
240  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: %C: "
241  "trying to %C %C.%C id %u kind %C (%C) as an invalid kind %C\n",
242  method, what, type_name.in(), member_name.in(), id,
243  typekind_to_string(cmp_type_kind), typekind_to_string(type_kind),
244  typekind_to_string(tk)));
245  }
247  }
248  return DDS::RETCODE_OK;
249 }
OpenDDS_Dcps_Export LogLevel log_level
#define ACE_ERROR(X)
TypeKind get_kind()
DDS::DynamicType_var type_
The actual (i.e., non-alias) DynamicType of the associated type.
const ReturnCode_t RETCODE_OK
DDS::DynamicType_var get_base_type(DDS::DynamicType_ptr type)
const ReturnCode_t RETCODE_BAD_PARAMETER
DDS::ReturnCode_t get_descriptor(DDS::MemberDescriptor *&value, MemberId id)
readonly attribute DynamicType type
DDS::ReturnCode_t bitmask_bound(DDS::DynamicType_ptr type, DDS::TypeKind &bound_kind)
const TypeKind TK_BITMASK
Definition: TypeObject.h:239
DDS::ReturnCode_t enum_bound(DDS::DynamicType_ptr type, DDS::TypeKind &bound_kind)
const TypeKind TK_ENUM
Definition: TypeObject.h:238
const char * typekind_to_string(TypeKind tk)
const character_type * in(void) const
bool is_basic(TypeKind tk) const
ACE_CDR::Octet TypeKind
Definition: TypeObject.h:210

◆ discriminator_selects_no_member()

bool OpenDDS::XTypes::DynamicDataBase::discriminator_selects_no_member ( DDS::DynamicType type,
ACE_CDR::Long  disc 
)
staticprotected

Definition at line 299 of file DynamicDataBase.cpp.

References OpenDDS::XTypes::DISCRIMINATOR_ID, DDS::DynamicType::get_member_by_index(), DDS::DynamicType::get_member_count(), OpenDDS::XTypes::Sequence< T >::length(), and DDS::RETCODE_OK.

Referenced by OpenDDS::XTypes::DynamicDataImpl::set_complex_to_union(), and OpenDDS::XTypes::DynamicDataImpl::set_value_to_union().

300 {
301  const ACE_CDR::ULong members = type->get_member_count();
302  for (ACE_CDR::ULong i = 0; i < members; ++i) {
303  DDS::DynamicTypeMember_var member;
304  if (type->get_member_by_index(member, i) != DDS::RETCODE_OK) {
305  return false;
306  }
307  if (member->get_id() == DISCRIMINATOR_ID) {
308  continue;
309  }
310  DDS::MemberDescriptor_var mdesc;
311  if (member->get_descriptor(mdesc) != DDS::RETCODE_OK) {
312  return false;
313  }
314  if (mdesc->is_default_label()) {
315  return false;
316  }
317  const DDS::UnionCaseLabelSeq& lseq = mdesc->label();
318  for (ACE_CDR::ULong lbl = 0; lbl < lseq.length(); ++lbl) {
319  if (lseq[lbl] == disc) {
320  return false;
321  }
322  }
323  }
324  return true;
325 }
const ReturnCode_t RETCODE_OK
const ACE_CDR::ULong DISCRIMINATOR_ID
Implementation specific sentinel for a union discriminator used in DynamicData.
Definition: TypeObject.h:913
ACE_CDR::ULong length() const
Definition: TypeObject.h:167
unsigned long get_member_count()
DDS::ReturnCode_t get_member_by_index(inout DynamicTypeMember member, in unsigned long index)
ACE_UINT32 ULong

◆ enum_string_helper()

bool OpenDDS::XTypes::DynamicDataBase::enum_string_helper ( char *&  strInOut,
MemberId  id 
)
protected

Definition at line 180 of file DynamicDataBase.cpp.

References OpenDDS::XTypes::get_enum_value(), OpenDDS::XTypes::get_enumerator_name(), OpenDDS::XTypes::get_member_type(), DDS::RETCODE_OK, CORBA::string_free(), OpenDDS::XTypes::TK_ENUM, and type_.

Referenced by OpenDDS::XTypes::DynamicDataImpl::get_string_value(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_string_value().

181 {
182  DDS::DynamicType_var mtype;
183  DDS::ReturnCode_t rc = get_member_type(mtype, type_, id);
184  if (rc != DDS::RETCODE_OK || mtype->get_kind() != TK_ENUM) {
185  return false;
186  }
187  DDS::Int32 valAsInt;
188  rc = get_enum_value(valAsInt, mtype, this, id);
189  if (rc != DDS::RETCODE_OK) {
190  return false;
191  }
192  DDS::String8_var valAsStr;
193  rc = get_enumerator_name(valAsStr, valAsInt, mtype);
194  if (rc != DDS::RETCODE_OK) {
195  return false;
196  }
197  CORBA::string_free(strInOut);
198  strInOut = valAsStr._retn();
199  return true;
200 }
DDS::DynamicType_var type_
The actual (i.e., non-alias) DynamicType of the associated type.
DDS::ReturnCode_t get_member_type(DDS::DynamicType_var &member_type, DDS::DynamicType_ptr container_type, DDS::MemberId id)
const ReturnCode_t RETCODE_OK
void string_free(char *)
const TypeKind TK_ENUM
Definition: TypeObject.h:238
DDS::ReturnCode_t get_enum_value(CORBA::Int32 &value, DDS::DynamicType_ptr type, DDS::DynamicData_ptr src, DDS::MemberId id)
DDS::ReturnCode_t get_enumerator_name(DDS::String8_var &name, DDS::Int32 value, DDS::DynamicType_ptr type)

◆ exclude_member()

bool OpenDDS::XTypes::DynamicDataBase::exclude_member ( DCPS::Sample::Extent  ext,
bool  is_key,
bool  has_explicit_keys 
)
inlinestatic

◆ get_descriptor()

DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataBase::get_descriptor ( DDS::MemberDescriptor *&  value,
MemberId  id 
)

Definition at line 30 of file DynamicDataBase.cpp.

References DDS::RETCODE_ERROR, DDS::RETCODE_OK, and type_.

Referenced by check_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_value_from_struct(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_struct(), OpenDDS::XTypes::print_struct(), and OpenDDS::XTypes::print_union().

31 {
32  DDS::DynamicTypeMember_var dtm;
33  if (type_->get_member(dtm, id) != DDS::RETCODE_OK) {
34  return DDS::RETCODE_ERROR;
35  }
36  return dtm->get_descriptor(value);
37 }
DDS::DynamicType_var type_
The actual (i.e., non-alias) DynamicType of the associated type.
const ReturnCode_t RETCODE_OK
const ReturnCode_t RETCODE_ERROR

◆ get_index_from_id()

bool OpenDDS::XTypes::DynamicDataBase::get_index_from_id ( DDS::MemberId  id,
ACE_CDR::ULong index,
ACE_CDR::ULong  bound 
) const
protected

Definition at line 154 of file DynamicDataBase.cpp.

References OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRING16, OpenDDS::XTypes::TK_STRING8, and type_.

Referenced by OpenDDS::XTypes::DynamicDataImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char_common(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_array_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_map_element(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_sequence_element().

156 {
157  // The mapping from id to index must be consistent with get_member_id_at_index
158  // for these types. In particular, index and id are equal given that it doesn't
159  // go out of bound.
160  switch (type_->get_kind()) {
161  case TK_STRING8:
162  case TK_STRING16:
163  case TK_SEQUENCE:
164  case TK_MAP:
165  if (bound == 0 || id < bound) {
166  index = id;
167  return true;
168  }
169  break;
170  case TK_BITMASK:
171  case TK_ARRAY:
172  if (id < bound) {
173  index = id;
174  return true;
175  }
176  }
177  return false;
178 }
DDS::DynamicType_var type_
The actual (i.e., non-alias) DynamicType of the associated type.
const TypeKind TK_STRING16
Definition: TypeObject.h:232
const TypeKind TK_BITMASK
Definition: TypeObject.h:239
const TypeKind TK_STRING8
Definition: TypeObject.h:231
const TypeKind TK_SEQUENCE
Definition: TypeObject.h:248
const TypeKind TK_ARRAY
Definition: TypeObject.h:249
const TypeKind TK_MAP
Definition: TypeObject.h:250

◆ get_member_id_by_name()

DDS::MemberId OpenDDS::XTypes::DynamicDataBase::get_member_id_by_name ( const char *  name)

Definition at line 39 of file DynamicDataBase.cpp.

References ACE_ERROR, LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::XTypes::MEMBER_ID_INVALID, OpenDDS::DCPS::LogLevel::Notice, DDS::RETCODE_OK, OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITMASK, OpenDDS::XTypes::TK_BOOLEAN, OpenDDS::XTypes::TK_BYTE, OpenDDS::XTypes::TK_CHAR16, OpenDDS::XTypes::TK_CHAR8, OpenDDS::XTypes::TK_ENUM, OpenDDS::XTypes::TK_FLOAT128, OpenDDS::XTypes::TK_FLOAT32, OpenDDS::XTypes::TK_FLOAT64, OpenDDS::XTypes::TK_INT16, OpenDDS::XTypes::TK_INT32, OpenDDS::XTypes::TK_INT64, OpenDDS::XTypes::TK_INT8, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRING16, OpenDDS::XTypes::TK_STRING8, OpenDDS::XTypes::TK_STRUCTURE, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, OpenDDS::XTypes::TK_UINT8, OpenDDS::XTypes::TK_UNION, type_, and OpenDDS::XTypes::typekind_to_string().

40 {
41  const TypeKind tk = type_->get_kind();
42  switch (tk) {
43  case TK_BOOLEAN:
44  case TK_BYTE:
45  case TK_INT16:
46  case TK_INT32:
47  case TK_INT64:
48  case TK_UINT16:
49  case TK_UINT32:
50  case TK_UINT64:
51  case TK_FLOAT32:
52  case TK_FLOAT64:
53  case TK_FLOAT128:
54  case TK_INT8:
55  case TK_UINT8:
56  case TK_CHAR8:
57  case TK_CHAR16:
58  case TK_ENUM:
59  return MEMBER_ID_INVALID;
60  case TK_STRING8:
61  case TK_STRING16:
62  case TK_SEQUENCE:
63  case TK_ARRAY:
64  // Elements of string, sequence, array must be accessed by index.
65  return MEMBER_ID_INVALID;
66  case TK_MAP:
67  // Values in map can be accessed by strings which is converted from map keys.
68  // But need to find out how this conversion works. In the meantime, only allow
69  // accessing map using index.
70  return MEMBER_ID_INVALID;
71  case TK_BITMASK:
72  case TK_STRUCTURE:
73  case TK_UNION: {
74  DDS::DynamicTypeMember_var member;
75  if (type_->get_member_by_name(member, name) != DDS::RETCODE_OK) {
76  return MEMBER_ID_INVALID;
77  }
78  DDS::MemberDescriptor_var descriptor;
79  if (member->get_descriptor(descriptor) != DDS::RETCODE_OK) {
80  return MEMBER_ID_INVALID;
81  }
82  if (tk == TK_BITMASK) {
83  // Bitmask's flags don't have ID, so use index instead.
84  return descriptor->index();
85  } else {
86  return descriptor->id();
87  }
88  }
89  }
91  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: DynamicDataBase::get_member_id_by_name:"
92  " Calling on an unexpected type %C\n", typekind_to_string(tk)));
93  }
94  return MEMBER_ID_INVALID;
95 }
OpenDDS_Dcps_Export LogLevel log_level
#define ACE_ERROR(X)
const TypeKind TK_INT8
Definition: TypeObject.h:225
DDS::DynamicType_var type_
The actual (i.e., non-alias) DynamicType of the associated type.
const TypeKind TK_FLOAT128
Definition: TypeObject.h:224
const ReturnCode_t RETCODE_OK
const TypeKind TK_CHAR16
Definition: TypeObject.h:228
const TypeKind TK_INT32
Definition: TypeObject.h:217
const TypeKind TK_CHAR8
Definition: TypeObject.h:227
const TypeKind TK_STRING16
Definition: TypeObject.h:232
const TypeKind TK_STRUCTURE
Definition: TypeObject.h:243
const TypeKind TK_UINT16
Definition: TypeObject.h:219
const ACE_CDR::ULong MEMBER_ID_INVALID
Definition: TypeObject.h:911
const TypeKind TK_INT64
Definition: TypeObject.h:218
const TypeKind TK_BITMASK
Definition: TypeObject.h:239
const TypeKind TK_UINT8
Definition: TypeObject.h:226
const TypeKind TK_FLOAT32
Definition: TypeObject.h:222
const TypeKind TK_BOOLEAN
Definition: TypeObject.h:214
const TypeKind TK_INT16
Definition: TypeObject.h:216
const TypeKind TK_FLOAT64
Definition: TypeObject.h:223
const TypeKind TK_STRING8
Definition: TypeObject.h:231
const char *const name
Definition: debug.cpp:60
const TypeKind TK_SEQUENCE
Definition: TypeObject.h:248
const TypeKind TK_ENUM
Definition: TypeObject.h:238
const TypeKind TK_UINT32
Definition: TypeObject.h:220
const char * typekind_to_string(TypeKind tk)
const TypeKind TK_BYTE
Definition: TypeObject.h:215
const TypeKind TK_UNION
Definition: TypeObject.h:244
const TypeKind TK_UINT64
Definition: TypeObject.h:221
const TypeKind TK_ARRAY
Definition: TypeObject.h:249
const TypeKind TK_MAP
Definition: TypeObject.h:250
ACE_CDR::Octet TypeKind
Definition: TypeObject.h:210

◆ get_simple_value()

virtual DDS::ReturnCode_t OpenDDS::XTypes::DynamicDataBase::get_simple_value ( DCPS::Value value,
DDS::MemberId  id 
)
pure virtual

◆ get_union_default_member()

DDS::MemberId OpenDDS::XTypes::DynamicDataBase::get_union_default_member ( DDS::DynamicType type)
staticprotected

Definition at line 261 of file DynamicDataBase.cpp.

References OpenDDS::XTypes::DISCRIMINATOR_ID, DDS::DynamicType::get_member_by_index(), DDS::DynamicType::get_member_count(), OpenDDS::XTypes::Sequence< T >::length(), OpenDDS::XTypes::MEMBER_ID_INVALID, and DDS::RETCODE_OK.

262 {
263  //FUTURE: non-zero defaults for union discriminators are not currently represented
264  // in the MemberDescriptors created by converting CompleteTypeObject to DynamicType.
265  // When they are supported, change disc_default below to a value derived from the
266  // 'type' parameter. Note that 64-bit discriminators are not represented in TypeObject.
267  static const ACE_CDR::Long disc_default = 0;
268  DDS::MemberId default_branch = MEMBER_ID_INVALID;
269  const ACE_CDR::ULong members = type->get_member_count();
270  for (ACE_CDR::ULong i = 0; i < members; ++i) {
271  DDS::DynamicTypeMember_var member;
272  if (type->get_member_by_index(member, i) != DDS::RETCODE_OK) {
273  return MEMBER_ID_INVALID;
274  }
275  if (member->get_id() == DISCRIMINATOR_ID) {
276  continue;
277  }
278  DDS::MemberDescriptor_var mdesc;
279  if (member->get_descriptor(mdesc) != DDS::RETCODE_OK) {
280  return MEMBER_ID_INVALID;
281  }
282  if (mdesc->is_default_label()) {
283  default_branch = mdesc->id();
284  } else {
285  const DDS::UnionCaseLabelSeq& lseq = mdesc->label();
286  for (ACE_CDR::ULong lbl = 0; lbl < lseq.length(); ++lbl) {
287  if (lseq[lbl] == disc_default) {
288  return mdesc->id();
289  }
290  }
291  }
292  }
293  // Reaching this point means that there is no explicit label for the default
294  // value of the discriminator. If there is a default branch, its member is
295  // selected. Otherwise the 'MEMBER_ID_INVALID' constant is returned.
296  return default_branch;
297 }
ACE_CDR::ULong MemberId
Definition: TypeObject.h:910
const ReturnCode_t RETCODE_OK
const ACE_CDR::ULong DISCRIMINATOR_ID
Implementation specific sentinel for a union discriminator used in DynamicData.
Definition: TypeObject.h:913
ACE_CDR::ULong length() const
Definition: TypeObject.h:167
const ACE_CDR::ULong MEMBER_ID_INVALID
Definition: TypeObject.h:911
unsigned long get_member_count()
DDS::ReturnCode_t get_member_by_index(inout DynamicTypeMember member, in unsigned long index)
ACE_UINT32 ULong
ACE_INT32 Long

◆ has_explicit_keys()

bool OpenDDS::XTypes::DynamicDataBase::has_explicit_keys ( DDS::DynamicType dt)
static

Definition at line 327 of file DynamicDataBase.cpp.

References DDS::DynamicType::get_descriptor(), DDS::DynamicType::get_member_by_index(), DDS::DynamicType::get_member_count(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and DDS::RETCODE_OK.

Referenced by OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_struct_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_member_id_at_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_union_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_union_xcdr2(), and OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_struct_member().

328 {
329  // see dds_generator.h struct_has_explicit_keys() in opendds_idl
330  DDS::TypeDescriptor_var type_descriptor;
331  DDS::ReturnCode_t ret = dt->get_descriptor(type_descriptor);
332  if (ret != DDS::RETCODE_OK) {
333  return false;
334  }
335  DDS::DynamicType* const base = type_descriptor->base_type();
336  if (base && has_explicit_keys(base)) {
337  return true;
338  }
339 
340  for (ACE_CDR::ULong i = 0; i < dt->get_member_count(); ++i) {
341  DDS::DynamicTypeMember_var member;
342  ret = dt->get_member_by_index(member, i);
343  if (ret != DDS::RETCODE_OK) {
344  return false;
345  }
346  DDS::MemberDescriptor_var descriptor;
347  ret = member->get_descriptor(descriptor);
348  if (ret != DDS::RETCODE_OK) {
349  return false;
350  }
351  if (descriptor->is_key()) {
352  return true;
353  }
354  }
355  return false;
356 }
const ReturnCode_t RETCODE_OK
DDS::ReturnCode_t get_descriptor(inout TypeDescriptor descriptor)
static bool has_explicit_keys(DDS::DynamicType *dt)
unsigned long get_member_count()
DDS::ReturnCode_t get_member_by_index(inout DynamicTypeMember member, in unsigned long index)
ACE_UINT32 ULong

◆ interface_from_this()

DDS::DynamicData * OpenDDS::XTypes::DynamicDataBase::interface_from_this ( ) const
protected

Similar idea to std::shared_from_this(), provide a type compatible with parameter passing rules for IDL interfaces that are arguments to operations. Doesn't change the reference count.

Definition at line 23 of file DynamicDataBase.cpp.

Referenced by OpenDDS::XTypes::DynamicDataImpl::get_simple_value_enum().

24 {
25  // Operations defined in IDL interfaces don't use pointer-to-const
26  // parameter types.
27  return const_cast<DynamicDataBase*>(this);
28 }

◆ is_basic()

bool OpenDDS::XTypes::DynamicDataBase::is_basic ( TypeKind  tk) const
protected

Definition at line 134 of file DynamicDataBase.cpp.

References is_primitive(), OpenDDS::XTypes::TK_STRING16, and OpenDDS::XTypes::TK_STRING8.

Referenced by check_member(), and is_type_supported().

135 {
136  return is_primitive(tk) || tk == TK_STRING8 || tk == TK_STRING16;
137 }
const TypeKind TK_STRING16
Definition: TypeObject.h:232
const TypeKind TK_STRING8
Definition: TypeObject.h:231
bool is_primitive(TypeKind tk) const

◆ is_complex()

bool OpenDDS::XTypes::DynamicDataBase::is_complex ( TypeKind  tk) const
protected

Definition at line 139 of file DynamicDataBase.cpp.

References OpenDDS::XTypes::TK_ARRAY, OpenDDS::XTypes::TK_BITSET, OpenDDS::XTypes::TK_MAP, OpenDDS::XTypes::TK_SEQUENCE, OpenDDS::XTypes::TK_STRUCTURE, and OpenDDS::XTypes::TK_UNION.

140 {
141  switch (tk) {
142  case TK_ARRAY:
143  case TK_SEQUENCE:
144  case TK_MAP:
145  case TK_STRUCTURE:
146  case TK_UNION:
147  case TK_BITSET:
148  return true;
149  default:
150  return false;
151  }
152 }
const TypeKind TK_STRUCTURE
Definition: TypeObject.h:243
const TypeKind TK_SEQUENCE
Definition: TypeObject.h:248
const TypeKind TK_UNION
Definition: TypeObject.h:244
const TypeKind TK_BITSET
Definition: TypeObject.h:245
const TypeKind TK_ARRAY
Definition: TypeObject.h:249
const TypeKind TK_MAP
Definition: TypeObject.h:250

◆ is_primitive()

bool OpenDDS::XTypes::DynamicDataBase::is_primitive ( TypeKind  tk) const
protected

Definition at line 110 of file DynamicDataBase.cpp.

References OpenDDS::XTypes::TK_BOOLEAN, OpenDDS::XTypes::TK_BYTE, OpenDDS::XTypes::TK_CHAR16, OpenDDS::XTypes::TK_CHAR8, OpenDDS::XTypes::TK_FLOAT128, OpenDDS::XTypes::TK_FLOAT32, OpenDDS::XTypes::TK_FLOAT64, OpenDDS::XTypes::TK_INT16, OpenDDS::XTypes::TK_INT32, OpenDDS::XTypes::TK_INT64, OpenDDS::XTypes::TK_INT8, OpenDDS::XTypes::TK_UINT16, OpenDDS::XTypes::TK_UINT32, OpenDDS::XTypes::TK_UINT64, and OpenDDS::XTypes::TK_UINT8.

Referenced by OpenDDS::XTypes::DynamicDataImpl::clear_all_values(), OpenDDS::XTypes::DynamicDataImpl::clear_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_single_value(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_self(), is_basic(), and OpenDDS::XTypes::DynamicDataImpl::set_single_value().

111 {
112  switch (tk) {
113  case TK_BOOLEAN:
114  case TK_BYTE:
115  case TK_INT8:
116  case TK_UINT8:
117  case TK_CHAR8:
118  case TK_INT16:
119  case TK_UINT16:
120  case TK_CHAR16:
121  case TK_INT32:
122  case TK_UINT32:
123  case TK_FLOAT32:
124  case TK_INT64:
125  case TK_UINT64:
126  case TK_FLOAT64:
127  case TK_FLOAT128:
128  return true;
129  default:
130  return false;
131  }
132 }
const TypeKind TK_INT8
Definition: TypeObject.h:225
const TypeKind TK_FLOAT128
Definition: TypeObject.h:224
const TypeKind TK_CHAR16
Definition: TypeObject.h:228
const TypeKind TK_INT32
Definition: TypeObject.h:217
const TypeKind TK_CHAR8
Definition: TypeObject.h:227
const TypeKind TK_UINT16
Definition: TypeObject.h:219
const TypeKind TK_INT64
Definition: TypeObject.h:218
const TypeKind TK_UINT8
Definition: TypeObject.h:226
const TypeKind TK_FLOAT32
Definition: TypeObject.h:222
const TypeKind TK_BOOLEAN
Definition: TypeObject.h:214
const TypeKind TK_INT16
Definition: TypeObject.h:216
const TypeKind TK_FLOAT64
Definition: TypeObject.h:223
const TypeKind TK_UINT32
Definition: TypeObject.h:220
const TypeKind TK_BYTE
Definition: TypeObject.h:215
const TypeKind TK_UINT64
Definition: TypeObject.h:221

◆ is_type_supported()

bool OpenDDS::XTypes::DynamicDataBase::is_type_supported ( TypeKind  tk,
const char *  func_name 
)
protected

Verify that a given type is primitive or string or wstring.

Definition at line 97 of file DynamicDataBase.cpp.

References ACE_ERROR, is_basic(), LM_NOTICE, OpenDDS::DCPS::log_level, OpenDDS::DCPS::LogLevel::Notice, and OpenDDS::XTypes::typekind_to_string().

Referenced by OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_sequence_values(), OpenDDS::XTypes::DynamicDataImpl::get_single_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_single_value(), OpenDDS::XTypes::DynamicDataImpl::set_sequence_values(), and OpenDDS::XTypes::DynamicDataImpl::set_single_value().

98 {
99  if (!is_basic(tk)) {
101  ACE_ERROR((LM_NOTICE, "(%P|%t) NOTICE: DynamicDataBase::is_type_supported:"
102  " Called function %C on an unsupported type (%C)\n",
103  func_name, typekind_to_string(tk)));
104  }
105  return false;
106  }
107  return true;
108 }
OpenDDS_Dcps_Export LogLevel log_level
#define ACE_ERROR(X)
const char * typekind_to_string(TypeKind tk)
bool is_basic(TypeKind tk) const

◆ nested()

DCPS::Sample::Extent OpenDDS::XTypes::DynamicDataBase::nested ( DCPS::Sample::Extent  ext)
inlinestatic

Member Data Documentation

◆ type_

DDS::DynamicType_var OpenDDS::XTypes::DynamicDataBase::type_
protected

The actual (i.e., non-alias) DynamicType of the associated type.

Definition at line 65 of file DynamicDataBase.h.

Referenced by check_member(), OpenDDS::XTypes::DynamicDataImpl::check_seqmem_in_sequence_and_array(), OpenDDS::XTypes::DynamicDataImpl::check_seqmem_in_struct_and_union(), OpenDDS::XTypes::DynamicDataImpl::clear_all_values(), OpenDDS::XTypes::DynamicDataImpl::clear_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::clone(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::copy(), enum_string_helper(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_struct_member(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::exclude_union_member(), OpenDDS::XTypes::DynamicDataImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_boolean_value(), OpenDDS::XTypes::DynamicDataImpl::get_char_common(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_char_common(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_aggregated(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_collection(), OpenDDS::XTypes::DynamicDataImpl::get_complex_from_union(), OpenDDS::XTypes::DynamicDataImpl::get_complex_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_complex_value(), get_descriptor(), get_index_from_id(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_item_count(), OpenDDS::XTypes::DynamicDataImpl::get_item_count(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::get_largest_complex_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::get_largest_sequence_index(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::get_largest_single_index(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_member_id_at_index(), OpenDDS::XTypes::DynamicDataImpl::get_member_id_at_index(), get_member_id_by_name(), OpenDDS::XTypes::DynamicDataImpl::get_sequence_size(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_sequence_values(), OpenDDS::XTypes::DynamicDataImpl::get_simple_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_simple_value(), OpenDDS::XTypes::DynamicDataImpl::get_simple_value_enum(), OpenDDS::XTypes::DynamicDataImpl::get_single_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_single_value(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_union_selected_member(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_bitmask(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_collection(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_value_from_collection(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_enum(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_self(), OpenDDS::XTypes::DynamicDataImpl::get_value_from_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_value_from_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_array(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_map(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_sequence(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::get_values_from_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::has_optional_member(), OpenDDS::XTypes::DynamicDataImpl::insert_discriminator(), OpenDDS::XTypes::DynamicDataImpl::insert_valid_discriminator(), OpenDDS::XTypes::DynamicDataImpl::is_default_member_selected(), OpenDDS::XTypes::DynamicDataImpl::read_discriminator(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::reconstruct_string_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::select_union_member(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_array(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_bitmask_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_enum_value(), OpenDDS::XTypes::DynamicDataImpl::serialize_i(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_selected_member_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_sequence(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_string_value(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialize_union_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_array(), OpenDDS::XTypes::DynamicDataImpl::serialized_size_i(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_selected_member_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_sequence(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_structure_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::DataContainer::serialized_size_union_xcdr2(), OpenDDS::XTypes::DynamicDataImpl::set_boolean_value(), OpenDDS::XTypes::DynamicDataImpl::set_char_common(), OpenDDS::XTypes::DynamicDataImpl::set_complex_to_collection(), OpenDDS::XTypes::DynamicDataImpl::set_complex_to_struct(), OpenDDS::XTypes::DynamicDataImpl::set_complex_to_union(), OpenDDS::XTypes::DynamicDataImpl::set_complex_value(), OpenDDS::XTypes::DynamicDataImpl::set_sequence_values(), OpenDDS::XTypes::DynamicDataImpl::set_single_value(), OpenDDS::XTypes::DynamicDataImpl::set_string_value(), OpenDDS::XTypes::DynamicDataImpl::set_value_to_collection(), OpenDDS::XTypes::DynamicDataImpl::set_value_to_union(), OpenDDS::XTypes::DynamicDataImpl::set_values_to_array(), OpenDDS::XTypes::DynamicDataImpl::set_values_to_sequence(), OpenDDS::XTypes::DynamicDataImpl::set_values_to_union(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_all(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_struct_member_at_index(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_array_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_map_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_sequence_element(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::skip_to_struct_member(), OpenDDS::XTypes::DynamicDataImpl::type(), OpenDDS::XTypes::DynamicDataXcdrReadImpl::type(), and OpenDDS::XTypes::DynamicDataImpl::write_discriminator().


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