BufferPort Class Template Reference
[Data Transfer PortsTask Context Interface]

#include <rtt/BufferPort.hpp>

Inheritance diagram for BufferPort:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class T>
class RTT::BufferPort< T >

A Port to a read-write Buffer.

Use connection() to access the buffer. If the port is not connected, connection() returns null.

Parameters:
T The type of the data of the buffer.


Public Types

typedef PortInterface::PortType PortType
 This enum classifies if a port is inbound outbound or both.

Public Member Functions

 BufferPort (const std::string &name, size_t prefered_size, const T &initial_value=T())
 Construct an unconnected Port to a writeable buffer.
void clear ()
 Clears all contents of this buffer.
BufferBase::size_type size () const
 Returns the actual number of items that are stored in the buffer.
BufferBase::size_type capacity () const
 Returns the maximum number of items that can be stored in the buffer.
bool empty () const
 Check if this buffer is empty.
bool full () const
 Check if this buffer is full.
bool connected () const
 Inspect if this Port is currently connected with another Port.
bool connect (typename BufferConnectionInterface< T >::shared_ptr conn)
 Connect a writeable buffer to this Port.
virtual bool connect (typename WriteConnectionInterface< T >::shared_ptr conn)
 Connect a writeable buffer to this Port.
virtual bool connect (typename ReadConnectionInterface< T >::shared_ptr conn)
 Connect a readable buffer to this Port.
bool connectTo (ConnectionInterface::shared_ptr other)
 Connect this port to a Connection.
void disconnect ()
 No longer participate in a connection.
virtual BufferInterface< T > * buffer () const
 Get the buffer to write from.
virtual ConnectionInterface::shared_ptr connection () const
 Returns the connection in which this Port currently participates.
virtual PortType getPortType () const
 Get the PortType of this port.
BufferPortoperator= (BufferInterface< T > *impl)
 Provide a new implementation for the connection of this port.
virtual PortInterfaceclone () const
 Create a clone of this port with the same name.
virtual PortInterfaceantiClone () const
 The anti-Clone of a ReadBufferPort is a WriteBufferPort with prefered buffer size '1'.
virtual TaskObjectcreatePortObject ()
 Create accessor Object for this Port, for addition to a TaskContext Object interface.
void setBufferSize (size_t b_size)
 Set the prefered buffersize before this port is connected.
bool Push (const T &data)
 Push a value into the buffer of this Port's connection.
void Set (const T &data)
 Set the initial value of the port's connection.
virtual bool connectTo (PortInterface *other)
 Connect to another Port and create a new connection if necessary.
virtual WriteInterface< T > * write () const
 Get the buffer to write to.
ConnectionInterface::shared_ptr createConnection (PortInterface *other, ConnectionTypes::ConnectionType con_type=ConnectionTypes::lockfree)
 Create a connection object from this port to another port.
ConnectionInterface::shared_ptr createConnection (ConnectionTypes::ConnectionType con_type=ConnectionTypes::lockfree)
 Create a new connection object to which this port is subscribed.
const std::string & getName () const
 Get the name of this Port.
bool setName (const std::string &name)
 Change the name of this unconnected Port.
bool ready () const
 Returns true if this Port is ready to be used.
bool Pop (T &data)
 Pop a value from the buffer of this Port's connection.
front () const
 Get the next value to be Pop()'ed, or the default value if empty.
virtual ReadInterface< T > * read () const
 Get the buffer to read from.

Protected Attributes

BufferConnectionInterface<
T >::shared_ptr 
mconn
 The buffer to write from.
size_t buf_size
minitial_value
std::string portname


Constructor & Destructor Documentation

BufferPort ( const std::string &  name,
size_t  prefered_size,
const T &  initial_value = T() 
) [inline]

Construct an unconnected Port to a writeable buffer.

Parameters:
name The name of this port.


Member Function Documentation

BufferBase::size_type size (  )  const [inline]

Returns the actual number of items that are stored in the buffer.

Returns:
number of items.

Reimplemented from ReadBufferPort.

BufferBase::size_type capacity (  )  const [inline]

Returns the maximum number of items that can be stored in the buffer.

Returns:
maximum number of items.

Reimplemented from ReadBufferPort.

bool empty (  )  const [inline]

Check if this buffer is empty.

Returns:
true if size() == 0

Reimplemented from ReadBufferPort.

bool full (  )  const [inline]

Check if this buffer is full.

Returns:
true if size() == capacity()

Reimplemented from ReadBufferPort.

bool connectTo ( ConnectionInterface::shared_ptr  other  )  [inline, virtual]

Connect this port to a Connection.

If the connection is in the connected() state, this port will participate in that connection, otherwise, the port will become connected once conn becomes connected().

Returns:
true if connection was possible, false otherwise.

Reimplemented from ReadBufferPort.

virtual BufferInterface<T>* buffer (  )  const [inline, virtual]

Get the buffer to write from.

Returns:
0 if !connected(), the buffer otherwise.

virtual ConnectionInterface::shared_ptr connection (  )  const [inline, virtual]

Returns the connection in which this Port currently participates.

It is possible that this port is part of a dormant connection, ( the connection object is not in the connected() state), in that case this method will return null, until the dormant connection becomes connected().

Return values:
null if not connected to another Port.

Reimplemented from ReadBufferPort.

BufferPort< T > & operator= ( BufferInterface< T > *  impl  ) 

Provide a new implementation for the connection of this port.

If this port is not connected, a new connection is created.

Reimplemented from ReadBufferPort.

void setBufferSize ( size_t  b_size  )  [inline, inherited]

Set the prefered buffersize before this port is connected.

If this->connected(), this value has no effect.

bool Push ( const T &  data  )  [inline, inherited]

Push a value into the buffer of this Port's connection.

Parameters:
data The data to push.
Return values:
this->read()->Push(data) if this->connected()
false if !this->connected()

void Set ( const T &  data  )  [inline, inherited]

Set the initial value of the port's connection.

This value is only used when the connection is created. If this port is connected to an existing connection, the value is ignored.

virtual bool connectTo ( PortInterface other  )  [virtual, inherited]

Connect to another Port and create a new connection if necessary.

virtual WriteInterface<T>* write (  )  const [inline, virtual, inherited]

Get the buffer to write to.

Returns:
0 if !connected(), the buffer otherwise.

bool setName ( const std::string &  name  )  [inherited]

Change the name of this unconnected Port.

One can only change the name when it is not yet connected.

Return values:
true if !this->connected(), the name has changed.
false if this->connected(), the name has not been changed.

bool ready (  )  const [inherited]

Returns true if this Port is ready to be used.

Identical to connected().

bool Pop ( T &  data  )  [inline, inherited]

Pop a value from the buffer of this Port's connection.

Parameters:
data The location where to store the popped value.
Return values:
this->read()->Pop(data) if this->connected()
false if !this->connected()

virtual ReadInterface<T>* read (  )  const [inline, virtual, inherited]

Get the buffer to read from.

The Task may use this to read from a Buffer connected to this port.

Returns:
0 if !connected(), the buffer otherwise.


The documentation for this class was generated from the following file:
Generated on Fri May 11 11:19:31 2007 for Orocos by  doxygen 1.5.1