8 #ifndef OPENDDS_DCPS_TOPIC_DESCRIPTION_IMPL_H 9 #define OPENDDS_DCPS_TOPIC_DESCRIPTION_IMPL_H 15 #include <dds/DdsDcpsTopicC.h> 16 #include <dds/DdsDcpsTypeSupportExtC.h> 20 #if !defined (ACE_LACKS_PRAGMA_ONCE) 29 class DomainParticipantImpl;
44 const char* type_name,
45 TypeSupport_ptr type_support,
50 virtual char * get_type_name();
52 virtual char * get_name();
54 virtual DDS::DomainParticipant_ptr get_participant();
60 OpenDDS::DCPS::TypeSupport_ptr get_type_support();
63 return entity_refs_ > 0;
92 template <
typename Topic>
100 topic_->add_entity_ref();
107 topic_->remove_entity_ref();
112 : topic_(other.topic_)
115 topic_->add_entity_ref();
143 operator bool()
const
void swap(MessageBlock &lhs, MessageBlock &rhs)
Implements the OpenDDS::DCPS::DomainParticipant interfaces.
Atomic< ACE_UINT32 > entity_refs_
The number of entities using this topic.
TopicDescriptionPtr(const TopicDescriptionPtr &other)
TopicDescriptionPtr & operator=(Topic *other)
#define OpenDDS_Dcps_Export
ACE_CString type_name_
The datatype of the topic.
ACE_CString topic_name_
The name of the topic.
OpenDDS::DCPS::TypeSupport_var type_support_
The type_support for this topic.
TopicDescriptionPtr & operator=(const TopicDescriptionPtr &other)
Topic * operator->() const
virtual void _remove_ref()
bool has_entity_refs() const
TopicDescriptionPtr(Topic *topic=0)
DomainParticipantImpl * participant_
The participant that creates this topic.
Implements the DDS::TopicDescription interface.
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
The Internal API and Implementation of OpenDDS.