59 template <
class DataType>
64 data.tm.sec = tm.
sec();
65 data.tm.nsec = tm.
usec() * 1000;
105 template <
class DataType>
134 #if defined(__GNUC__) && (__GNUC__ <= 3 && __GNUC_MINOR__ <= 3)
135 :
OutPortBase(name, ::CORBA_Util::toRepositoryIdOfStruct<DataType>()),
137 :
OutPortBase(name, ::CORBA_Util::toRepositoryId<DataType>()),
139 m_value(value), m_onWrite(0), m_onWriteConvert(0)
207 if (m_onWrite != NULL)
214 std::vector<const char *> disconnect_ids;
219 if (!(conn_size > 0)) {
return false; }
221 m_status.resize(conn_size);
223 for (
size_t i(0), len(conn_size); i < len; ++i)
226 if (m_onWriteConvert != NULL)
228 RTC_DEBUG((
"m_connectors.OnWriteConvert called"));
229 ret =
m_connectors[i]->write(((*m_onWriteConvert)(value)));
233 RTC_DEBUG((
"m_connectors.write called"));
237 if (ret ==
PORT_OK) {
continue; }
245 RTC_WARN((
"connection_lost id: %s",
id));
248 (*m_onConnectionLost)(prof);
250 disconnect_ids.push_back(
id);
282 return write(m_value);
349 return m_status[index];
417 m_onWrite = on_write;
458 m_onWriteConvert = on_wconvert;
462 std::string m_typename;
496 #endif // RTC_OUTPORT_H
std::vector< OutPortConnector * > m_connectors
Connection list.
Definition: OutPortBase.h:1032
#define RTC_TRACE(fmt)
Trace level log output macro.
Definition: SystemLogger.h:510
long int sec() const
Get value of second time scale.
Definition: TimeValue.h:110
void setOnWriteConvert(OnWriteConvert< DataType > *on_wconvert)
Set OnWriteConvert callback.
Definition: OutPort.h:456
Data convert callback abstract class on write()
Definition: PortCallback.h:258
coil::Mutex m_connectorsMutex
Definition: PortBase.h:2088
virtual ~OutPort(void)
Destructor.
Definition: OutPort.h:158
Periodic time measurement class.
bool write()
Write data.
Definition: OutPort.h:280
DataPortStatusList getStatusList()
Getting specified connector's writing status list.
Definition: OutPort.h:381
Definition: DataPortStatus.h:157
TimeValue class.
Definition: TimeValue.h:40
#define RTC_WARN(fmt)
Warning log output macro.
Definition: SystemLogger.h:444
std::vector< DataPortStatus::Enum > DataPortStatusList
Definition: DataPortStatus.h:206
int gettimeofday(struct timeval *tv, struct timezone *tz)
Get the time and timezone.
Definition: Time.h:137
#define RTC_DEBUG(fmt)
Debug level log output macro.
Definition: SystemLogger.h:488
bool operator<<(DataType &value)
Write data.
Definition: OutPort.h:310
Callback abstract class on write()
Definition: PortCallback.h:192
OutPortBase(const char *name, const char *data_type)
Constructor.
Output base class.
Definition: OutPortBase.h:230
Definition: DataPortStatus.h:145
virtual ReturnCode_t disconnect(const char *connector_id)
[CORBA interface] Disconnect the Port
void setTimestamp(DataType &data)
Setting timestamp to data.
Definition: OutPort.h:60
DataPortStatus::Enum getStatus(int index)
Getting specified connector's writing status.
Definition: OutPort.h:347
OutPort template class.
Definition: OutPort.h:106
OutPort(const char *name, DataType &value)
Constructor.
Definition: OutPort.h:133
virtual bool write(DataType &value)
Write data.
Definition: OutPort.h:203
void setOnWrite(OnWrite< DataType > *on_write)
Set OnWrite callback.
Definition: OutPort.h:415
TimeMeasure class.
Definition: TimeMeasure.h:49
ConnectionCallback * m_onConnectionLost
Callback functor objects.
Definition: PortBase.h:2196
long int usec() const
Get value of micro second time scale.
Definition: TimeValue.h:131
Enum
DataPortStatus return codes.
Definition: DataPortStatus.h:143
ConnectorProfile findConnProfile(const char *id)
Find ConnectorProfile with id.
Functor for_each(CorbaSequence &seq, Functor f)
Apply the functor to all CORBA sequence elements.
Definition: CORBA_SeqUtil.h:98