00001
00002
00003
00004
00005
00006
00007
00008 #ifndef OPENDDS_DCPS_TYPESUPPORTIMPL_H
00009 #define OPENDDS_DCPS_TYPESUPPORTIMPL_H
00010
00011 #include "dcps_export.h"
00012 #include "dds/DCPS/Definitions.h"
00013 #include "dds/DdsDcpsTypeSupportExtC.h"
00014 #include "LocalObject.h"
00015
00016 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00017 #pragma once
00018 #endif
00019
00020 namespace OpenDDS {
00021 namespace DCPS {
00022
00023 class MetaStruct;
00024
00025 template <typename Message> struct DDSTraits;
00026
00027 class OpenDDS_Dcps_Export TypeSupportImpl
00028 : public virtual LocalObject<TypeSupport> {
00029 public:
00030 TypeSupportImpl() {}
00031
00032 virtual ~TypeSupportImpl();
00033
00034 #ifndef OPENDDS_NO_CONTENT_SUBSCRIPTION_PROFILE
00035 virtual const MetaStruct& getMetaStructForType() = 0;
00036 #endif
00037
00038 virtual DDS::ReturnCode_t register_type(DDS::DomainParticipant_ptr participant,
00039 const char* type_name);
00040
00041 virtual char* get_type_name();
00042
00043 private:
00044 virtual const char* default_type_name() const = 0;
00045
00046 CORBA::String_var type_name_;
00047
00048 OPENDDS_DELETED_COPY_CTOR_ASSIGN(TypeSupportImpl)
00049 };
00050
00051 }
00052 }
00053
00054 #endif