Go to the documentation of this file.00001 #ifndef OMG_DDS_DYNAMIC_TYPE_FACTORY_HPP_
00002 #define OMG_DDS_DYNAMIC_TYPE_FACTORY_HPP_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <string>
00023
00024 #include <dds/core/detail/conformance.hpp>
00025 #include <dds/core/Reference.hpp>
00026 #include <tdds/xtypes/tdds_xtypes_fwd.hpp>
00027
00028
00029 #ifdef OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT
00030
00031
00032 template <typename DELEGATE>
00033 class tdds::type::dynamic::DynamicTypeFactory : dds::core::Reference<DELEGATE>
00034 {
00035 OMG_DDS_REF_TYPE(DynamicTypeFactory, dds::core::Reference, DELEGATE)
00036
00037 public:
00038 static DynamicTypeFactory get_instance();
00039
00040 public:
00041 void close();
00042
00043 public:
00044 dds::type::dynamic::DynamicType
00045 primitive_type(dds::type::TypeKind kind) const;
00046
00047 dds::type::dynamic::DynamicType
00048 type(const dds::type::dynamic::TypeDescriptor& descriptor);
00049
00050 dds::type::dynamic::DynamicType
00051 string_type(dds::type::Bound bound);
00052
00053 dds::type::dynamic::DynamicType
00054 wstring_type(dds::type::Bound bound);
00055
00056 dds::type::dynamic::DynamicType
00057 sequence_type(
00058 const dds::type::dynamic::DynamicType& element_type,
00059 dds::type::Bound bound);
00060
00061 dds::type::dynamic::DynamicType array_type(
00062 const dds::type::dynamic::DynamicType& element_type,
00063 const dds::type::BoundSeq& bound);
00064
00065 dds::type::dynamic::DynamicType map_type(
00066 const dds::type::dynamic::DynamicType& key_element_type,
00067 const dds::type::dynamic::DynamicType& element_type,
00068 dds::type::Bound bound);
00069
00070 dds::type::dynamic::DynamicType
00071 bitset_type(dds::type::Bound bound);
00072
00073 public:
00074 dds::type::dynamic::DynamicType load_type_from_url(
00075 const std::string& document_url,
00076 const std::string& type_name,
00077 const dds::type::dynamic::IncludePathSeq& include_paths);
00078
00079 dds::type::dynamic::DynamicType load_type_from_document(
00080 const std::string& document,
00081 const std::string& type_name,
00082 const dds::type::dynamic::IncludePathSeq& include_paths);
00083 };
00084
00085
00086 #endif // defined(OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT)
00087
00088
00089 #endif // !defined(OMG_DDS_DYNAMIC_TYPE_FACTORY_HPP_)