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_SERVICE_CLIENT_LINK_H
00029 #define ROSCPP_SERVICE_CLIENT_LINK_H
00030
00031 #include "ros/common.h"
00032
00033 #include <boost/thread/mutex.hpp>
00034 #include <boost/shared_array.hpp>
00035 #include <boost/enable_shared_from_this.hpp>
00036 #include <boost/signals2/connection.hpp>
00037
00038 #include <queue>
00039
00040 namespace ros
00041 {
00042 class Header;
00043 class ServicePublication;
00044 typedef boost::weak_ptr<ServicePublication> ServicePublicationWPtr;
00045 typedef boost::shared_ptr<ServicePublication> ServicePublicationPtr;
00046 class Connection;
00047 typedef boost::shared_ptr<Connection> ConnectionPtr;
00048
00052 class ROSCPP_DECL ServiceClientLink : public boost::enable_shared_from_this<ServiceClientLink>
00053 {
00054 public:
00055 ServiceClientLink();
00056 virtual ~ServiceClientLink();
00057
00058
00059 bool initialize(const ConnectionPtr& connection);
00060 bool handleHeader(const Header& header);
00061
00067 void processResponse(bool ok, const SerializedMessage& res);
00068
00069 const ConnectionPtr& getConnection() { return connection_; }
00070
00071 private:
00072 void onConnectionDropped(const ConnectionPtr& conn);
00073
00074 void onHeaderWritten(const ConnectionPtr& conn);
00075 void onRequestLength(const ConnectionPtr& conn, const boost::shared_array<uint8_t>& buffer, uint32_t size, bool success);
00076 void onRequest(const ConnectionPtr& conn, const boost::shared_array<uint8_t>& buffer, uint32_t size, bool success);
00077 void onResponseWritten(const ConnectionPtr& conn);
00078
00079 ConnectionPtr connection_;
00080 ServicePublicationWPtr parent_;
00081 bool persistent_;
00082 boost::signals2::connection dropped_conn_;
00083 };
00084 typedef boost::shared_ptr<ServiceClientLink> ServiceClientLinkPtr;
00085
00086 }
00087
00088 #endif // ROSCPP_PUBLISHER_DATA_HANDLER_H
00089
00090
00091
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Tue Mar 7 2017 03:44:47