MADARA  3.2.3
SpliceDDSTransport.h
Go to the documentation of this file.
1 #ifndef _MADARA_SPLICE_DDS_TRANSPORT_H__
2 #define _MADARA_SPLICE_DDS_TRANSPORT_H__
3 
4 #include <string>
5 
9 #include "ccpp_dds_dcps.h"
10 #include "madara/transport/splice/ccpp_SpliceKnowledgeUpdate.h"
12 
13 namespace madara
14 {
15  namespace transport
16  {
22  class SpliceDDSTransport : public Base
23  {
24  public:
25 
26  enum {
30  };
31 
32  static const int PROFILES = 2;
33 
41  SpliceDDSTransport (const std::string & id,
43  TransportSettings & config, bool launch_transport);
44 
49 
55  long send_data (const knowledge::VariableReferenceMap & updates) override;
56 
61  int reliability (void) const;
62 
67  int reliability (const int & setting);
68 
72  void close (void);
73 
79  int setup (void);
80  protected:
81  private:
82 
85 
88 
89  const static char * topic_names_[];
90  const static char * partition_;
91  const static char * ret_code_names[];
92 
93  DDS::DomainParticipantQos part_qos_;
94  DDS::TopicQos topic_qos_;
95  DDS::PublisherQos pub_qos_;
96  DDS::DataWriterQos datawriter_qos_;
97  DDS::SubscriberQos sub_qos_;
98  DDS::DataReaderQos datareader_qos_;
99 
100  DDS::DomainId_t domain_;
101  DDS::DomainParticipantFactory_var domain_factory_;
102  DDS::DomainParticipant_var domain_participant_;
103  DDS::Publisher_var publisher_;
104  DDS::Subscriber_var subscriber_;
105  DDS::DataWriter_var datawriter_;
106  DDS::DataReader_var datareader_;
107  DDS::DataWriter_var latencywriter_;
108 
109  Knowledge::UpdateDataWriter_var update_writer_;
110  Knowledge::UpdateDataWriter_var latency_update_writer_;
111  Knowledge::UpdateDataReader_var update_reader_;
112  Knowledge::UpdateTypeSupport update_type_support_;
113 
114  DDS::Topic_var update_topic_;
115 
119  int check_handle (void * handle, const char *info);
120 
124  int check_status (DDS::ReturnCode_t status, const char * info);
125 
129  const char * get_error_name (DDS::ReturnCode_t status);
130  };
131  }
132 }
133 
134 #endif
int reliability(void) const
Accesses reliability setting.
int check_status(DDS::ReturnCode_t status, const char *info)
Splice status checker.
This class stores variables and their values for use by any entity needing state information in a thr...
DDS::DomainParticipant_var domain_participant_
Knowledge::UpdateDataReader_var update_reader_
Holds basic transport settings.
Knowledge::UpdateDataWriter_var update_writer_
DDS::DomainParticipantFactory_var domain_factory_
long send_data(const knowledge::VariableReferenceMap &updates) override
Sends a list of knowledge updates to listeners.
static struct madara::knowledge::tags::string_t string
threads::Threader read_threads_
threads for reading knowledge updates
This class provides an interface into the Open Splice dissemination transport.
SpliceDDSTransport(const std::string &id, knowledge::ThreadSafeContext &context, TransportSettings &config, bool launch_transport)
Constructor.
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
knowledge::KnowledgeBase knowledge_
knowledge base for threads to use
Knowledge::UpdateDataWriter_var latency_update_writer_
Knowledge::UpdateTypeSupport update_type_support_
int setup(void)
Activates this transport.
Starts threads with first class support of MADARA contexts.
Definition: Threader.h:35
void close(void)
Closes this transport.
std::map< const char *, VariableReference, VariableReferenceMapCompare > VariableReferenceMap
a map of variable references
Copyright (c) 2015 Carnegie Mellon University.
const char * get_error_name(DDS::ReturnCode_t status)
Returns error name of the specific status.
Base class from which all transports must be derived.
Definition: Transport.h:45
int check_handle(void *handle, const char *info)
Splice handle checker.