DDS-PSM-C++  1.0
ISO C++ API for OpenSplice DDS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
TMemberType.hpp
Go to the documentation of this file.
1 #ifndef OMG_DDS_CORE_XTYPES_TMEMBER_TYPE_HPP
2 #define OMG_DDS_CORE_XTYPES_TMEMBER_TYPE_HPP
3 
4 namespace dds {
5  namespace core {
6  namespace xtypes {
7  template <typename DELEGATE>
8  class TMemberType;
9 
10  template <typename T>
11  bool isOptional(const TMemberType<T>& m);
12 
13  template <typename T>
14  bool isShared(const TMemberType<T>& m);
15 
16  template <typename T>
17  bool isKey(const TMemberType<T>& m);
18 
19  template <typename T>
20  bool isMustUnderstand(const TMemberType<T>& m);
21 
22  template <typename T>
23  bool isBitset(const TMemberType<T>& m);
24 
25  template <typename T>
26  bool hasBitbound(const TMemberType<T>& m);
27 
28  template <typename T>
29  int32_t getBitbound(const TMemberType<T>& m);
30 
31  template <typename T>
32  bool hasId(const TMemberType<T>& m);
33 
34  template <typename T>
35  int32_t getId(const TMemberType<T>& m);
36  }
37  }
38 }
39 
43 template <typename DELEGATE>
45 public:
47 
48 public:
49  TMemberType(const std::string& name, const dds::core::xtypes::DynamicType& type);
50 
51  TMemberType(const std::string& name,
53  const Annotation& annotation
54  );
55 
56  template <typename AnnotationIter>
57  TMemberType(const std::string& name,
59  const AnnotationIter& begin,
60  const AnnotationIter& end);
61 
62 
63  TMemberType(const std::string& name,
65  const std::vector<Annotation>& annotations
66  );
67 
68 public:
69  const std::string& name() const;
70  const dds::core::xtypes::DynamicType& type() const;
71 
72 public:
73  TMemberType add_annotation(const Annotation& annotation);
74  TMemberType remove_annotation(const Annotation& annotation);
75 };
76 
77 #endif /* OMG_DDS_CORE_XTYPES_TMEMBER_TYPE_HPP */