TCPROS transport. More...
#include <transport_tcp.h>

| Public Types | |
| typedef boost::function< void(const TransportTCPPtr &)> | AcceptCallback | 
| enum | Flags { SYNCHRONOUS = 1<<0 } | 
| Public Member Functions | |
| TransportTCPPtr | accept () | 
| Accept a connection on a server socket. Blocks until a connection is available. | |
| virtual void | close () | 
| Close this transport. Once this call has returned, writing on this transport should always return an error. | |
| bool | connect (const std::string &host, int port) | 
| Connect to a remote host. | |
| virtual void | disableRead () | 
| Disable reading on this transport. Allows derived classes to, for example, disable read polling for asynchronous sockets. | |
| virtual void | disableWrite () | 
| Disable writing on this transport. Allows derived classes to, for example, disable write polling for asynchronous sockets. | |
| virtual void | enableRead () | 
| Enable reading on this transport. Allows derived classes to, for example, enable read polling for asynchronous sockets. | |
| virtual void | enableWrite () | 
| Enable writing on this transport. Allows derived classes to, for example, enable write polling for asynchronous sockets. | |
| std::string | getClientURI () | 
| Returns the URI of the remote host. | |
| const std::string & | getConnectedHost () | 
| int | getConnectedPort () | 
| int | getServerPort () | 
| Returns the port this transport is listening on. | |
| virtual std::string | getTransportInfo () | 
| Returns a string description of both the type of transport and who the transport is connected to. | |
| virtual const char * | getType () | 
| Return a string that details the type of transport (Eg. TCPROS) | |
| bool | listen (int port, int backlog, const AcceptCallback &accept_cb) | 
| Start a server socket and listen on a port. | |
| virtual void | parseHeader (const Header &header) | 
| Provides an opportunity for transport-specific options to come in through the header. | |
| virtual int32_t | read (uint8_t *buffer, uint32_t size) | 
| Read a number of bytes into the supplied buffer. Not guaranteed to actually read that number of bytes. | |
| void | setKeepAlive (bool use, uint32_t idle, uint32_t interval, uint32_t count) | 
| void | setNoDelay (bool nodelay) | 
| TransportTCP (PollSet *poll_set, int flags=0) | |
| virtual int32_t | write (uint8_t *buffer, uint32_t size) | 
| Write a number of bytes from the supplied buffer. Not guaranteed to actually write that number of bytes. | |
| virtual | ~TransportTCP () | 
| Static Public Attributes | |
| static bool | s_use_ipv6_ = false | 
| static bool | s_use_keepalive_ = true | 
| Private Member Functions | |
| bool | initializeSocket () | 
| Initializes the assigned socket -- sets it to non-blocking and enables reading. | |
| bool | setNonBlocking () | 
| bool | setSocket (int sock) | 
| Set the socket to be used by this transport. | |
| void | socketUpdate (int events) | 
| Private Attributes | |
| AcceptCallback | accept_cb_ | 
| std::string | cached_remote_host_ | 
| boost::recursive_mutex | close_mutex_ | 
| bool | closed_ | 
| std::string | connected_host_ | 
| int | connected_port_ | 
| bool | expecting_read_ | 
| bool | expecting_write_ | 
| int | flags_ | 
| bool | is_server_ | 
| PollSet * | poll_set_ | 
| socklen_t | sa_len_ | 
| sockaddr_storage | server_address_ | 
| int | server_port_ | 
| socket_fd_t | sock_ | 
TCPROS transport.
Definition at line 56 of file transport_tcp.h.
| typedef boost::function<void(const TransportTCPPtr&)> ros::TransportTCP::AcceptCallback | 
Definition at line 84 of file transport_tcp.h.
Definition at line 63 of file transport_tcp.h.
| ros::TransportTCP::TransportTCP | ( | PollSet * | poll_set, | 
| int | flags = 0 | ||
| ) | 
Definition at line 51 of file transport_tcp.cpp.
| ros::TransportTCP::~TransportTCP | ( | ) |  [virtual] | 
Definition at line 64 of file transport_tcp.cpp.
| TransportTCPPtr ros::TransportTCP::accept | ( | ) | 
Accept a connection on a server socket. Blocks until a connection is available.
Definition at line 593 of file transport_tcp.cpp.
| void ros::TransportTCP::close | ( | ) |  [virtual] | 
Close this transport. Once this call has returned, writing on this transport should always return an error.
Implements ros::Transport.
Definition at line 395 of file transport_tcp.cpp.
| bool ros::TransportTCP::connect | ( | const std::string & | host, | 
| int | port | ||
| ) | 
Connect to a remote host.
| host | The hostname/IP to connect to | 
| port | The port to connect to | 
Definition at line 196 of file transport_tcp.cpp.
| void ros::TransportTCP::disableRead | ( | ) |  [virtual] | 
Disable reading on this transport. Allows derived classes to, for example, disable read polling for asynchronous sockets.
Implements ros::Transport.
Definition at line 533 of file transport_tcp.cpp.
| void ros::TransportTCP::disableWrite | ( | ) |  [virtual] | 
Disable writing on this transport. Allows derived classes to, for example, disable write polling for asynchronous sockets.
Implements ros::Transport.
Definition at line 573 of file transport_tcp.cpp.
| void ros::TransportTCP::enableRead | ( | ) |  [virtual] | 
Enable reading on this transport. Allows derived classes to, for example, enable read polling for asynchronous sockets.
Implements ros::Transport.
Definition at line 513 of file transport_tcp.cpp.
| void ros::TransportTCP::enableWrite | ( | ) |  [virtual] | 
Enable writing on this transport. Allows derived classes to, for example, enable write polling for asynchronous sockets.
Implements ros::Transport.
Definition at line 553 of file transport_tcp.cpp.
| std::string ros::TransportTCP::getClientURI | ( | ) | 
Returns the URI of the remote host.
Definition at line 688 of file transport_tcp.cpp.
| const std::string& ros::TransportTCP::getConnectedHost | ( | ) |  [inline] | 
Definition at line 104 of file transport_tcp.h.
| int ros::TransportTCP::getConnectedPort | ( | ) |  [inline] | 
Definition at line 105 of file transport_tcp.h.
| int ros::TransportTCP::getServerPort | ( | ) |  [inline] | 
Returns the port this transport is listening on.
Definition at line 99 of file transport_tcp.h.
| std::string ros::TransportTCP::getTransportInfo | ( | ) |  [virtual] | 
Returns a string description of both the type of transport and who the transport is connected to.
Implements ros::Transport.
Definition at line 683 of file transport_tcp.cpp.
| virtual const char* ros::TransportTCP::getType | ( | ) |  [inline, virtual] | 
Return a string that details the type of transport (Eg. TCPROS)
Implements ros::Transport.
Definition at line 122 of file transport_tcp.h.
| bool ros::TransportTCP::initializeSocket | ( | ) |  [private] | 
Initializes the assigned socket -- sets it to non-blocking and enables reading.
Definition at line 90 of file transport_tcp.cpp.
| bool ros::TransportTCP::listen | ( | int | port, | 
| int | backlog, | ||
| const AcceptCallback & | accept_cb | ||
| ) | 
Start a server socket and listen on a port.
| port | The port to listen on | 
| backlog | defines the maximum length for the queue of pending connections. Identical to the backlog parameter to the ::listen function | 
| accept_cb | The function to call when a client socket has connected | 
Definition at line 332 of file transport_tcp.cpp.
| void ros::TransportTCP::parseHeader | ( | const Header & | header | ) |  [virtual] | 
Provides an opportunity for transport-specific options to come in through the header.
Reimplemented from ros::Transport.
Definition at line 135 of file transport_tcp.cpp.
| int32_t ros::TransportTCP::read | ( | uint8_t * | buffer, | 
| uint32_t | size | ||
| ) |  [virtual] | 
Read a number of bytes into the supplied buffer. Not guaranteed to actually read that number of bytes.
| buffer | Buffer to read from | 
| size | Size, in bytes, to read | 
Implements ros::Transport.
Definition at line 441 of file transport_tcp.cpp.
| void ros::TransportTCP::setKeepAlive | ( | bool | use, | 
| uint32_t | idle, | ||
| uint32_t | interval, | ||
| uint32_t | count | ||
| ) | 
Definition at line 155 of file transport_tcp.cpp.
| void ros::TransportTCP::setNoDelay | ( | bool | nodelay | ) | 
Definition at line 145 of file transport_tcp.cpp.
| bool ros::TransportTCP::setNonBlocking | ( | ) |  [private] | 
Definition at line 75 of file transport_tcp.cpp.
| bool ros::TransportTCP::setSocket | ( | int | sock | ) |  [private] | 
Set the socket to be used by this transport.
| sock | A valid TCP socket | 
Definition at line 69 of file transport_tcp.cpp.
| void ros::TransportTCP::socketUpdate | ( | int | events | ) |  [private] | 
Definition at line 620 of file transport_tcp.cpp.
| int32_t ros::TransportTCP::write | ( | uint8_t * | buffer, | 
| uint32_t | size | ||
| ) |  [virtual] | 
Write a number of bytes from the supplied buffer. Not guaranteed to actually write that number of bytes.
| buffer | Buffer to write from | 
| size | Size, in bytes, to write | 
Implements ros::Transport.
Definition at line 480 of file transport_tcp.cpp.
| AcceptCallback ros::TransportTCP::accept_cb_  [private] | 
Definition at line 153 of file transport_tcp.h.
| std::string ros::TransportTCP::cached_remote_host_  [private] | 
Definition at line 155 of file transport_tcp.h.
| boost::recursive_mutex ros::TransportTCP::close_mutex_  [private] | 
Definition at line 143 of file transport_tcp.h.
| bool ros::TransportTCP::closed_  [private] | 
Definition at line 142 of file transport_tcp.h.
| std::string ros::TransportTCP::connected_host_  [private] | 
Definition at line 160 of file transport_tcp.h.
| int ros::TransportTCP::connected_port_  [private] | 
Definition at line 161 of file transport_tcp.h.
| bool ros::TransportTCP::expecting_read_  [private] | 
Definition at line 145 of file transport_tcp.h.
| bool ros::TransportTCP::expecting_write_  [private] | 
Definition at line 146 of file transport_tcp.h.
| int ros::TransportTCP::flags_  [private] | 
Definition at line 158 of file transport_tcp.h.
| bool ros::TransportTCP::is_server_  [private] | 
Definition at line 148 of file transport_tcp.h.
| PollSet* ros::TransportTCP::poll_set_  [private] | 
Definition at line 157 of file transport_tcp.h.
| bool ros::TransportTCP::s_use_ipv6_ = false  [static] | 
Definition at line 60 of file transport_tcp.h.
| bool ros::TransportTCP::s_use_keepalive_ = true  [static] | 
Definition at line 59 of file transport_tcp.h.
| socklen_t ros::TransportTCP::sa_len_  [private] | 
Definition at line 150 of file transport_tcp.h.
| sockaddr_storage ros::TransportTCP::server_address_  [private] | 
Definition at line 149 of file transport_tcp.h.
| int ros::TransportTCP::server_port_  [private] | 
Definition at line 152 of file transport_tcp.h.
| socket_fd_t ros::TransportTCP::sock_  [private] | 
Definition at line 141 of file transport_tcp.h.