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 void drop() = 0;
00085
00086 const std::string& getMD5Sum();
00087
00088 protected:
00089 SubscriptionWPtr parent_;
00090 unsigned int connection_id_;
00091 std::string publisher_xmlrpc_uri_;
00092
00093 Stats stats_;
00094
00095 TransportHints transport_hints_;
00096
00097 bool latched_;
00098 std::string caller_id_;
00099 Header header_;
00100 std::string md5sum_;
00101 };
00102
00103 }
00104
00105 #endif // ROSCPP_PUBLISHER_LINK_H
00106
00107
00108
roscpp
Author(s): Morgan Quigley mquigley@cs.stanford.edu, Josh Faust jfaust@willowgarage.com, Brian Gerkey gerkey@willowgarage.com, Troy Straszheim straszheim@willowgarage.com
autogenerated on Sat Dec 28 2013 17:35:52