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_TRANSPORT_PUBLISHER_LINK_H
00029 #define ROSCPP_TRANSPORT_PUBLISHER_LINK_H
00030
00031 #include "common.h"
00032 #include "publisher_link.h"
00033 #include "connection.h"
00034
00035 namespace ros
00036 {
00037 class Header;
00038 class Message;
00039 class Subscription;
00040 typedef boost::shared_ptr<Subscription> SubscriptionPtr;
00041 typedef boost::weak_ptr<Subscription> SubscriptionWPtr;
00042 class Connection;
00043 typedef boost::shared_ptr<Connection> ConnectionPtr;
00044
00045 class WallTimerEvent;
00046
00051 class ROSCPP_DECL TransportPublisherLink : public PublisherLink
00052 {
00053 public:
00054 TransportPublisherLink(const SubscriptionPtr& parent, const std::string& xmlrpc_uri, const TransportHints& transport_hints);
00055 virtual ~TransportPublisherLink();
00056
00057
00058 bool initialize(const ConnectionPtr& connection);
00059
00060 const ConnectionPtr& getConnection() { return connection_; }
00061
00062 virtual std::string getTransportType();
00063 virtual void drop();
00064
00065 private:
00066 void onConnectionDropped(const ConnectionPtr& conn, Connection::DropReason reason);
00067 bool onHeaderReceived(const ConnectionPtr& conn, const Header& header);
00068
00072 virtual void handleMessage(const SerializedMessage& m, bool ser, bool nocopy);
00073
00074 void onHeaderWritten(const ConnectionPtr& conn);
00075 void onMessageLength(const ConnectionPtr& conn, const boost::shared_array<uint8_t>& buffer, uint32_t size, bool success);
00076 void onMessage(const ConnectionPtr& conn, const boost::shared_array<uint8_t>& buffer, uint32_t size, bool success);
00077
00078 void onRetryTimer(const ros::WallTimerEvent&);
00079
00080 ConnectionPtr connection_;
00081
00082 int32_t retry_timer_handle_;
00083 bool needs_retry_;
00084 WallDuration retry_period_;
00085 WallTime next_retry_;
00086 bool dropping_;
00087 };
00088 typedef boost::shared_ptr<TransportPublisherLink> TransportPublisherLinkPtr;
00089
00090 }
00091
00092 #endif // ROSCPP_TRANSPORT_PUBLISHER_LINK_H
00093
00094
00095
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