PublisherFlush class. More...
#include <PublisherFlush.h>
Public Types | |
typedef coil::Condition< Mutex > | Condition |
typedef coil::Guard< coil::Mutex > | Guard |
typedef coil::Mutex | Mutex |
Public Member Functions | |
virtual ReturnCode | activate () |
activation | |
virtual ReturnCode | deactivate () |
deactivation | |
virtual ReturnCode | init (coil::Properties &prop) |
initialization | |
virtual bool | isActive () |
If publisher is active state. | |
DATAPORTSTATUS_ENUM | PublisherFlush () |
Constructor. | |
virtual ReturnCode | setBuffer (CdrBufferBase *buffer) |
Setting buffer pointer. | |
virtual ReturnCode | setConsumer (InPortConsumer *consumer) |
Store InPort consumer. | |
virtual ::RTC::DataPortStatus::Enum | setListener (ConnectorInfo &profile, RTC::ConnectorListeners *listeners) |
Set the listener. | |
virtual ReturnCode | write (const cdrMemoryStream &data, unsigned long sec, unsigned long usec) |
Write data. | |
virtual | ~PublisherFlush (void) |
Destructor. | |
Protected Member Functions | |
void | onReceived (const cdrMemoryStream &data) |
Notify an ON_RECEIVED event to listeners. | |
void | onReceiverError (const cdrMemoryStream &data) |
Notify an ON_RECEIVER_ERROR event to listeners. | |
void | onReceiverFull (const cdrMemoryStream &data) |
Notify an ON_RECEIVER_FULL event to listeners. | |
void | onReceiverTimeout (const cdrMemoryStream &data) |
Notify an ON_RECEIVER_TIMEOUT event to listeners. | |
void | onSend (const cdrMemoryStream &data) |
Notify an ON_SEND event to listners. | |
Private Attributes | |
bool | m_active |
InPortConsumer * | m_consumer |
ConnectorListeners * | m_listeners |
ConnectorInfo | m_profile |
ReturnCode | m_retcode |
Mutex | m_retmutex |
Logger | rtclog |
PublisherFlush class.
This is a Publisher class of Flush type. This class sends unsend data that has been stored in the buffer. This executes Consumer that waits for the data send timing in the same thread as its send side.
Definition at line 58 of file PublisherFlush.h.
Definition at line 63 of file PublisherFlush.h.
Definition at line 64 of file PublisherFlush.h.
Definition at line 62 of file PublisherFlush.h.
RTC::PublisherFlush::~PublisherFlush | ( | void | ) | [virtual] |
PublisherBase::ReturnCode RTC::PublisherFlush::activate | ( | ) | [virtual] |
activation
This function activates the publisher. By calling this function, this publisher starts the thread that pushes data to InPort. If precondition such as initialization process and so on is not met, the error code PRECONDITION_NOT_MET is returned.
Implements RTC::PublisherBase.
Definition at line 202 of file PublisherFlush.cpp.
PublisherBase::ReturnCode RTC::PublisherFlush::deactivate | ( | ) | [virtual] |
deactivation
This function deactivates the publisher. By calling this function, this publisher stops the thread that pushes data to InPort. If precondition such as initialization process and so on is not met, the error code PRECONDITION_NOT_MET is returned.
Implements RTC::PublisherBase.
Definition at line 215 of file PublisherFlush.cpp.
PublisherBase::ReturnCode RTC::PublisherFlush::init | ( | coil::Properties & | prop | ) | [virtual] |
initialization
This function have to be called before using this class object. However, this PublisherFlush class has no parameters to be initialized.
property | Property objects that includes the control information of this Publisher |
Implements RTC::PublisherBase.
Definition at line 64 of file PublisherFlush.cpp.
bool RTC::PublisherFlush::isActive | ( | void | ) | [virtual] |
If publisher is active state.
Confirm to activate.
A Publisher can be activated/deactivated synchronized with the data port. The active state and the non-active state are made transition by the "activate()" and the "deactivate()" functions respectively. This function confirms if the publisher is in active state.
Implements RTC::PublisherBase.
Definition at line 190 of file PublisherFlush.cpp.
void RTC::PublisherFlush::onReceived | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
Notify an ON_RECEIVED event to listeners.
data | cdrMemoryStream |
Definition at line 379 of file PublisherFlush.h.
void RTC::PublisherFlush::onReceiverError | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
Notify an ON_RECEIVER_ERROR event to listeners.
data | cdrMemoryStream |
Definition at line 424 of file PublisherFlush.h.
void RTC::PublisherFlush::onReceiverFull | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
Notify an ON_RECEIVER_FULL event to listeners.
data | cdrMemoryStream |
Definition at line 394 of file PublisherFlush.h.
void RTC::PublisherFlush::onReceiverTimeout | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
Notify an ON_RECEIVER_TIMEOUT event to listeners.
data | cdrMemoryStream |
Definition at line 409 of file PublisherFlush.h.
void RTC::PublisherFlush::onSend | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
Notify an ON_SEND event to listners.
data | cdrMemoryStream |
Definition at line 364 of file PublisherFlush.h.
PublisherBase::ReturnCode RTC::PublisherFlush::setBuffer | ( | CdrBufferBase * | buffer | ) | [virtual] |
Setting buffer pointer.
Since PublisherFlush does not use any buffers, This function always returns PORT_OK.
buffer | CDR buffer |
Definition at line 97 of file PublisherFlush.cpp.
PublisherBase::ReturnCode RTC::PublisherFlush::setConsumer | ( | InPortConsumer * | consumer | ) | [virtual] |
Store InPort consumer.
This operation sets a consumer that is associated with this object. If the consumer object is NULL, INVALID_ARGS will be returned.
consumer | A pointer to a consumer object. |
Implements RTC::PublisherBase.
Definition at line 78 of file PublisherFlush.cpp.
RTC::DataPortStatus::Enum RTC::PublisherFlush::setListener | ( | ConnectorInfo & | profile, |
RTC::ConnectorListeners * | listeners | ||
) | [virtual] |
Set the listener.
Setting buffer pointer.
This function sets ConnectorListeners listener object to the Publisher. By setting ConnectorListeners containing various listeners objects, these listeners are called at the time of reading and writing of a buffer, and transmission of data etc. Since the ownership of the ConnectorListeners object is owned by Port or RTObject, the Publisher never deletes the ConnectorListeners object. If the given ConnectorListeners' pointer is NULL, this function returns INVALID_ARGS.
info | ConnectorInfo that is localized object of ConnectorProfile |
listeners | ConnectorListeners that holds various listeners |
Implements RTC::PublisherBase.
Definition at line 112 of file PublisherFlush.cpp.
PublisherBase::ReturnCode RTC::PublisherFlush::write | ( | const cdrMemoryStream & | data, |
unsigned long | sec, | ||
unsigned long | usec | ||
) | [virtual] |
Write data.
This function writes data into the consumer associated with this Publisher. If this function is called without initializing correctly such as a consumer, listeners, etc., error code PRECONDITION_NOT_MET will be returned and no operation of the writing to the consumer etc. will be performed.
When publisher writes data to the buffer, if the consumer returns full-status, returns error, is returned with timeout, error codes BUFFER_FULL, BUFFER_ERROR and BUFFER_TIMEOUT will be returned respectively.
In other cases, PROT_ERROR will be returned.
data | Data to be wrote to the buffer |
sec | Timeout time in unit seconds |
nsec | Timeout time in unit nano-seconds |
Implements RTC::PublisherBase.
Definition at line 136 of file PublisherFlush.cpp.
bool RTC::PublisherFlush::m_active [private] |
Definition at line 437 of file PublisherFlush.h.
InPortConsumer* RTC::PublisherFlush::m_consumer [private] |
Definition at line 432 of file PublisherFlush.h.
Definition at line 434 of file PublisherFlush.h.
ConnectorInfo RTC::PublisherFlush::m_profile [private] |
Definition at line 433 of file PublisherFlush.h.
ReturnCode RTC::PublisherFlush::m_retcode [private] |
Definition at line 435 of file PublisherFlush.h.
Mutex RTC::PublisherFlush::m_retmutex [private] |
Definition at line 436 of file PublisherFlush.h.
Logger RTC::PublisherFlush::rtclog [private] |
Definition at line 431 of file PublisherFlush.h.