CoreDX DDS C++ Reference Manual
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-2016 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( unsigned int, 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 unsigned int bound ) = 0;
190  virtual class DynamicTypeBuilder * create_wstring_type ( /* IN */ const unsigned int bound ) = 0;
212  virtual class DynamicTypeBuilder * create_sequence_type ( /* IN */ const class DynamicType * element_type,
213  /* IN */ const unsigned int 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 unsigned int bound ) = 0;
278  virtual class DynamicTypeBuilder * create_bitset_type ( /* IN */ const unsigned int 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 unsigned int 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 
473  protected:
474  virtual DataReader * alloc_datareader ( ) = 0;
475  virtual DataWriter * alloc_datawriter ( ) = 0;
476 
477  }; //DynamicTypeSupport
478 
479 
485  class COREDX_CPP_CLASS_API AnnotationDescriptor
486  {
487  public:
492  AnnotationDescriptor& operator=( const AnnotationDescriptor & other);
493 
496  class DynamicType * type;
515  ReturnCode_t get_value ( /* INOUT */ char ** value,
516  /* IN */ const char * key );
522  ReturnCode_t get_all_value ( /* INOUT */ Parameters * value );
527  ReturnCode_t set_value ( /* IN */ const char * key,
528  /* IN */ const char * value );
533  ReturnCode_t copy_from ( /* IN */ const class AnnotationDescriptor * other );
538  unsigned char equals ( /* IN */ const class AnnotationDescriptor * other );
543  unsigned char is_consistent ( );
544 
545  }; //AnnotationDescriptor
546 
551  class COREDX_CPP_CLASS_API TypeDescriptor
552  {
553  public:
555  TypeDescriptor();
556  TypeDescriptor( const TypeDescriptor & other );
557  ~TypeDescriptor();
558  TypeDescriptor& operator=( const TypeDescriptor & other);
559 
562  TypeKind kind;
565  ObjectName name;
598  BoundSeq bound;
621 
632  ReturnCode_t copy_from ( /* IN */ const class TypeDescriptor * other );
639  unsigned char equals ( /* IN */ const class TypeDescriptor * other );
648  unsigned char is_consistent ( );
649 
650  }; //TypeDescriptor
651 
652 
657  class COREDX_CPP_CLASS_API MemberDescriptor
658  {
659  public:
662  MemberDescriptor( const MemberDescriptor & other );
663  ~MemberDescriptor();
664  MemberDescriptor& operator=( const MemberDescriptor & other);
665 
666  ObjectName name;
667  MemberId id;
668  class DynamicType * type;
669  char * default_value;
670  unsigned int index;
671  UnionCaseLabelSeq label;
672  unsigned char default_label;
673 
685  ReturnCode_t copy_from ( /* IN */ const class MemberDescriptor * descriptor );
692  unsigned char equals ( /* IN */ const class MemberDescriptor * descriptor );
701  unsigned char is_consistent ( );
702 
703  }; //MemberDescriptor
704 
713  class COREDX_CPP_CLASS_API DynamicTypeMember
714  {
715  protected:
718  DynamicTypeMember( const DynamicTypeMember & other );
719  virtual ~DynamicTypeMember();
720  virtual DynamicTypeMember& operator=( const DynamicTypeMember & other)=0;
721 
722  public:
731  virtual ReturnCode_t get_descriptor ( /* INOUT */ class MemberDescriptor * descriptor ) = 0;
737  virtual unsigned int get_annotation_count ( ) = 0;
743  virtual ReturnCode_t get_annotation ( /* INOUT */ class AnnotationDescriptor * descriptor,
744  /* IN */ const unsigned int idx ) = 0;
751  virtual unsigned char equals ( /* IN */ const class DynamicTypeMember * other ) = 0;
757  virtual MemberId get_id ( ) = 0;
763  virtual const char * get_name ( ) = 0;
767  virtual MemberFlag get_flags ( ) = 0;
771  virtual ReturnCode_t set_flags ( MemberFlag f ) = 0;
772 
773  }; //DynamicTypeMember
774 
775 
785  class COREDX_CPP_CLASS_API DynamicTypeBuilder
786  {
787  protected:
790  DynamicTypeBuilder( const DynamicTypeBuilder & other );
791  virtual ~DynamicTypeBuilder();
792  virtual DynamicTypeBuilder& operator=( const DynamicTypeBuilder & other) = 0;
793 
794  public:
801  virtual ReturnCode_t get_descriptor ( /* INOUT */ class TypeDescriptor * descriptor ) = 0;
806  virtual const char * get_name ( ) = 0;
812  virtual TypeKind get_kind ( ) = 0;
825  virtual ReturnCode_t get_member_by_name ( /* INOUT */ class DynamicTypeMember ** member,
826  /* IN */ const char * name ) = 0;
834  virtual ReturnCode_t get_all_members_by_name ( /* INOUT */ DynamicTypeMembersByName * member ) = 0;
847  virtual ReturnCode_t get_member ( /* INOUT */ class DynamicTypeMember ** member,
848  /* IN */ const MemberId id ) = 0;
856  virtual ReturnCode_t get_all_members ( /* INOUT */ DynamicTypeMembersById * member ) = 0;
862  virtual unsigned int get_annotation_count ( ) = 0;
868  virtual ReturnCode_t get_annotation ( /* INOUT */ class AnnotationDescriptor * descriptor,
869  /* IN */ const unsigned int idx ) = 0;
876  virtual unsigned char equals ( /* IN */ const class DynamicType * other ) = 0;
885  virtual ReturnCode_t add_member ( /* IN */ const class MemberDescriptor * descriptor ) = 0;
895  virtual ReturnCode_t apply_annotation ( /* IN */ const class AnnotationDescriptor * descriptor ) = 0;
903  virtual class DynamicType *build ( ) = 0;
904 
905  /* CDX API: This seems to be missing from standard API */
912  virtual ReturnCode_t delete_type ( /* IN */ class DynamicType * type ) = 0;
913 
914  }; //DynamicTypeBuilder
915 
916 
925  class COREDX_CPP_CLASS_API DynamicType
926  {
927  protected:
929  DynamicType();
930  DynamicType( const DynamicType & other );
931  virtual ~DynamicType();
932  virtual DynamicType& operator=( const DynamicType & other) = 0;
933 
934  public:
942  virtual ReturnCode_t get_descriptor ( /* INOUT */ class TypeDescriptor * descriptor ) const = 0;
949  virtual const char * get_name ( ) = 0;
956  virtual TypeKind get_kind ( ) = 0;
969  virtual ReturnCode_t get_member_by_name ( /* INOUT */ class DynamicTypeMember ** member,
970  /* IN */ const char * name ) const = 0;
978  virtual ReturnCode_t get_all_members_by_name ( /* INOUT */ DynamicTypeMembersByName * member ) const = 0;
991  virtual ReturnCode_t get_member ( /* INOUT */ class DynamicTypeMember ** member,
992  /* IN */ const MemberId id ) const = 0;
1000  virtual ReturnCode_t get_all_members ( /* INOUT */ DynamicTypeMembersById * member ) const = 0;
1006  virtual unsigned int get_annotation_count ( ) = 0;
1012  virtual ReturnCode_t get_annotation ( /* INOUT */ class AnnotationDescriptor * descriptor,
1013  /* IN */ const unsigned int * idx ) = 0;
1020  virtual unsigned char equals ( /* IN */ const class DynamicType * other ) = 0;
1021 
1022  }; //DynamicType
1023 
1030  class COREDX_CPP_CLASS_API DynamicDataFactory
1031  {
1032  protected:
1035  DynamicDataFactory( const DynamicDataFactory & other );
1036  ~DynamicDataFactory();
1037  private:
1038  DynamicDataFactory& operator=( const DynamicDataFactory & other);
1039 
1040  public:
1045  static DynamicDataFactory * get_instance ( );
1050  static ReturnCode_t delete_instance ( );
1058  class DynamicData * create_data ( /* IN */ const class DynamicType * type );
1062  ReturnCode_t delete_data ( /* IN */ const class DynamicData * data );
1063 
1064  }; //DynamicDataFactory
1065 
1066 
1129  class COREDX_CPP_CLASS_API DynamicData
1130  {
1131  protected:
1133  DynamicData();
1134  DynamicData( const DynamicData & other );
1135  ~DynamicData();
1136  DynamicData& operator=( const DynamicData & other);
1137 
1138  public:
1143  virtual const class DynamicType * get_type ( void ) = 0;
1144 
1151  virtual ReturnCode_t get_descriptor ( /* INOUT */ class MemberDescriptor * value,
1152  /* IN */ const MemberId id ) = 0;
1156  virtual ReturnCode_t set_descriptor ( /* IN */ const MemberId id,
1157  /* IN */ const class MemberDescriptor * value ) = 0;
1171  virtual unsigned char equals ( /* IN */ const class DynamicData * other ) = 0;
1175  virtual MemberId get_member_id_by_name ( /* IN */ const char * name ) = 0;
1179  virtual MemberId get_member_id_at_index ( /* IN */ const unsigned int index ) = 0;
1201  virtual unsigned int get_item_count ( ) = 0;
1202 
1203  /* CoreDX DDS addition: for use with MAP instances */
1207  virtual ReturnCode_t get_name_by_id ( /* OUT */ const char ** name_str,
1208  /* IN */ const MemberId id ) = 0;
1209 
1235  virtual ReturnCode_t clear_all_values ( ) = 0;
1240  virtual ReturnCode_t clear_nonkey_values ( ) = 0;
1245  virtual ReturnCode_t clear_value ( /* IN */ const MemberId id ) = 0;
1246 
1263  virtual class DynamicData * loan_value ( /* IN */ const MemberId id ) = 0;
1273  virtual ReturnCode_t return_loaned_value ( /* IN */ const class DynamicData * value ) = 0;
1279  virtual class DynamicData * clone ( ) = 0;
1290  virtual ReturnCode_t get_int32_value ( /* INOUT */ int * value,
1291  /* IN */ const MemberId id ) = 0;
1302  virtual ReturnCode_t set_int32_value ( /* IN */ const MemberId id,
1303  /* IN */ const int value ) = 0;
1314  virtual ReturnCode_t get_uint32_value ( /* INOUT */ unsigned int * value,
1315  /* IN */ const MemberId id ) = 0;
1326  virtual ReturnCode_t set_uint32_value ( /* IN */ const MemberId id,
1327  /* IN */ const unsigned int value ) = 0;
1338  virtual ReturnCode_t get_int16_value ( /* INOUT */ short * value,
1339  /* IN */ const MemberId id ) = 0;
1350  virtual ReturnCode_t set_int16_value ( /* IN */ const MemberId id,
1351  /* IN */ const short value ) = 0;
1362  virtual ReturnCode_t get_uint16_value ( /* INOUT */ unsigned short * value,
1363  /* IN */ const MemberId id ) = 0;
1374  virtual ReturnCode_t set_uint16_value ( /* IN */ const MemberId id,
1375  /* IN */ const unsigned short value ) = 0;
1386  virtual ReturnCode_t get_int64_value ( /* INOUT */ int64_t * value,
1387  /* IN */ const MemberId id ) = 0;
1398  virtual ReturnCode_t set_int64_value ( /* IN */ const MemberId id,
1399  /* IN */ const int64_t value ) = 0;
1410  virtual ReturnCode_t get_uint64_value ( /* INOUT */ uint64_t * value,
1411  /* IN */ const MemberId id ) = 0;
1422  virtual ReturnCode_t set_uint64_value ( /* IN */ const MemberId id,
1423  /* IN */ const uint64_t value ) = 0;
1434  virtual ReturnCode_t get_float32_value ( /* INOUT */ float * value,
1435  /* IN */ const MemberId id ) = 0;
1446  virtual ReturnCode_t set_float32_value ( /* IN */ const MemberId id,
1447  /* IN */ const float value ) = 0;
1458  virtual ReturnCode_t get_float64_value ( /* INOUT */ double * value,
1459  /* IN */ const MemberId id ) = 0;
1470  virtual ReturnCode_t set_float64_value ( /* IN */ const MemberId id,
1471  /* IN */ const double value ) = 0;
1482  virtual ReturnCode_t get_char8_value ( /* INOUT */ char * value,
1483  /* IN */ const MemberId id ) = 0;
1494  virtual ReturnCode_t set_char8_value ( /* IN */ const MemberId id,
1495  /* IN */ const char value ) = 0;
1506  virtual ReturnCode_t get_char32_value ( /* INOUT */ cdx_char32_t * value,
1507  /* IN */ const MemberId id ) = 0;
1518  virtual ReturnCode_t set_char32_value ( /* IN */ const MemberId id,
1519  /* IN */ const cdx_char32_t value ) = 0;
1530  virtual ReturnCode_t get_byte_value ( /* INOUT */ unsigned char * value,
1531  /* IN */ const MemberId id ) = 0;
1542  virtual ReturnCode_t set_byte_value ( /* IN */ const MemberId id,
1543  /* IN */ const unsigned char value ) = 0;
1554  virtual ReturnCode_t get_boolean_value ( /* INOUT */ unsigned char * value,
1555  /* IN */ const MemberId id ) = 0;
1566  virtual ReturnCode_t set_boolean_value ( /* IN */ const MemberId id,
1567  /* IN */ const unsigned char value ) = 0;
1578  virtual ReturnCode_t get_string_value ( /* INOUT */ char * * value,
1579  /* IN */ const MemberId id ) = 0;
1590  virtual ReturnCode_t set_string_value ( /* IN */ const MemberId id,
1591  /* IN */ const char * value ) = 0;
1602  virtual ReturnCode_t get_wstring_value ( /* INOUT */ cdx_char32_t * * value,
1603  /* IN */ const MemberId id ) = 0;
1614  virtual ReturnCode_t set_wstring_value ( /* IN */ const MemberId id,
1615  /* IN */ const cdx_char32_t * value ) = 0;
1626  virtual ReturnCode_t get_complex_value ( /* INOUT */ class DynamicData ** value,
1627  /* IN */ const MemberId id ) = 0;
1638  virtual ReturnCode_t set_complex_value ( /* IN */ const MemberId id,
1639  /* IN */ class DynamicData * value ) = 0;
1644  virtual ReturnCode_t get_int32_values ( /* INOUT */ Int32Seq * value,
1645  /* IN */ const MemberId id ) = 0;
1650  virtual ReturnCode_t set_int32_values ( /* IN */ const MemberId id,
1651  /* IN */ const Int32Seq * value ) = 0;
1656  virtual ReturnCode_t get_uint32_values ( /* INOUT */ UInt32Seq * value,
1657  /* IN */ const MemberId id ) = 0;
1662  virtual ReturnCode_t set_uint32_values ( /* IN */ const MemberId id,
1663  /* IN */ const UInt32Seq * value ) = 0;
1668  virtual ReturnCode_t get_int16_values ( /* INOUT */ Int16Seq * value,
1669  /* IN */ const MemberId id ) = 0;
1674  virtual ReturnCode_t set_int16_values ( /* IN */ const MemberId id,
1675  /* IN */ const Int16Seq * value ) = 0;
1680  virtual ReturnCode_t get_uint16_values ( /* INOUT */ UInt16Seq * value,
1681  /* IN */ const MemberId id ) = 0;
1686  virtual ReturnCode_t set_uint16_values ( /* IN */ const MemberId id,
1687  /* IN */ const UInt16Seq * value ) = 0;
1692  virtual ReturnCode_t get_int64_values ( /* INOUT */ Int64Seq * value,
1693  /* IN */ const MemberId id ) = 0;
1698  virtual ReturnCode_t set_int64_values ( /* IN */ const MemberId id,
1699  /* IN */ const Int64Seq * value ) = 0;
1704  virtual ReturnCode_t get_uint64_values ( /* INOUT */ UInt64Seq * value,
1705  /* IN */ const MemberId id ) = 0;
1710  virtual ReturnCode_t set_uint64_values ( /* IN */ const MemberId id,
1711  /* IN */ const UInt64Seq * value ) = 0;
1716  virtual ReturnCode_t get_float32_values ( /* INOUT */ Float32Seq * value,
1717  /* IN */ const MemberId id ) = 0;
1722  virtual ReturnCode_t set_float32_values ( /* IN */ const MemberId id,
1723  /* IN */ const Float32Seq * value ) = 0;
1728  virtual ReturnCode_t get_float64_values ( /* INOUT */ Float64Seq * value,
1729  /* IN */ const MemberId id ) = 0;
1734  virtual ReturnCode_t set_float64_values ( /* IN */ const MemberId id,
1735  /* IN */ const Float64Seq * value ) = 0;
1740  virtual ReturnCode_t get_char8_values ( /* INOUT */ CharSeq * value,
1741  /* IN */ const MemberId id ) = 0;
1746  virtual ReturnCode_t set_char8_values ( /* IN */ const MemberId id,
1747  /* IN */ const CharSeq * value ) = 0;
1752  virtual ReturnCode_t get_char32_values ( /* INOUT */ WcharSeq * value,
1753  /* IN */ const MemberId id ) = 0;
1758  virtual ReturnCode_t set_char32_values ( /* IN */ const MemberId id,
1759  /* IN */ const WcharSeq * value ) = 0;
1764  virtual ReturnCode_t get_byte_values ( /* INOUT */ ByteSeq * value,
1765  /* IN */ const MemberId id ) = 0;
1770  virtual ReturnCode_t set_byte_values ( /* IN */ const MemberId id,
1771  /* IN */ const ByteSeq * value ) = 0;
1776  virtual ReturnCode_t get_boolean_values ( /* INOUT */ BooleanSeq * value,
1777  /* IN */ const MemberId id ) = 0;
1782  virtual ReturnCode_t set_boolean_values ( /* IN */ const MemberId id,
1783  /* IN */ const BooleanSeq * value ) = 0;
1788  virtual ReturnCode_t get_string_values ( /* INOUT */ StringSeq * value,
1789  /* IN */ const MemberId id ) = 0;
1794  virtual ReturnCode_t set_string_values ( /* IN */ const MemberId id,
1795  /* IN */ const StringSeq * value ) = 0;
1800  virtual ReturnCode_t get_wstring_values ( /* INOUT */ WstringSeq * value,
1801  /* IN */ const MemberId id ) = 0;
1806  virtual ReturnCode_t set_wstring_values ( /* IN */ const MemberId id,
1807  /* IN */ const WstringSeq * value ) = 0;
1808  }; //DynamicData
1809 
1810 
1811  // helpers to convert CoreDX TypeCode/TypeObject binary data to instance
1812  TypeObject * TypecodeQosPolicy_to_typeobject( TypecodeQosPolicy * typecode );
1813  TypeObject * DynamicType_to_TypeObject( DynamicType * dt);
1814 
1815 } /* namespace DDS */
1816 
1817 #endif
class DynamicType * base_type
the &#39;base_type&#39; of this type
Definition: xtypes_dtype.hh:578
A DynamicData object represents an individual data sample. It provides reflective getters and setters...
Definition: xtypes_dtype.hh:1129
long ReturnCode_t
Definition: dds.hh:200
BoundSeq bound
The bound property indicates the bound of collection and similar types.
Definition: xtypes_dtype.hh:598
The DataWriter entity provides an interface for the application to publish (write) data...
Definition: dds.hh:2179
The DomainParticipant is used to configure, create and destroy Publisher, Subscriber and Topic object...
Definition: dds.hh:1052
An instance of DynamicType represent a type’s schema: its physical name, kind, member definitions (i...
Definition: xtypes_dtype.hh:925
A AnnotationDescriptor object comprises the state of an annotation as it is applied to some element...
Definition: xtypes_dtype.hh:485
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:1743
A TypeDescriptor comprises the state of a type.
Definition: xtypes_dtype.hh:551
TopicDescription is an abstract &#39;class&#39; that provides the foundation for Topic, ContentFilteredTopic...
Definition: dds.hh:1956
TypeKind kind
the &#39;kind&#39; of this type
Definition: xtypes_dtype.hh:562
The DataReaderListener provides asynchronous notification of DataReader events.
Definition: dds.hh:3334
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:1030
The DataReader entity allows the application to subscribe to and read data.
Definition: dds.hh:2466
A MemberDescriptor comprises the state of a DynamicTypeMember.
Definition: xtypes_dtype.hh:657
Typecode representing the datatype a DataReader reads or a DataWriter writes.
Definition: dds_builtin.hh:1456
Topic is the basic description of data to be published or subscribed.
Definition: dds.hh:1997
Provides the DDS infrastructure.
Definition: dds_builtin_basic.hh:28
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:582
class DynamicType * element_type
If this descriptor represents an array, sequence, or string type, this property indicates the element...
Definition: xtypes_dtype.hh:612
class DynamicType * type
Definition: xtypes_dtype.hh:496
DDS::sequence< char * > StringSeq
sequence of character pointers (c strings)
Definition: dds.hh:254
Structure that holds DataWriter Quality of Service policies.
Definition: dds.hh:589
unsigned long StatusMask
Definition: dds.hh:209
The DataWriterListener provides asynchronous notification of DataWriter events.
Definition: dds.hh:3233
Structure that holds DataReader Quality of Service policies.
Definition: dds.hh:674
ObjectName name
the &#39;name&#39; of this type
Definition: xtypes_dtype.hh:565
The Publisher configures, creates, manages and destroys DataWriters.
Definition: dds.hh:1534
A DynamicTypeBuilder object represents the state of a particular type defined according to the Type S...
Definition: xtypes_dtype.hh:785
A DynamicTypeMember represents a "member" of a type. A "member" in this sense may be a member of an a...
Definition: xtypes_dtype.hh:713
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:620
The DynamicTypeSupport interface extends the TypeSupport interface defined by the DDS specification...
Definition: xtypes_dtype.hh:411

© 2009-2017 Twin Oaks Computing, Inc
Castle Rock, CO 80108
All rights reserved.