00001 #ifndef _DDS_HELPER_H_ 00002 #define _DDS_HELPER_H_ 00003 00004 #include <iostream> 00005 #include <string.h> 00006 #include <dds/DCPS/Service_Participant.h> 00007 #include <dds/DCPS/Marked_Default_Qos.h> 00008 #include <dds/DCPS/transport/framework/TheTransportFactory.h> 00009 #include <dds/DCPS/transport/framework/TransportImpl.h> 00010 #include <dds/DCPS/transport/simpleTCP/SimpleTcpConfiguration.h> 00011 00012 const unsigned int DOMAIN_ID=411; 00013 00014 namespace ddsnc{ 00015 00026 class DDSHelper{ 00027 private: 00028 void setTopicName(const char* topicName); 00029 void init(const char* channelName, const char* DCPSInfoRepoLoc); 00030 /*int argc; 00031 const ACE_TCHAR* argv[];*/ 00032 00033 protected: 00034 DDS::DomainParticipantFactory_ptr dpf; 00035 OpenDDS::DCPS::TransportIdType transport_impl_id; 00036 DDS::DomainParticipant_var participant; 00037 OpenDDS::DCPS::TransportImpl_rch transport_impl; 00038 DDS::Topic_var topic; 00039 char* partitionName; 00040 char* topicName; 00041 bool initialized; 00052 DDSHelper(const char *channelName); 00053 00063 DDSHelper(const char* channelName, const char* DCPSInfoRepoLoc); 00064 00072 virtual ~DDSHelper(); 00073 int createParticipant(); 00074 00081 //Maybe this method could generate a race condition. It's neccessary to 00082 //test more. 00083 void initializeTransport(); 00084 00095 void initializeTopic(const char* topicName, CORBA::String_var typeName); 00096 00097 void initializeTopic(CORBA::String_var typeName); 00098 00099 void setPartitionName(const char* partitionName); 00100 00101 public: 00112 void disconnect(); 00113 DDS::TopicQos topicQos; 00114 00115 }; 00116 } 00117 00118 #endif