• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

src/hpp/dds/xtypes/dds_xtypes_fwd.hpp

Go to the documentation of this file.
00001 #ifndef OMG_DDS_XTYPES_FWD_HPP_
00002 #define OMG_DDS_XTYPES_FWD_HPP_
00003 
00004 
00005 /* Copyright 2010, Object Management Group, Inc.
00006  * Copyright 2010, PrismTech, Corp.
00007  * Copyright 2010, Real-Time Innovations, Inc.
00008  * All rights reserved.
00009  *
00010  * Licensed under the Apache License, Version 2.0 (the "License");
00011  * you may not use this file except in compliance with the License.
00012  * You may obtain a copy of the License at
00013  *
00014  *     http://www.apache.org/licenses/LICENSE-2.0
00015  *
00016  * Unless required by applicable law or agreed to in writing, software
00017  * distributed under the License is distributed on an "AS IS" BASIS,
00018  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00019  * See the License for the specific language governing permissions and
00020  * limitations under the License.
00021  */
00022 #include <map>
00023 #include <vector>
00024 #include <dds/core/corefwd.hpp>
00025 #include <dds/core/macros.hpp>
00026 #include <tdds/xtypes/tdds_xtypes_fwd.hpp>
00027 #include <dds/pub/pubfwd.hpp>
00028 #include <dds/sub/subfwd.hpp>
00029 
00030 
00031 #ifdef OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT
00032 
00033 namespace dds { namespace type {
00034 
00035 namespace builtin { namespace detail {
00036         class KeyedBytes;
00037         class KeyedString;
00038 } }
00039 
00040 namespace dynamic { namespace detail {
00041         class AnnotationDescription;
00042         class DynamicData;
00043         class DynamicDataFactory;
00044         class DynamicType;
00045         class DynamicTypeFactory;
00046         class DynamicTypeMember;
00047         class MemberDescriptor;
00048         class TypeDescriptor;
00049 } }
00050 namespace typeobject { namespace detail {
00051         class AliasType;
00052         class AnnotationMember;
00053         class AnnotationMemberValue;
00054         class AnnotationType;
00055         class AnnotationUsage;
00056         class AnnotationUsageMember;
00057         class ArrayType;
00058         class Bit;
00059         class BitSetType;
00060         class EnumeratedConstant;
00061         class EnumerationType;
00062         class MapType;
00063         class MemberProperty;
00064         class Module;
00065         class SequenceType;
00066         class StringType;
00067         class StructureMember;
00068         class StructureType;
00069         class TypeLibrary;
00070         class TypeLibraryElement;
00071         class TypeObject;
00072         class TypeProperty;
00073         class UnionMember;
00074         class UnionType;
00075 
00076 } } } }
00077 
00078 
00079 namespace dds {
00080     namespace type {
00081 //        enum TypeKind;
00082 
00083         // --- Bound: --- //
00085         typedef unsigned long Bound;
00086 
00087         typedef std::vector<Bound> BoundSeq;
00088 
00089         const Bound UNBOUNDED_COLLECTION = 0;
00090 
00091         // --- Member ID: --- //
00093         typedef unsigned long MemberId;
00094 
00095         // --- Union case label sequence: --- //
00097         typedef std::vector<int32_t> UnionCaseLabelSeq;
00098 
00099         // --- Built-in Types: --- //
00100         namespace builtin {
00101             // --- Bytes: --- //
00102             class BytesDataReader;
00103             class BytesDataWriter;
00104 
00105             // --- String: --- //
00106             typedef dds::sub::DataReader<std::string> StringDataReader;
00107             typedef dds::pub::DataWriter<std::string> StringDataWriter;
00108 
00109             // --- Keyed bytes: --- //
00110             typedef tdds::type::builtin::KeyedBytes<dds::type::builtin::detail::KeyedBytes>
00111             KeyedBytes;
00112 
00113             class OMG_DDS_API KeyedBytesDataReader;
00114             class OMG_DDS_API KeyedBytesDataWriter;
00115 
00116             // --- Keyed string: --- //
00117             typedef tdds::type::builtin::KeyedString<dds::type::builtin::detail::KeyedString>
00118             KeyedString;
00119 
00120             class OMG_DDS_API KeyedStringDataReader;
00121             class OMG_DDS_API KeyedStringDataWriter;
00122         }
00123 
00124         // --- Dynamic Language Binding: --- //
00125         namespace dynamic {
00126             // --- Annotation descriptor: --- //
00127             typedef tdds::type::dynamic::AnnotationDescriptor<dds::type::dynamic::detail::AnnotationDescription>
00128             AnnotationDescriptor;
00129 
00130             typedef std::vector<AnnotationDescriptor> AnnotationDescriptorSeq;
00131 
00132             // --- Dynamic data: --- //
00133             typedef tdds::type::dynamic::DynamicData<dds::type::dynamic::detail::DynamicData>
00134             DynamicData;
00135 
00136             // --- Dynamic data factory: --- //
00137             typedef tdds::type::dynamic::DynamicDataFactory<dds::type::dynamic::detail::DynamicDataFactory>
00138             DynamicDataFactory;
00139 
00140             // --- Dynamic type: --- //
00141             typedef tdds::type::dynamic::DynamicType<dds::type::dynamic::detail::DynamicType>
00142             DynamicType;
00143 
00144             // --- Dynamic type factory: --- //
00145             typedef tdds::type::dynamic::DynamicTypeFactory<dds::type::dynamic::detail::DynamicTypeFactory>
00146             DynamicTypeFactory;
00147 
00148             // --- Dynamic type member: --- //
00149             typedef tdds::type::dynamic::DynamicTypeMember<dds::type::dynamic::detail::DynamicTypeMember>
00150             DynamicTypeMember;
00151 
00152             typedef std::map<std::string, DynamicTypeMember>
00153             DynamicTypeMembersByName;
00154 
00155             typedef std::map<dds::type::MemberId, DynamicTypeMember>  
00156             DynamicTypeMembersById;
00157 
00158             // --- Include path sequence: --- //
00159             typedef std::vector<std::string> IncludePathSeq;
00160             
00161             // --- Member descriptor: --- //
00162             typedef tdds::type::dynamic::MemberDescriptor<dds::type::dynamic::detail::MemberDescriptor>
00163             MemberDescriptor;
00164             
00165             // --- Parameters: --- //
00166             typedef std::map<std::string, std::string> Parameters;
00167 
00168             // --- Type descriptor: --- //
00169             typedef tdds::type::dynamic::TypeDescriptor<dds::type::dynamic::detail::TypeDescriptor>
00170             TypeDescriptor;
00171         }
00172 
00173         // --- Type Object Type Representation: --- //
00174         namespace typeobject {
00175             // --- Alias type: --- //
00176             typedef tdds::type::typeobject::AliasType<dds::type::typeobject::detail::AliasType>
00177             AliasType;
00178 
00179             // --- Annotation member: --- //
00180             typedef tdds::type::typeobject::AnnotationMember<dds::type::typeobject::detail::AnnotationMember>
00181             AnnotationMember;
00182 
00183             typedef std::vector<AnnotationMember> AnnotationMemberSeq;
00184 
00185             // --- Annotation member value: --- //
00186             typedef tdds::type::typeobject::AnnotationMemberValue<dds::type::typeobject::detail::AnnotationMemberValue>
00187             AnnotationMemberValue;
00188 
00189             // --- Annotation type: --- //
00190             typedef tdds::type::typeobject::AnnotationType<dds::type::typeobject::detail::AnnotationType>
00191             AnnotationType;
00192             
00193             // --- Annotation usage: --- //
00194             typedef tdds::type::typeobject::AnnotationUsage<dds::type::typeobject::detail::AnnotationUsage>
00195             AnnotationUsage;
00196 
00197             typedef std::vector<AnnotationUsage> AnnotationUsageSeq;
00198 
00199             // --- Annotation usage member: --- //
00200             typedef tdds::type::typeobject::AnnotationUsageMember<dds::type::typeobject::detail::AnnotationUsageMember>
00201             AnnotationUsageMember;
00202 
00203             typedef std::vector<AnnotationUsageMember> AnnotationUsageMemberSeq;
00204 
00205             // --- Array type: --- //
00206             typedef tdds::type::typeobject::ArrayType<dds::type::typeobject::detail::ArrayType>
00207             ArrayType;
00208 
00209             // --- Bit: --- //
00210             typedef tdds::type::typeobject::Bit<dds::type::typeobject::detail::Bit> Bit;
00211 
00212             typedef std::vector<Bit> BitSeq;
00213 
00214             // --- Bit set type: --- //
00215             typedef tdds::type::typeobject::BitSetType<dds::type::typeobject::detail::BitSetType>
00216             BitSetType;
00217 
00218             // --- Enumerated constant: --- //
00219             typedef tdds::type::typeobject::EnumeratedConstant<dds::type::typeobject::detail::EnumeratedConstant>
00220             EnumeratedConstant;
00221 
00222             typedef std::vector<EnumeratedConstant> EnumeratedConstantSeq;
00223 
00224             // --- Enumeration type: --- //
00225             typedef tdds::type::typeobject::EnumerationType< dds::type::typeobject::detail::EnumerationType>
00226             EnumerationType;
00227             
00228             // --- Map type: --- //
00229             typedef tdds::type::typeobject::MapType<dds::type::typeobject::detail::MapType>
00230             MapType;
00231 
00232             // --- Member property: --- //
00233             typedef tdds::type::typeobject::MemberProperty<dds::type::typeobject::detail::MemberProperty>
00234             MemberProperty;
00235 
00236             // --- Module: --- //
00237             typedef tdds::type::typeobject::Module<dds::type::typeobject::detail::Module>
00238             Module;
00239 
00240             // --- Sequence type: --- //
00241             typedef tdds::type::typeobject::SequenceType<dds::type::typeobject::detail::SequenceType>
00242             SequenceType;
00243 
00244             // --- String type: --- //
00245             typedef tdds::type::typeobject::StringType<dds::type::typeobject::detail::StringType>
00246             StringType;
00247 
00248             // --- Structure member: --- //
00249             typedef tdds::type::typeobject::StructureMember<dds::type::typeobject::detail::StructureMember>
00250             StructureMember;
00251 
00252             typedef std::vector<StructureMember> StructureMemberSeq;
00253 
00254             // --- Structure type: --- //
00255             typedef tdds::type::typeobject::StructureType<dds::type::typeobject::detail::StructureType>
00256             StructureType;
00257 
00258             // --- Type ID --- //
00259             typedef long TypeId;
00260 
00261             // --- Type library: --- //
00262             typedef tdds::type::typeobject::TypeLibrary<dds::type::typeobject::detail::TypeLibrary>
00263             TypeLibrary;
00264 
00265             // --- Type library element: --- //
00266             typedef tdds::type::typeobject::TypeLibraryElement<dds::type::typeobject::detail::TypeLibraryElement>
00267             TypeLibraryElement;
00268 
00269             typedef std::vector<TypeLibraryElement> TypeLibraryElementSeq;
00270 
00271             // --- Type library: --- //
00272             typedef tdds::type::typeobject::TypeObject<dds::type::typeobject::detail::TypeObject>
00273             TypeObject;
00274 
00275             // --- Type property: --- //
00276             typedef tdds::type::typeobject::TypeProperty<dds::type::typeobject::detail::TypeProperty>
00277             TypeProperty;
00278 
00279             // --- Union member: --- //
00280             typedef tdds::type::typeobject::UnionMember<dds::type::typeobject::detail::UnionMember>
00281             UnionMember;
00282             
00283             typedef std::vector<UnionMember> UnionMemberSeq;
00284 
00285             // --- Union type: --- //
00286             typedef tdds::type::typeobject::UnionType<dds::type::typeobject::detail::UnionType>
00287             UnionType;
00288 
00289         }
00290     }
00291 }
00292 
00293 #endif  // OMG_DDS_EXTENSIBLE_AND_DYNAMIC_TOPIC_TYPE_SUPPORT
00294 
00295 
00296 #endif // !defined(OMG_DDS_XTYPES_FWD_HPP_)

Generated on Tue Nov 9 2010 02:16:21 for dds-psm-cxx-doc by  doxygen 1.7.1