CoreDX Data Distribution Service
The High Performance, Small Footprint DDS from Twin Oaks Computing, Inc
xtypes_dtype.hh
Go to the documentation of this file.
1 /*****************************************************************
2  *
3  * file: xtypes_dtype.hh
4  * desc: This file provides the C++ language binding for
5  * CoreDX DDS X-Types DynamicType and related.
6  *
7  *****************************************************************
8  *
9  * Copyright(C) 2013-2020 Twin Oaks Computing, Inc
10  * All rights reserved. Castle Rock, CO 80108
11  *
12  *****************************************************************
13  *
14  * This software has been provided pursuant to a License Agreement
15  * containing restrictions on its use. This software contains
16  * valuable trade secrets and proprietary information of
17  * Twin Oaks Computing, Inc and is protected by law. It may not be
18  * copied or distributed in any form or medium, disclosed to third
19  * parties, reverse engineered or used in any manner not provided
20  * for in said License Agreement except with the prior written
21  * authorization from Twin Oaks Computing, Inc.
22  *
23  *****************************************************************/
24 
25 #ifndef _DDS_XTYPES_DTYPE_HH
26 #define _DDS_XTYPES_DTYPE_HH
27 
28 #include <string.h>
29 #include <dds/dds.hh>
30 #include <dds/xtypes_typeobject.hh>
31 #include <dds/dds_typesupport.hh>
32 
33 namespace DDS {
34 
35  /******************************************/
36  /* DDS DynamicType and DynamicData API */
37  /******************************************/
43  class DynamicType;
44  class DynamicTypeMember;
45  class DynamicTypeBuilder;
46  class TypeDescriptor;
47  class DynamicData;
48  class DynamicDataReader;
49  class DynamicDataWriter;
50 
51  DECLARE_CPP_UNBOUNDED_SEQ( char *, StringSeq );
52  DECLARE_CPP_UNBOUNDED_SEQ( char *, IncludePathSeq );
53  DECLARE_CPP_UNBOUNDED_SEQ( int, Int32Seq );
54  DECLARE_CPP_UNBOUNDED_SEQ( uint32_t, UInt32Seq );
55  DECLARE_CPP_UNBOUNDED_SEQ( short, Int16Seq );
56  DECLARE_CPP_UNBOUNDED_SEQ( unsigned short, UInt16Seq );
57  DECLARE_CPP_UNBOUNDED_SEQ( int64_t, Int64Seq );
58  DECLARE_CPP_UNBOUNDED_SEQ( uint64_t, UInt64Seq );
59  DECLARE_CPP_UNBOUNDED_SEQ( float, Float32Seq );
60  DECLARE_CPP_UNBOUNDED_SEQ( double, Float64Seq );
61  DECLARE_CPP_UNBOUNDED_SEQ( char, CharSeq );
62  DECLARE_CPP_UNBOUNDED_SEQ( cdx_char32_t, WcharSeq );
63  DECLARE_CPP_UNBOUNDED_SEQ( unsigned char, BooleanSeq );
64  DECLARE_CPP_UNBOUNDED_SEQ( unsigned char, ByteSeq );
65  DECLARE_CPP_UNBOUNDED_SEQ( cdx_char32_t *, WstringSeq );
66 
67  DDS_CPP_MAP_DECLARE(char *, char *, coredx_map_compare_string, Parameters);
68  DDS_CPP_MAP_DECLARE(char *, DynamicTypeMember *, coredx_map_compare_string, DynamicTypeMembersByName);
69  DDS_CPP_MAP_DECLARE(MemberId, DynamicTypeMember *, coredx_map_compare_uint32, DynamicTypeMembersById);
70 
78  class COREDX_CPP_CLASS_API DynamicTypeBuilderFactory
79  {
80  protected:
84  virtual ~DynamicTypeBuilderFactory();
85  virtual DynamicTypeBuilderFactory& operator=( const DynamicTypeBuilderFactory & other) = 0;
86 
87  public:
99  static DynamicTypeBuilderFactory * get_instance ( );
106  static ReturnCode_t delete_instance ( );
107 
115  virtual class DynamicType * get_primitive_type ( /* IN */ const TypeKind kind ) = 0;
132  virtual class DynamicTypeBuilder * create_type ( /* IN */ const class TypeDescriptor * descriptor ) = 0;
143  virtual class DynamicTypeBuilder * create_type_copy ( /* IN */ const class DynamicType * type ) = 0;
154  virtual class DynamicTypeBuilder * create_type_w_type_object ( /* IN */ const struct TypeObject * type_object ) = 0;
172  virtual class DynamicTypeBuilder * create_string_type ( /* IN */ const uint32_t bound ) = 0;
190  virtual class DynamicTypeBuilder * create_wstring_type ( /* IN */ const uint32_t bound ) = 0;
212  virtual class DynamicTypeBuilder * create_sequence_type ( /* IN */ const class DynamicType * element_type,
213  /* IN */ const uint32_t bound ) = 0;
239  virtual class DynamicTypeBuilder * create_array_type ( /* IN */ const class DynamicType * element_type,
240  /* IN */ const BoundSeq * bound ) = 0;
264  virtual class DynamicTypeBuilder * create_map_type ( /* IN */ const class DynamicType * key_element_type,
265  /* IN */ const class DynamicType * element_type,
266  /* IN */ const uint32_t bound ) = 0;
278  virtual class DynamicTypeBuilder * create_bitset_type ( /* IN */ const uint32_t bound ) = 0;
309  virtual class DynamicTypeBuilder * create_type_w_uri ( /* IN */ const char * document_url,
310  /* IN */ const char * type_name,
311  /* IN */ const IncludePathSeq * include_paths ) = 0;
341  virtual class DynamicTypeBuilder * create_type_w_document ( /* IN */ const char * document,
342  /* IN */ const char * type_name,
343  /* IN */ const IncludePathSeq * include_paths ) = 0;
352  virtual class DynamicTypeBuilder * create_structure_type ( ) = 0;
361  virtual class DynamicTypeBuilder * create_union_type ( ) = 0;
370  virtual class DynamicTypeBuilder * create_alias_type ( const DynamicType * base_type ) = 0;
380  virtual class DynamicTypeBuilder * create_enumeration_type( const uint32_t bound = 32 ) = 0;
381 
382  /* CDX API: This seems to be missing from standard API */
390  virtual ReturnCode_t delete_type_builder ( /* IN */ class DynamicTypeBuilder * dtb ) = 0;
398  virtual ReturnCode_t delete_type ( /* IN */ class DynamicType * type ) = 0;
399 
400  }; //DynamicTypeBuilderFactory
401 
402 
411  class COREDX_CPP_CLASS_API DynamicTypeSupport : public TypeSupport
412  {
413  protected:
416  DynamicTypeSupport( const DynamicTypeSupport & other );
417  virtual ~DynamicTypeSupport();
418  virtual DynamicTypeSupport& operator=( const DynamicTypeSupport & other) = 0;
419 
420  public:
436  static DynamicTypeSupport * create_type_support ( /* IN */ DynamicType * type);
445  static ReturnCode_t delete_type_support ( /* IN */ DynamicTypeSupport * type_support);
449  virtual ReturnCode_t register_type ( /* IN */ DomainParticipant * participant,
450  /* IN */ const char * type_name ) = 0;
455  virtual const char * get_type_name ( ) = 0;
456  virtual DataReader * create_datareader ( Subscriber * sub,
457  TopicDescription * td,
458  const DataReaderQos & qos,
459  DataReaderListener * listener,
460  StatusMask mask ) = 0;
461  virtual DataWriter * create_datawriter ( Publisher * pub,
462  Topic * topic,
463  const DataWriterQos & qos,
464  DataWriterListener * listener,
465  StatusMask mask ) = 0;
466  virtual TypeSupport * narrow ( ) = 0;
471  virtual DynamicType * get_type( ) = 0;
472 
476  virtual DynamicData * create_dynamic_sample ( ) = 0;
477 
478  protected:
479  virtual DataReader * alloc_datareader ( ) = 0;
480  virtual DataWriter * alloc_datawriter ( ) = 0;
481 
482  }; //DynamicTypeSupport
483 
484 
490  class COREDX_CPP_CLASS_API AnnotationDescriptor
491  {
492  public:
497  AnnotationDescriptor& operator=( const AnnotationDescriptor & other);
498 
499  protected:
500  Parameters parameters;
501 
502  public:
505  class DynamicType * type;
506 
525  ReturnCode_t get_value ( /* INOUT */ char ** value,
526  /* IN */ const char * key ) const;
532  ReturnCode_t get_all_value ( /* INOUT */ Parameters * value );
537  ReturnCode_t set_value ( /* IN */ const char * key,
538  /* IN */ const char * value );
543  ReturnCode_t copy_from ( /* IN */ const class AnnotationDescriptor * other );
548  unsigned char equals ( /* IN */ const class AnnotationDescriptor * other );
553  unsigned char is_consistent ( ) const;
554 
555  }; //AnnotationDescriptor
556 
561  class COREDX_CPP_CLASS_API TypeDescriptor
562  {
563  public:
565  TypeDescriptor();
566  TypeDescriptor( const TypeDescriptor & other );
567  ~TypeDescriptor();
568  TypeDescriptor& operator=( const TypeDescriptor & other);
569 
572  TypeKind kind;
575  ObjectName name;
608  BoundSeq bound;
631 
642  ReturnCode_t copy_from ( /* IN */ const class TypeDescriptor * other );
649  unsigned char equals ( /* IN */ const class TypeDescriptor * other );
658  unsigned char is_consistent ( );
659 
660  }; //TypeDescriptor
661 
662 
667  class COREDX_CPP_CLASS_API MemberDescriptor
668  {
669  public:
672  MemberDescriptor( const MemberDescriptor & other );
673  ~MemberDescriptor();
674  MemberDescriptor& operator=( const MemberDescriptor & other);
675 
676  ObjectName name;
677  MemberId id;
678  class DynamicType * type;
679  char * default_value;
680  uint32_t index;
681  UnionCaseLabelSeq label;
682  unsigned char default_label;
683 
695  ReturnCode_t copy_from ( /* IN */ const class MemberDescriptor * descriptor );
702  unsigned char equals ( /* IN */ const class MemberDescriptor * descriptor );
711  unsigned char is_consistent ( );
712 
713  }; //MemberDescriptor
714 
723  class COREDX_CPP_CLASS_API DynamicTypeMember
724  {
725  protected:
728  DynamicTypeMember( const DynamicTypeMember & other );
729  virtual ~DynamicTypeMember();
730  virtual DynamicTypeMember& operator=( const DynamicTypeMember & other)=0;
731 
732  public:
741  virtual ReturnCode_t get_descriptor ( /* INOUT */ class MemberDescriptor * descriptor ) = 0;
747  virtual uint32_t get_annotation_count ( ) = 0;
753  virtual ReturnCode_t get_annotation ( /* INOUT */ class AnnotationDescriptor * descriptor,
754  /* IN */ const uint32_t idx ) = 0;
761  virtual unsigned char equals ( /* IN */ const class DynamicTypeMember * other ) = 0;
767  virtual MemberId get_id ( ) = 0;
773  virtual const char * get_name ( ) = 0;
777  virtual MemberFlag get_flags ( ) = 0;
781  virtual ReturnCode_t set_flags ( MemberFlag f ) = 0;
782 
783  }; //DynamicTypeMember
784 
785 
795  class COREDX_CPP_CLASS_API DynamicTypeBuilder
796  {
797  protected:
800  DynamicTypeBuilder( const DynamicTypeBuilder & other );
801  virtual ~DynamicTypeBuilder();
802  virtual DynamicTypeBuilder& operator=( const DynamicTypeBuilder & other) = 0;
803 
804  public:
811  virtual ReturnCode_t get_descriptor ( /* INOUT */ class TypeDescriptor * descriptor ) = 0;
816  virtual const char * get_name ( ) = 0;
822  virtual TypeKind get_kind ( ) = 0;
835  virtual ReturnCode_t get_member_by_name ( /* INOUT */ class DynamicTypeMember ** member,
836  /* IN */ const char * name ) = 0;
844  virtual ReturnCode_t get_all_members_by_name ( /* INOUT */ DynamicTypeMembersByName * member ) = 0;
857  virtual ReturnCode_t get_member ( /* INOUT */ class DynamicTypeMember ** member,
858  /* IN */ const MemberId id ) = 0;
866  virtual ReturnCode_t get_all_members ( /* INOUT */ DynamicTypeMembersById * member ) = 0;
872  virtual uint32_t get_annotation_count ( ) = 0;
878  virtual ReturnCode_t get_annotation ( /* INOUT */ class AnnotationDescriptor * descriptor,
879  /* IN */ const uint32_t idx ) = 0;
886  virtual unsigned char equals ( /* IN */ const class DynamicType * other ) = 0;
895  virtual ReturnCode_t add_member ( /* IN */ const class MemberDescriptor * descriptor ) = 0;
905  virtual ReturnCode_t apply_annotation ( /* IN */ const class AnnotationDescriptor * descriptor ) = 0;
917  virtual ReturnCode_t apply_annotation_to_member ( /* IN */ const MemberId member_id,
918  /* IN */ const class AnnotationDescriptor * descriptor ) = 0;
931  virtual ReturnCode_t apply_flags_to_member ( /* IN */ const MemberId member_id,
932  /* IN */ const MemberFlag flags ) = 0;
933 
941  virtual class DynamicType *build ( ) = 0;
942 
943  /* CDX API: This seems to be missing from standard API */
950  virtual ReturnCode_t delete_type ( /* IN */ class DynamicType * type ) = 0;
951 
952  }; //DynamicTypeBuilder
953 
954 
963  class COREDX_CPP_CLASS_API DynamicType
964  {
965  protected:
967  DynamicType();
968  DynamicType( const DynamicType & other );
969  virtual ~DynamicType();
970  virtual DynamicType& operator=( const DynamicType & other) = 0;
971 
972  public:
980  virtual ReturnCode_t get_descriptor ( /* INOUT */ class TypeDescriptor * descriptor ) const = 0;
987  virtual const char * get_name ( ) = 0;
994  virtual TypeKind get_kind ( ) = 0;
1007  virtual ReturnCode_t get_member_by_name ( /* INOUT */ class DynamicTypeMember ** member,
1008  /* IN */ const char * name ) const = 0;
1016  virtual ReturnCode_t get_all_members_by_name ( /* INOUT */ DynamicTypeMembersByName * member ) const = 0;
1029  virtual ReturnCode_t get_member ( /* INOUT */ class DynamicTypeMember ** member,
1030  /* IN */ const MemberId id ) const = 0;
1038  virtual ReturnCode_t get_all_members ( /* INOUT */ DynamicTypeMembersById * member ) const = 0;
1044  virtual uint32_t get_annotation_count ( ) = 0;
1050  virtual ReturnCode_t get_annotation ( /* INOUT */ class AnnotationDescriptor * descriptor,
1051  /* IN */ const uint32_t * idx ) = 0;
1058  virtual unsigned char equals ( /* IN */ const class DynamicType * other ) = 0;
1059 
1060  }; //DynamicType
1061 
1068  class COREDX_CPP_CLASS_API DynamicDataFactory
1069  {
1070  protected:
1073  DynamicDataFactory( const DynamicDataFactory & other );
1074  ~DynamicDataFactory();
1075  private:
1076  DynamicDataFactory& operator=( const DynamicDataFactory & other);
1077 
1078  public:
1083  static DynamicDataFactory * get_instance ( );
1088  static ReturnCode_t delete_instance ( );
1096  class DynamicData * create_data ( /* IN */ const class DynamicType * type );
1100  ReturnCode_t delete_data ( /* IN */ const class DynamicData * data );
1101 
1102  }; //DynamicDataFactory
1103 
1104 
1167  class COREDX_CPP_CLASS_API DynamicData
1168  {
1169  protected:
1171  DynamicData();
1172  DynamicData( const DynamicData & other );
1173  ~DynamicData();
1174  DynamicData& operator=( const DynamicData & other);
1175 
1176  public:
1181  virtual const class DynamicType * get_type ( void ) = 0;
1182 
1189  virtual ReturnCode_t get_descriptor ( /* INOUT */ class MemberDescriptor * value,
1190  /* IN */ const MemberId id ) = 0;
1194  virtual ReturnCode_t set_descriptor ( /* IN */ const MemberId id,
1195  /* IN */ const class MemberDescriptor * value ) = 0;
1209  virtual unsigned char equals ( /* IN */ const class DynamicData * other ) = 0;
1213  virtual MemberId get_member_id_by_name ( /* IN */ const char * name ) = 0;
1217  virtual MemberId get_member_id_at_index ( /* IN */ const uint32_t index ) = 0;
1239  virtual uint32_t get_item_count ( ) = 0;
1240 
1241  /* CoreDX DDS addition: for use with MAP instances */
1245  virtual ReturnCode_t get_name_by_id ( /* OUT */ const char ** name_str,
1246  /* IN */ const MemberId id ) = 0;
1247 
1273  virtual ReturnCode_t clear_all_values ( ) = 0;
1278  virtual ReturnCode_t clear_nonkey_values ( ) = 0;
1283  virtual ReturnCode_t clear_value ( /* IN */ const MemberId id ) = 0;
1284 
1301  virtual class DynamicData * loan_value ( /* IN */ const MemberId id ) = 0;
1311  virtual ReturnCode_t return_loaned_value ( /* IN */ const class DynamicData * value ) = 0;
1317  virtual class DynamicData * clone ( ) = 0;
1328  virtual ReturnCode_t get_int32_value ( /* INOUT */ int32_t * value,
1329  /* IN */ const MemberId id ) = 0;
1340  virtual ReturnCode_t set_int32_value ( /* IN */ const MemberId id,
1341  /* IN */ const int32_t value ) = 0;
1352  virtual ReturnCode_t get_uint32_value ( /* INOUT */ uint32_t * value,
1353  /* IN */ const MemberId id ) = 0;
1364  virtual ReturnCode_t set_uint32_value ( /* IN */ const MemberId id,
1365  /* IN */ const uint32_t value ) = 0;
1376  virtual ReturnCode_t get_int16_value ( /* INOUT */ short * value,
1377  /* IN */ const MemberId id ) = 0;
1388  virtual ReturnCode_t set_int16_value ( /* IN */ const MemberId id,
1389  /* IN */ const short value ) = 0;
1400  virtual ReturnCode_t get_uint16_value ( /* INOUT */ unsigned short * value,
1401  /* IN */ const MemberId id ) = 0;
1412  virtual ReturnCode_t set_uint16_value ( /* IN */ const MemberId id,
1413  /* IN */ const unsigned short value ) = 0;
1424  virtual ReturnCode_t get_int64_value ( /* INOUT */ int64_t * value,
1425  /* IN */ const MemberId id ) = 0;
1436  virtual ReturnCode_t set_int64_value ( /* IN */ const MemberId id,
1437  /* IN */ const int64_t value ) = 0;
1448  virtual ReturnCode_t get_uint64_value ( /* INOUT */ uint64_t * value,
1449  /* IN */ const MemberId id ) = 0;
1460  virtual ReturnCode_t set_uint64_value ( /* IN */ const MemberId id,
1461  /* IN */ const uint64_t value ) = 0;
1472  virtual ReturnCode_t get_float32_value ( /* INOUT */ float * value,
1473  /* IN */ const MemberId id ) = 0;
1484  virtual ReturnCode_t set_float32_value ( /* IN */ const MemberId id,
1485  /* IN */ const float value ) = 0;
1496  virtual ReturnCode_t get_float64_value ( /* INOUT */ double * value,
1497  /* IN */ const MemberId id ) = 0;
1508  virtual ReturnCode_t set_float64_value ( /* IN */ const MemberId id,
1509  /* IN */ const double value ) = 0;
1520  virtual ReturnCode_t get_char8_value ( /* INOUT */ char * value,
1521  /* IN */ const MemberId id ) = 0;
1532  virtual ReturnCode_t set_char8_value ( /* IN */ const MemberId id,
1533  /* IN */ const char value ) = 0;
1544  virtual ReturnCode_t get_char32_value ( /* INOUT */ cdx_char32_t * value,
1545  /* IN */ const MemberId id ) = 0;
1556  virtual ReturnCode_t set_char32_value ( /* IN */ const MemberId id,
1557  /* IN */ const cdx_char32_t value ) = 0;
1568  virtual ReturnCode_t get_byte_value ( /* INOUT */ unsigned char * value,
1569  /* IN */ const MemberId id ) = 0;
1580  virtual ReturnCode_t set_byte_value ( /* IN */ const MemberId id,
1581  /* IN */ const unsigned char value ) = 0;
1592  virtual ReturnCode_t get_boolean_value ( /* INOUT */ unsigned char * value,
1593  /* IN */ const MemberId id ) = 0;
1604  virtual ReturnCode_t set_boolean_value ( /* IN */ const MemberId id,
1605  /* IN */ const unsigned char value ) = 0;
1616  virtual ReturnCode_t get_string_value ( /* INOUT */ char * * value,
1617  /* IN */ const MemberId id ) = 0;
1628  virtual ReturnCode_t set_string_value ( /* IN */ const MemberId id,
1629  /* IN */ const char * value ) = 0;
1640  virtual ReturnCode_t get_wstring_value ( /* INOUT */ cdx_char32_t * * value,
1641  /* IN */ const MemberId id ) = 0;
1652  virtual ReturnCode_t set_wstring_value ( /* IN */ const MemberId id,
1653  /* IN */ const cdx_char32_t * value ) = 0;
1664  virtual ReturnCode_t get_complex_value ( /* INOUT */ class DynamicData ** value,
1665  /* IN */ const MemberId id ) = 0;
1676  virtual ReturnCode_t set_complex_value ( /* IN */ const MemberId id,
1677  /* IN */ class DynamicData * value ) = 0;
1682  virtual ReturnCode_t get_int32_values ( /* INOUT */ Int32Seq * value,
1683  /* IN */ const MemberId id ) = 0;
1688  virtual ReturnCode_t set_int32_values ( /* IN */ const MemberId id,
1689  /* IN */ const Int32Seq * value ) = 0;
1694  virtual ReturnCode_t get_uint32_values ( /* INOUT */ UInt32Seq * value,
1695  /* IN */ const MemberId id ) = 0;
1700  virtual ReturnCode_t set_uint32_values ( /* IN */ const MemberId id,
1701  /* IN */ const UInt32Seq * value ) = 0;
1706  virtual ReturnCode_t get_int16_values ( /* INOUT */ Int16Seq * value,
1707  /* IN */ const MemberId id ) = 0;
1712  virtual ReturnCode_t set_int16_values ( /* IN */ const MemberId id,
1713  /* IN */ const Int16Seq * value ) = 0;
1718  virtual ReturnCode_t get_uint16_values ( /* INOUT */ UInt16Seq * value,
1719  /* IN */ const MemberId id ) = 0;
1724  virtual ReturnCode_t set_uint16_values ( /* IN */ const MemberId id,
1725  /* IN */ const UInt16Seq * value ) = 0;
1730  virtual ReturnCode_t get_int64_values ( /* INOUT */ Int64Seq * value,
1731  /* IN */ const MemberId id ) = 0;
1736  virtual ReturnCode_t set_int64_values ( /* IN */ const MemberId id,
1737  /* IN */ const Int64Seq * value ) = 0;
1742  virtual ReturnCode_t get_uint64_values ( /* INOUT */ UInt64Seq * value,
1743  /* IN */ const MemberId id ) = 0;
1748  virtual ReturnCode_t set_uint64_values ( /* IN */ const MemberId id,
1749  /* IN */ const UInt64Seq * value ) = 0;
1754  virtual ReturnCode_t get_float32_values ( /* INOUT */ Float32Seq * value,
1755  /* IN */ const MemberId id ) = 0;
1760  virtual ReturnCode_t set_float32_values ( /* IN */ const MemberId id,
1761  /* IN */ const Float32Seq * value ) = 0;
1766  virtual ReturnCode_t get_float64_values ( /* INOUT */ Float64Seq * value,
1767  /* IN */ const MemberId id ) = 0;
1772  virtual ReturnCode_t set_float64_values ( /* IN */ const MemberId id,
1773  /* IN */ const Float64Seq * value ) = 0;
1778  virtual ReturnCode_t get_char8_values ( /* INOUT */ CharSeq * value,
1779  /* IN */ const MemberId id ) = 0;
1784  virtual ReturnCode_t set_char8_values ( /* IN */ const MemberId id,
1785  /* IN */ const CharSeq * value ) = 0;
1790  virtual ReturnCode_t get_char32_values ( /* INOUT */ WcharSeq * value,
1791  /* IN */ const MemberId id ) = 0;
1796  virtual ReturnCode_t set_char32_values ( /* IN */ const MemberId id,
1797  /* IN */ const WcharSeq * value ) = 0;
1802  virtual ReturnCode_t get_byte_values ( /* INOUT */ ByteSeq * value,
1803  /* IN */ const MemberId id ) = 0;
1808  virtual ReturnCode_t set_byte_values ( /* IN */ const MemberId id,
1809  /* IN */ const ByteSeq * value ) = 0;
1814  virtual ReturnCode_t get_boolean_values ( /* INOUT */ BooleanSeq * value,
1815  /* IN */ const MemberId id ) = 0;
1820  virtual ReturnCode_t set_boolean_values ( /* IN */ const MemberId id,
1821  /* IN */ const BooleanSeq * value ) = 0;
1826  virtual ReturnCode_t get_string_values ( /* INOUT */ StringSeq * value,
1827  /* IN */ const MemberId id ) = 0;
1832  virtual ReturnCode_t set_string_values ( /* IN */ const MemberId id,
1833  /* IN */ const StringSeq * value ) = 0;
1838  virtual ReturnCode_t get_wstring_values ( /* INOUT */ WstringSeq * value,
1839  /* IN */ const MemberId id ) = 0;
1844  virtual ReturnCode_t set_wstring_values ( /* IN */ const MemberId id,
1845  /* IN */ const WstringSeq * value ) = 0;
1846  }; //DynamicData
1847 
1848 
1849  // helpers to convert CoreDX TypeCode/TypeObject binary data to instance
1850  TypeObject * TypecodeQosPolicy_to_typeobject( TypecodeQosPolicy * typecode );
1851  TypeObject * DynamicType_to_TypeObject( DynamicType * dt);
1852 
1853 } /* namespace DDS */
1854 
1855 #endif
class DynamicType * base_type
the &#39;base_type&#39; of this type
Definition: xtypes_dtype.hh:588
A DynamicData object represents an individual data sample. It provides reflective getters and setters...
Definition: xtypes_dtype.hh:1167
long ReturnCode_t
Definition: dds.hh:208
BoundSeq bound
The bound property indicates the bound of collection and similar types.
Definition: xtypes_dtype.hh:608
The DataWriter entity provides an interface for the application to publish (write) data...
Definition: dds.hh:2233
The DomainParticipant is used to configure, create and destroy Publisher, Subscriber and Topic object...
Definition: dds.hh:1087
An instance of DynamicType represent a type’s schema: its physical name, kind, member definitions (i...
Definition: xtypes_dtype.hh:963
Sequence data type.
Definition: dds_seq.hh:61
A AnnotationDescriptor object comprises the state of an annotation as it is applied to some element...
Definition: xtypes_dtype.hh:490
DDS::TypeObject * TypecodeQosPolicy_to_typeobject(TypecodeQosPolicy *tc_qos)
Helper function to get DDS::TypeObject from a discovered (or otherwise obtained) TypeCode byte buffer...
The Subscriber configures, creates, manages and destroys DataReaders.
Definition: dds.hh:1797
A TypeDescriptor comprises the state of a type.
Definition: xtypes_dtype.hh:561
TopicDescription is an abstract &#39;class&#39; that provides the foundation for Topic, ContentFilteredTopic...
Definition: dds.hh:2010
TypeKind kind
the &#39;kind&#39; of this type
Definition: xtypes_dtype.hh:572
The DataReaderListener provides asynchronous notification of DataReader events.
Definition: dds.hh:3399
An instance of this type is responsible for creating DynamicType and DynamicTypeSupport objects...
Definition: xtypes_dtype.hh:78
This type is responsible for creating DynamicData instances.
Definition: xtypes_dtype.hh:1068
The DataReader entity allows the application to subscribe to and read data.
Definition: dds.hh:2520
A MemberDescriptor comprises the state of a DynamicTypeMember.
Definition: xtypes_dtype.hh:667
Typecode representing the datatype a DataReader reads or a DataWriter writes.
Definition: dds_builtin.hh:1404
Topic is the basic description of data to be published or subscribed.
Definition: dds.hh:2051
Provides the DDS infrastructure.
Definition: dds_builtin_basic.hh:27
class DynamicType * discriminator_type
If this descriptor represents a union type, this field indicates the type of the discriminator of the...
Definition: xtypes_dtype.hh:592
class DynamicType * element_type
If this descriptor represents an array, sequence, or string type, this property indicates the element...
Definition: xtypes_dtype.hh:622
class DynamicType * type
Definition: xtypes_dtype.hh:505
DDS::sequence< char * > StringSeq
sequence of character pointers (c strings)
Definition: dds.hh:262
Structure that holds DataWriter Quality of Service policies.
Definition: dds.hh:619
unsigned long StatusMask
Definition: dds.hh:217
The DataWriterListener provides asynchronous notification of DataWriter events.
Definition: dds.hh:3298
Structure that holds DataReader Quality of Service policies.
Definition: dds.hh:704
ObjectName name
the &#39;name&#39; of this type
Definition: xtypes_dtype.hh:575
The Publisher configures, creates, manages and destroys DataWriters.
Definition: dds.hh:1588
A DynamicTypeBuilder object represents the state of a particular type defined according to the Type S...
Definition: xtypes_dtype.hh:795
A DynamicTypeMember represents a "member" of a type. A "member" in this sense may be a member of an a...
Definition: xtypes_dtype.hh:723
class DynamicType * key_element_type
If this descriptor represents a map type, this property indicates the value element type of the map...
Definition: xtypes_dtype.hh:630
The DynamicTypeSupport interface extends the TypeSupport interface defined by the DDS specification...
Definition: xtypes_dtype.hh:411

© 2009-2020 Twin Oaks Computing, Inc
Castle Rock, CO 80104
All rights reserved.