Public Member Functions | Private Attributes
RTC::InPort< DataType > Class Template Reference

InPort template class. More...

#include <InPort.h>

Inheritance diagram for RTC::InPort< DataType >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

DATAPORTSTATUS_ENUM InPort (const char *name, DataType &value, int bufsize=64, bool read_block=false, bool write_block=false, int read_timeout=0, int write_timeout=0)
 A constructor.
virtual bool isEmpty ()
 Check whether the data is newest.
virtual bool isNew ()
 Check whether the data is newest.
virtual const char * name ()
 Get port name.
void operator>> (DataType &rhs)
 Read the newly value data in InPort to type-T variable.
bool read ()
 Readout the value from DataPort.
void setOnRead (OnRead< DataType > *on_read)
 Set callback when data is read from the InPort buffer.
void setOnReadConvert (OnReadConvert< DataType > *on_rconvert)
 Set callback when data is readout to the InPort buffer.
virtual void update ()
 Read the newly value to type-T variable which is bound to InPort's buffer.
virtual ~InPort (void)
 Destructor.

Private Attributes

std::string m_name
OnRead< DataType > * m_OnRead
 Pointer to OnRead callback functor.
OnReadConvert< DataType > * m_OnReadConvert
 Pointer to OnReadConvert callback functor.
std::string m_typename
DataType & m_value
 The reference to type-T value bound this OutPort.

Detailed Description

template<class DataType>
class RTC::InPort< DataType >

InPort template class.

This is a template class that implements InPort. <T> is the type defined in BasicDataType.idl and must be the structure which has both Time type tm and type-T data as a member. InPort has a ring buffer internally, and stores the received data externally in this buffer one by one. The size of ring buffer can be specified according to the argument of constructor, though the default size is 64. Unread data and data which is already read are managed with the flag, and the data can be handled by the isNew(), write(), read(), isFull() and isEmpty() method etc.

Since:
0.2.0

Definition at line 89 of file InPort.h.


Constructor & Destructor Documentation

template<class DataType>
DATAPORTSTATUS_ENUM RTC::InPort< DataType >::InPort ( const char *  name,
DataType &  value,
int  bufsize = 64,
bool  read_block = false,
bool  write_block = false,
int  read_timeout = 0,
int  write_timeout = 0 
) [inline]

A constructor.

constructor. This is bound to type-T variable given as a parameter.

Parameters:
nameA name of the InPort. This name is referred by InPortBase::name().
valuetype-T variable that is bound to this InPort.
bufsizeBuffer length of internal ring buffer of InPort (The default value:64)
read_blockFlag of reading block. When there are not unread data at reading data, set whether to block data until receiving the next data. (The default value:false)
write_blockFlag of writing block. If the buffer was full at writing data, set whether to block data until the buffer has space. (The default value:false)
read_timeoutData reading timeout time (millisecond) when not specifying read blocking. (The default value:0)
write_timeoutData writing timeout time (millisecond) when not specifying writing block. (The default value:0)

Definition at line 145 of file InPort.h.

template<class DataType>
virtual RTC::InPort< DataType >::~InPort ( void  ) [inline, virtual]

Destructor.

Destructor

Definition at line 174 of file InPort.h.


Member Function Documentation

template<class DataType>
virtual bool RTC::InPort< DataType >::isEmpty ( void  ) [inline, virtual]

Check whether the data is newest.

Check whether the data stored at a current buffer position is newest.

Returns:
Newest data check result ( true:Newest data. Data has not been readout yet. false:Past data¡¥Data has already been readout.)

Definition at line 276 of file InPort.h.

template<class DataType>
virtual bool RTC::InPort< DataType >::isNew ( ) [inline, virtual]

Check whether the data is newest.

Check whether the data stored at a current buffer position is newest.

Returns:
Newest data check result ( true:Newest data. Data has not been readout yet. false:Past data¡¥Data has already been readout.)

Definition at line 225 of file InPort.h.

template<class DataType>
virtual const char* RTC::InPort< DataType >::name ( ) [inline, virtual]

Get port name.

Get port name.

Returns:
The port name

Definition at line 195 of file InPort.h.

template<class DataType>
void RTC::InPort< DataType >::operator>> ( DataType &  rhs) [inline]

Read the newly value data in InPort to type-T variable.

Read the newly data set in InPort and set to specified data variable.

Parameters:
rhsThe type-T variable to read from InPort's buffer

Definition at line 477 of file InPort.h.

template<class DataType>
bool RTC::InPort< DataType >::read ( ) [inline, virtual]

Readout the value from DataPort.

Readout the value from DataPort

  • When Callback functor OnRead is already set, OnRead will be invoked before reading from the buffer held by DataPort.
  • When the buffer held by DataPort can detect the underflow, and when it detected the underflow at reading, callback functor OnUnderflow will be invoked.
  • When callback functor OnReadConvert is already set, the return value of operator() of OnReadConvert will be the return value of read().
  • When timeout of reading is already set by setReadTimeout(), it waits for only timeout time until the state of the buffer underflow is reset, and if OnUnderflow is already set, this will be invoked to return.
Returns:
Readout result (Successful:true, Failed:false)

Implements RTC::InPortBase.

Definition at line 378 of file InPort.h.

template<class DataType>
void RTC::InPort< DataType >::setOnRead ( OnRead< DataType > *  on_read) [inline]

Set callback when data is read from the InPort buffer.

Set the callback object that is invoked right before data is read from the InPort's buffer

Parameters:
on_readOnRead<DataType> type object

Definition at line 505 of file InPort.h.

template<class DataType>
void RTC::InPort< DataType >::setOnReadConvert ( OnReadConvert< DataType > *  on_rconvert) [inline]

Set callback when data is readout to the InPort buffer.

Set the callback object that is invoked when data is readout to the InPort's buffer. The return value of callback object is the return result of the read() method.

Parameters:
on_rconvertOnReadConvert<DataType> type object

Definition at line 533 of file InPort.h.

template<class DataType>
virtual void RTC::InPort< DataType >::update ( void  ) [inline, virtual]

Read the newly value to type-T variable which is bound to InPort's buffer.

Read the newly value to type-T data which is bound to InPort's buffer. The type-T variable must be bound to InPort in constructor. Since this method assumes to be used for polymorphic, its argument and the return value do not depend on type.

Definition at line 452 of file InPort.h.


Member Data Documentation

template<class DataType>
std::string RTC::InPort< DataType >::m_name [private]

Port's name

Definition at line 547 of file InPort.h.

template<class DataType>
OnRead<DataType>* RTC::InPort< DataType >::m_OnRead [private]

Pointer to OnRead callback functor.

Definition at line 565 of file InPort.h.

template<class DataType>
OnReadConvert<DataType>* RTC::InPort< DataType >::m_OnReadConvert [private]

Pointer to OnReadConvert callback functor.

Definition at line 574 of file InPort.h.

template<class DataType>
std::string RTC::InPort< DataType >::m_typename [private]

Definition at line 539 of file InPort.h.

template<class DataType>
DataType& RTC::InPort< DataType >::m_value [private]

The reference to type-T value bound this OutPort.

Definition at line 556 of file InPort.h.


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


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Sat Jun 8 2019 18:49:14