#include <InPort.h>
Public Member Functions | |
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 | ~InPort () |
Destructor. | |
virtual const char * | name () |
Get port name. | |
bool | write (const DataType &value) |
Write the value to DataPort. | |
DataType | read () |
Readout the value from DataPort. | |
virtual void | init (DataType &value) |
Initialize the ring buffer value in InPort. | |
void | update () |
Read the newly value to type-T variable which is bound to InPort's buffer. | |
void | operator>> (DataType &rhs) |
Read the newly value data in InPort to type-T variable. | |
void | operator<< (DataType &value) |
Write the type-T data to DataPort. | |
void | setOnWrite (OnWrite< DataType > *on_write) |
Set callback for inputting data into the InPort buffer. | |
void | setOnWriteConvert (OnWriteConvert< DataType > *on_wconvert) |
Set callback when data is written into the InPort buffer. | |
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. | |
void | setOnOverflow (OnOverflow< DataType > *on_overflow) |
Set callback when the InPort buffer occurs overflow. | |
void | setOnUnderflow (OnUnderflow< DataType > *on_underflow) |
Set callback when the InPort buffer occurs underflow. |
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.
RTC::InPort< DataType, Buffer >::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.
name | A name of the InPort. This name is referred by InPortBase::name(). | |
value | type-T variable that is bound to this InPort. | |
bufsize | Buffer length of internal ring buffer of InPort (The default value:64) | |
read_block | Flag 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_block | Flag 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_timeout | Data reading timeout time (millisecond) when not specifying read blocking. (The default value:0) | |
write_timeout | Data writing timeout time (millisecond) when not specifying writing block. (The default value:0) |
virtual RTC::InPort< DataType, Buffer >::~InPort | ( | ) | [inline, virtual] |
Destructor.
Destructor
virtual const char* RTC::InPort< DataType, Buffer >::name | ( | ) | [inline, virtual] |
Get port name.
Get port name.
bool RTC::InPort< DataType, Buffer >::write | ( | const DataType & | value | ) | [inline] |
Write the value to DataPort.
Write the value to DataPort
value | The target data for the writing |
DataType RTC::InPort< DataType, Buffer >::read | ( | ) | [inline] |
Readout the value from DataPort.
Readout the value from DataPort
virtual void RTC::InPort< DataType, Buffer >::init | ( | DataType & | value | ) | [inline, virtual] |
void RTC::InPort< DataType, Buffer >::update | ( | ) | [inline] |
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.
void RTC::InPort< DataType, Buffer >::operator>> | ( | DataType & | rhs | ) | [inline] |
void RTC::InPort< DataType, Buffer >::operator<< | ( | DataType & | value | ) | [inline] |
Write the type-T data to DataPort.
Write the given type-T data to DataPort.
value | The type-T variable to write to DaraPort |
void RTC::InPort< DataType, Buffer >::setOnWrite | ( | OnWrite< DataType > * | on_write | ) | [inline] |
Set callback for inputting data into the InPort buffer.
Set the callback object invoked when data was put in the InPort's buffer. The callback object which was set inherits InPort<DataType>::OnPut class, and the method operator(), which has the argument "const DataType&" and the return value "void", need to be implemented.
Callback object should be implemented as follow:
struct MyOnPutCallback : public InPort<DataType> {
void operator()(const DataType data) {
Operation
}
};
and should be set as follow:
m_inport.setOnPut(new MyOnPutCallback());
on_write | OnWrite<DataType> type object |
void RTC::InPort< DataType, Buffer >::setOnWriteConvert | ( | OnWriteConvert< DataType > * | on_wconvert | ) | [inline] |
Set callback when data is written into the InPort buffer.
Set the callback object that is invoked when data is written into the InPort's buffer. The return value of the callback object is set to the buffer.
on_wconvert | OnWriteConvert<DataType> type object |
void RTC::InPort< DataType, Buffer >::setOnRead | ( | OnRead< DataType > * | on_read | ) | [inline] |
void RTC::InPort< DataType, Buffer >::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.
on_rconvert | OnReadConvert<DataType> type object |
void RTC::InPort< DataType, Buffer >::setOnOverflow | ( | OnOverflow< DataType > * | on_overflow | ) | [inline] |
Set callback when the InPort buffer occurs overflow.
Set the callback object that is invoked when the buffer overflow was detected in the InPort's buffer.
on_overflow | OnOverflow<DataType> type object |
void RTC::InPort< DataType, Buffer >::setOnUnderflow | ( | OnUnderflow< DataType > * | on_underflow | ) | [inline] |
Set callback when the InPort buffer occurs underflow.
Set the callback object that is invoked when the buffer underflow was detected in the InPort's buffer.
on_underflow | OnUnderflow<DataType> type object |