Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
ros::Transport Class Referenceabstract

Abstract base class that allows abstraction of the transport type, eg. TCP, shared memory, UDP... More...

#include <transport.h>

Inheritance diagram for ros::Transport:
Inheritance graph
[legend]

Public Types

typedef boost::function< void(const TransportPtr &)> Callback
 

Public Member Functions

virtual void close ()=0
 Close this transport. Once this call has returned, writing on this transport should always return an error. More...
 
virtual void disableRead ()=0
 Disable reading on this transport. Allows derived classes to, for example, disable read polling for asynchronous sockets. More...
 
virtual void disableWrite ()=0
 Disable writing on this transport. Allows derived classes to, for example, disable write polling for asynchronous sockets. More...
 
virtual void enableRead ()=0
 Enable reading on this transport. Allows derived classes to, for example, enable read polling for asynchronous sockets. More...
 
virtual void enableWrite ()=0
 Enable writing on this transport. Allows derived classes to, for example, enable write polling for asynchronous sockets. More...
 
virtual std::string getTransportInfo ()=0
 Returns a string description of both the type of transport and who the transport is connected to. More...
 
virtual const char * getType ()=0
 Return a string that details the type of transport (Eg. TCPROS) More...
 
virtual void parseHeader (const Header &header)
 Provides an opportunity for transport-specific options to come in through the header. More...
 
virtual int32_t read (uint8_t *buffer, uint32_t size)=0
 Read a number of bytes into the supplied buffer. Not guaranteed to actually read that number of bytes. More...
 
virtual bool requiresHeader ()
 Returns a boolean to indicate if the transport mechanism is reliable or not. More...
 
void setDisconnectCallback (const Callback &cb)
 Set the function to call when this transport has disconnected, either through a call to close(). Or a disconnect from the remote host. More...
 
void setReadCallback (const Callback &cb)
 Set the function to call when there is data available to be read by this transport. More...
 
void setWriteCallback (const Callback &cb)
 Set the function to call when there is space available to write on this transport. More...
 
 Transport ()
 
virtual int32_t write (uint8_t *buffer, uint32_t size)=0
 Write a number of bytes from the supplied buffer. Not guaranteed to actually write that number of bytes. More...
 
virtual ~Transport ()
 

Protected Member Functions

bool isHostAllowed (const std::string &host) const
 returns true if the transport is allowed to connect to the host passed to it. More...
 
bool isOnlyLocalhostAllowed () const
 returns true if this transport is only allowed to talk to localhost More...
 

Protected Attributes

Callback disconnect_cb_
 
Callback read_cb_
 
Callback write_cb_
 

Private Attributes

std::vector< std::string > allowed_hosts_
 
bool only_localhost_allowed_
 

Detailed Description

Abstract base class that allows abstraction of the transport type, eg. TCP, shared memory, UDP...

Definition at line 55 of file transport.h.

Member Typedef Documentation

typedef boost::function<void(const TransportPtr&)> ros::Transport::Callback

Definition at line 105 of file transport.h.

Constructor & Destructor Documentation

ros::Transport::Transport ( )

Definition at line 52 of file transport.cpp.

virtual ros::Transport::~Transport ( )
inlinevirtual

Definition at line 59 of file transport.h.

Member Function Documentation

virtual void ros::Transport::close ( )
pure virtual

Close this transport. Once this call has returned, writing on this transport should always return an error.

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual void ros::Transport::disableRead ( )
pure virtual

Disable reading on this transport. Allows derived classes to, for example, disable read polling for asynchronous sockets.

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual void ros::Transport::disableWrite ( )
pure virtual

Disable writing on this transport. Allows derived classes to, for example, disable write polling for asynchronous sockets.

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual void ros::Transport::enableRead ( )
pure virtual

Enable reading on this transport. Allows derived classes to, for example, enable read polling for asynchronous sockets.

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual void ros::Transport::enableWrite ( )
pure virtual

Enable writing on this transport. Allows derived classes to, for example, enable write polling for asynchronous sockets.

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual std::string ros::Transport::getTransportInfo ( )
pure virtual

Returns a string description of both the type of transport and who the transport is connected to.

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual const char* ros::Transport::getType ( )
pure virtual

Return a string that details the type of transport (Eg. TCPROS)

Returns
The stringified transport type

Implemented in ros::TransportTCP, and ros::TransportUDP.

bool ros::Transport::isHostAllowed ( const std::string &  host) const
protected

returns true if the transport is allowed to connect to the host passed to it.

Definition at line 107 of file transport.cpp.

bool ros::Transport::isOnlyLocalhostAllowed ( ) const
inlineprotected

returns true if this transport is only allowed to talk to localhost

Definition at line 147 of file transport.h.

virtual void ros::Transport::parseHeader ( const Header header)
inlinevirtual

Provides an opportunity for transport-specific options to come in through the header.

Reimplemented in ros::TransportTCP.

Definition at line 132 of file transport.h.

virtual int32_t ros::Transport::read ( uint8_t *  buffer,
uint32_t  size 
)
pure virtual

Read a number of bytes into the supplied buffer. Not guaranteed to actually read that number of bytes.

Parameters
bufferBuffer to read from
sizeSize, in bytes, to read
Returns
The number of bytes actually read, or -1 if there was an error

Implemented in ros::TransportTCP, and ros::TransportUDP.

virtual bool ros::Transport::requiresHeader ( )
inlinevirtual

Returns a boolean to indicate if the transport mechanism is reliable or not.

Reimplemented in ros::TransportUDP.

Definition at line 127 of file transport.h.

void ros::Transport::setDisconnectCallback ( const Callback cb)
inline

Set the function to call when this transport has disconnected, either through a call to close(). Or a disconnect from the remote host.

Definition at line 109 of file transport.h.

void ros::Transport::setReadCallback ( const Callback cb)
inline

Set the function to call when there is data available to be read by this transport.

Definition at line 113 of file transport.h.

void ros::Transport::setWriteCallback ( const Callback cb)
inline

Set the function to call when there is space available to write on this transport.

Definition at line 117 of file transport.h.

virtual int32_t ros::Transport::write ( uint8_t *  buffer,
uint32_t  size 
)
pure virtual

Write a number of bytes from the supplied buffer. Not guaranteed to actually write that number of bytes.

Parameters
bufferBuffer to write from
sizeSize, in bytes, to write
Returns
The number of bytes actually written, or -1 if there was an error

Implemented in ros::TransportTCP, and ros::TransportUDP.

Member Data Documentation

std::vector<std::string> ros::Transport::allowed_hosts_
private

Definition at line 151 of file transport.h.

Callback ros::Transport::disconnect_cb_
protected

Definition at line 135 of file transport.h.

bool ros::Transport::only_localhost_allowed_
private

Definition at line 150 of file transport.h.

Callback ros::Transport::read_cb_
protected

Definition at line 136 of file transport.h.

Callback ros::Transport::write_cb_
protected

Definition at line 137 of file transport.h.


The documentation for this class was generated from the following files:


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Sun Feb 3 2019 03:29:54