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 std::string getTransportInfo();
00064 virtual void drop();
00065
00066 private:
00067 void onConnectionDropped(const ConnectionPtr& conn, Connection::DropReason reason);
00068 bool onHeaderReceived(const ConnectionPtr& conn, const Header& header);
00069
00073 virtual void handleMessage(const SerializedMessage& m, bool ser, bool nocopy);
00074
00075 void onHeaderWritten(const ConnectionPtr& conn);
00076 void onMessageLength(const ConnectionPtr& conn, const boost::shared_array<uint8_t>& buffer, uint32_t size, bool success);
00077 void onMessage(const ConnectionPtr& conn, const boost::shared_array<uint8_t>& buffer, uint32_t size, bool success);
00078
00079 void onRetryTimer(const ros::WallTimerEvent&);
00080
00081 ConnectionPtr connection_;
00082
00083 int32_t retry_timer_handle_;
00084 bool needs_retry_;
00085 WallDuration retry_period_;
00086 WallTime next_retry_;
00087 bool dropping_;
00088 };
00089 typedef boost::shared_ptr<TransportPublisherLink> TransportPublisherLinkPtr;
00090
00091 }
00092
00093 #endif // ROSCPP_TRANSPORT_PUBLISHER_LINK_H
00094
00095
00096
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Tue Mar 7 2017 03:44:47