6 #ifndef OPENDDS_DCPS_TYPESUPPORTIMPL_H 7 #define OPENDDS_DCPS_TYPESUPPORTIMPL_H 17 #include <dds/DdsDynamicDataC.h> 18 #include <dds/DdsDcpsTypeSupportExtC.h> 20 #ifndef ACE_LACKS_PRAGMA_ONCE 75 #ifndef OPENDDS_SAFETY_PROFILE 84 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE 85 virtual const MetaStruct& getMetaStructForType()
const = 0;
89 const char* type_name);
92 const char* type_name);
94 virtual const char*
name()
const = 0;
98 virtual char* get_type_name();
100 #ifndef OPENDDS_SAFETY_PROFILE 103 return DDS::DynamicType::_duplicate(type_);
109 return DDS::DynamicType::_duplicate(type_);
114 virtual bool is_dcps_key(
const char* fieldname)
const = 0;
146 #ifndef OPENDDS_SAFETY_PROFILE 147 void get_type_from_type_lookup_service();
157 const XTypes::TypeMap& type_map)
const;
162 #ifndef OPENDDS_SAFETY_PROFILE 169 template <
typename NativeType>
177 return TraitsType::type_name();
192 MarshalTraitsType::representations_allowed_by_type(seq);
202 return MarshalTraitsType::max_extensibility_level();
207 return MarshalTraitsType::serialized_size_bound(encoding);
212 return MarshalTraitsType::key_only_serialized_size_bound(encoding);
215 #ifndef OPENDDS_SAFETY_PROFILE 218 get_type_from_type_lookup_service();
224 template <
typename T>
229 ts_->register_type(0,
"");
234 T*
const t =
dynamic_cast<T*
>(ts_.in());
235 ts_->unregister_type(0, t ? t->name() : 0);
238 typename T::_var_type
ts_;
SerializedSizeBound serialized_size_bound(const Encoding &encoding) const
bool is_key(DDS::DynamicType_ptr type, const char *field)
MarshalTraits< NativeType > MarshalTraitsType
const XTypes::TypeIdentifier & getCompleteTypeIdentifier()
Extensibility base_extensibility() const
Returns the extensibility of just the topic type.
const XTypes::TypeMap & getMinimalTypeMap()
DDSTraits< NativeType > TraitsType
Extensibility max_extensibility() const
#define OpenDDS_Dcps_Export
String to_dds_string(unsigned short to_convert)
#define OPENDDS_DELETED_COPY_MOVE_CTOR_ASSIGN(CLASS)
DDS::DynamicType_ptr get_type()
#define OPENDDS_ASSERT(C)
DDS::DynamicType_var type_
~TypeSupportInitializer()
const char * name() const
TypeSupportImpl(DDS::DynamicType_ptr type)
sequence< DataRepresentationId_t > DataRepresentationIdSeq
XTypes::TypeLookupService_rch type_lookup_service_
static const ACE_CDR::Long TYPE_INFO_DEPENDENT_COUNT_NOT_PROVIDED
SerializedSizeBound key_only_serialized_size_bound(const Encoding &encoding) const
virtual DDS::DynamicType_ptr get_type() const
const XTypes::TypeMap & getCompleteTypeMap()
DDS::DynamicType_ptr get_type()
SerializedSizeBound(size_t bound)
ACE_CDR::Octet EquivalenceKind
const XTypes::TypeIdentifier & getMinimalTypeIdentifier()
void representations_allowed_by_type(DDS::DataRepresentationIdSeq &seq)
virtual const XTypes::TypeInformation * preset_type_info() const
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
OPENDDS_STRING to_string() const
bool is_dcps_key(const char *fieldname) const
short DataRepresentationId_t
DDS::ReturnCode_t max_extensibility(DDS::DynamicType_ptr type, DCPS::Extensibility &ext)
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)
The Internal API and Implementation of OpenDDS.
DDS::ReturnCode_t key_count(DDS::DynamicType_ptr type, size_t &count)
extensibility(MUTABLE) struct TypeLookup_getTypes_In