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_SUBSCRIBER_LINK_H
00029 #define ROSCPP_TRANSPORT_SUBSCRIBER_LINK_H
00030 #include "common.h"
00031 #include "subscriber_link.h"
00032
00033 #include <boost/signals/connection.hpp>
00034
00035 namespace ros
00036 {
00037
00041 class ROSCPP_DECL TransportSubscriberLink : public SubscriberLink
00042 {
00043 public:
00044 TransportSubscriberLink();
00045 virtual ~TransportSubscriberLink();
00046
00047
00048 bool initialize(const ConnectionPtr& connection);
00049 bool handleHeader(const Header& header);
00050
00051 const ConnectionPtr& getConnection() { return connection_; }
00052
00053 virtual void enqueueMessage(const SerializedMessage& m, bool ser, bool nocopy);
00054 virtual void drop();
00055 virtual std::string getTransportType();
00056
00057 private:
00058 void onConnectionDropped(const ConnectionPtr& conn);
00059
00060 void onHeaderWritten(const ConnectionPtr& conn);
00061 void onMessageWritten(const ConnectionPtr& conn);
00062 void startMessageWrite(bool immediate_write);
00063
00064 bool writing_message_;
00065 bool header_written_;
00066
00067 ConnectionPtr connection_;
00068 boost::signals::connection dropped_conn_;
00069
00070 std::queue<SerializedMessage> outbox_;
00071 boost::mutex outbox_mutex_;
00072 bool queue_full_;
00073 };
00074 typedef boost::shared_ptr<TransportSubscriberLink> TransportSubscriberLinkPtr;
00075
00076 }
00077
00078 #endif // ROSCPP_TRANSPORT_SUBSCRIBER_LINK_H
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