Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROSCPP_PUBLISHER_LINK_H
00029 #define ROSCPP_PUBLISHER_LINK_H
00030
00031 #include "ros/common.h"
00032 #include "ros/transport_hints.h"
00033 #include "ros/header.h"
00034 #include "common.h"
00035 #include <boost/thread/mutex.hpp>
00036 #include <boost/shared_array.hpp>
00037 #include <boost/weak_ptr.hpp>
00038 #include <boost/enable_shared_from_this.hpp>
00039
00040 #include <queue>
00041
00042 namespace ros
00043 {
00044 class Header;
00045 class Message;
00046 class Subscription;
00047 typedef boost::shared_ptr<Subscription> SubscriptionPtr;
00048 typedef boost::weak_ptr<Subscription> SubscriptionWPtr;
00049 class Connection;
00050 typedef boost::shared_ptr<Connection> ConnectionPtr;
00051
00056 class ROSCPP_DECL PublisherLink : public boost::enable_shared_from_this<PublisherLink>
00057 {
00058 public:
00059 class Stats
00060 {
00061 public:
00062 uint64_t bytes_received_, messages_received_, drops_;
00063 Stats()
00064 : bytes_received_(0), messages_received_(0), drops_(0) { }
00065 };
00066
00067
00068 PublisherLink(const SubscriptionPtr& parent, const std::string& xmlrpc_uri, const TransportHints& transport_hints);
00069 virtual ~PublisherLink();
00070
00071 const Stats &getStats() { return stats_; }
00072 const std::string& getPublisherXMLRPCURI();
00073 int getConnectionID() const { return connection_id_; }
00074 const std::string& getCallerID() { return caller_id_; }
00075 bool isLatched() { return latched_; }
00076
00077 bool setHeader(const Header& header);
00078
00082 virtual void handleMessage(const SerializedMessage& m, bool ser, bool nocopy) = 0;
00083 virtual std::string getTransportType() = 0;
00084 virtual std::string getTransportInfo() = 0;
00085 virtual void drop() = 0;
00086
00087 const std::string& getMD5Sum();
00088
00089 protected:
00090 SubscriptionWPtr parent_;
00091 unsigned int connection_id_;
00092 std::string publisher_xmlrpc_uri_;
00093
00094 Stats stats_;
00095
00096 TransportHints transport_hints_;
00097
00098 bool latched_;
00099 std::string caller_id_;
00100 Header header_;
00101 std::string md5sum_;
00102 };
00103
00104 }
00105
00106 #endif // ROSCPP_PUBLISHER_LINK_H
00107
00108
00109
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Thu Jun 6 2019 21:10:05