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 #include "forwards.h"
00029 #include "connection.h"
00030 #include "common.h"
00031
00032 #include <boost/thread/mutex.hpp>
00033 #include <boost/signals/connection.hpp>
00034
00035 namespace ros
00036 {
00037
00038 class PollManager;
00039 typedef boost::shared_ptr<PollManager> PollManagerPtr;
00040
00041 class ConnectionManager;
00042 typedef boost::shared_ptr<ConnectionManager> ConnectionManagerPtr;
00043
00044 class ROSCPP_DECL ConnectionManager
00045 {
00046 public:
00047 static const ConnectionManagerPtr& instance();
00048
00049 ConnectionManager();
00050 ~ConnectionManager();
00051
00054 uint32_t getNewConnectionID();
00055
00060 void addConnection(const ConnectionPtr& connection);
00061
00062 void clear(Connection::DropReason reason);
00063
00064 uint32_t getTCPPort();
00065 uint32_t getUDPPort();
00066
00067 const TransportTCPPtr& getTCPServerTransport() { return tcpserver_transport_; }
00068 const TransportUDPPtr& getUDPServerTransport() { return udpserver_transport_; }
00069
00070 void udprosIncomingConnection(const TransportUDPPtr& transport, Header& header);
00071
00072 void start();
00073 void shutdown();
00074
00075 private:
00076 void onConnectionDropped(const ConnectionPtr& conn);
00077
00078
00079
00080 void removeDroppedConnections();
00081
00082 bool onConnectionHeaderReceived(const ConnectionPtr& conn, const Header& header);
00083 void tcprosAcceptConnection(const TransportTCPPtr& transport);
00084
00085 PollManagerPtr poll_manager_;
00086
00087 S_Connection connections_;
00088 V_Connection dropped_connections_;
00089 boost::mutex connections_mutex_;
00090 boost::mutex dropped_connections_mutex_;
00091
00092
00093
00094 uint32_t connection_id_counter_;
00095 boost::mutex connection_id_counter_mutex_;
00096
00097 boost::signals::connection poll_conn_;
00098
00099 TransportTCPPtr tcpserver_transport_;
00100 TransportUDPPtr udpserver_transport_;
00101
00102 const static int MAX_TCPROS_CONN_QUEUE = 100;
00103 };
00104
00105 }
00106
roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Mon Oct 6 2014 11:46:44