00001 00023 #ifndef OPENSPLICE_DDS_BROKER_H_ 00024 #define OPENSPLICE_DDS_BROKER_H_ 00025 00026 #include <iostream> 00027 #include <pluginlib/class_list_macros.h> 00028 #include <class_loader/multi_library_class_loader.h> 00029 00030 #include "GSDFPacket.h" 00031 #include "check_status.h" 00032 #include "publisher.h" 00033 #include "subscriber.h" 00034 00035 #include "micros_swarm/comm_interface.h" 00036 00037 namespace opensplice_dds_broker{ 00038 00039 class OpenSpliceDDSBroker : public micros_swarm::CommInterface{ 00040 public: 00041 OpenSpliceDDSBroker(); 00042 void init(std::string name, const micros_swarm::PacketParser& parser); 00043 void broadcast(const std::vector<uint8_t>& msg_data); 00044 void receive(); 00045 private: 00046 void callback(const opensplice_dds_broker::GSDFPacket& dds_msg); 00047 std::string name_; 00048 micros_swarm::PacketParser parser_; 00049 boost::shared_ptr<opensplice_dds_broker::Publisher> packet_publisher_; 00050 boost::shared_ptr<opensplice_dds_broker::Subscriber> packet_subscriber_; 00051 }; 00052 }; 00053 #endif