61 template <
class DataType>
66 data.tm.sec = tm.
sec();
67 data.tm.nsec = tm.
usec() * 1000;
107 template <
class DataType>
137 #if defined(__GNUC__) && (__GNUC__ <= 3 && __GNUC_MINOR__ <= 3) 138 :
OutPortBase(name, ::CORBA_Util::toRepositoryIdOfStruct<DataType>()),
140 :
OutPortBase(name, ::CORBA_Util::toRepositoryId<DataType>()),
143 m_value(value), m_onWrite(0), m_onWriteConvert(0),
144 m_directNewData(
false), m_directValue(value)
219 if (m_onWrite != NULL)
227 std::vector<const char *> disconnect_ids;
232 if (!(conn_size > 0)) {
return false; }
234 m_status.resize(conn_size);
236 for (
size_t i(0), len(conn_size); i < len; ++i)
242 if (m_onWriteConvert != NULL)
244 RTC_DEBUG((
"m_connectors.OnWriteConvert called"));
245 ret =
m_connectors[i]->write(((*m_onWriteConvert)(value)));
249 RTC_DEBUG((
"m_connectors.write called"));
255 Guard guard(m_valueMutex);
256 if (m_onWriteConvert != NULL)
258 RTC_DEBUG((
"m_connectors.OnWriteConvert called"));
259 m_directValue = ((*m_onWriteConvert)(value));
263 m_directValue = value;
265 m_directNewData =
true;
270 if (ret ==
PORT_OK) {
continue; }
277 RTC_WARN((
"connection_lost id: %s",
id));
281 (*m_onConnectionLost)(prof);
283 disconnect_ids.push_back(
id);
315 return write(m_value);
382 return m_status[index];
450 m_onWrite = on_write;
491 m_onWriteConvert = on_wconvert;
510 virtual void read(DataType& data)
512 Guard guard(m_valueMutex);
513 m_directNewData =
false;
514 data = m_directValue;
518 return !m_directNewData;
522 return m_directNewData;
526 std::string m_typename;
558 CORBA::Long m_propValueIndex;
561 bool m_directNewData;
562 DataType m_directValue;
568 #endif // RTC_OUTPORT_H void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
Adding BufferDataListener type listener.
std::vector< OutPortConnector * > m_connectors
Connection list.
Definition: OutPortBase.h:1064
#define RTC_TRACE(fmt)
Trace level log output macro.
Definition: SystemLogger.h:588
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:489
Data convert callback abstract class on write()
Definition: PortCallback.h:258
Mutex class.
Definition: Mutex.h:40
coil::Mutex m_connectorsMutex
Definition: PortBase.h:2110
virtual void read(DataType &data)
Definition: OutPort.h:510
virtual ~OutPort(void)
Destructor.
Definition: OutPort.h:170
Definition: Timestamp.h:26
virtual bool isNew()
Definition: OutPort.h:520
Periodic time measurement class.
bool write()
Write data.
Definition: OutPort.h:313
DataPortStatusList getStatusList()
Getting specified connector's writing status list.
Definition: OutPort.h:414
Definition: ConnectorListener.h:140
Definition: DataPortStatus.h:157
virtual bool isEmpty()
Definition: OutPort.h:516
TimeValue class.
Definition: TimeValue.h:40
#define RTC_WARN(fmt)
Warning log output macro.
Definition: SystemLogger.h:522
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
Definition: ConnectorListener.h:145
#define RTC_DEBUG(fmt)
Debug level log output macro.
Definition: SystemLogger.h:566
bool operator<<(DataType &value)
Write data.
Definition: OutPort.h:343
Definition: DirectOutPortBase.h:48
Callback abstract class on write()
Definition: PortCallback.h:192
OutPortBase(const char *name, const char *data_type)
Constructor.
Output base class.
Definition: OutPortBase.h:235
DirectPortBase * m_directport
Definition: PortBase.h:2235
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:62
DataPortStatus::Enum getStatus(int index)
Getting specified connector's writing status.
Definition: OutPort.h:380
OutPort template class.
Definition: OutPort.h:108
OutPort(const char *name, DataType &value)
Constructor.
Definition: OutPort.h:136
virtual bool write(DataType &value)
Write data.
Definition: OutPort.h:215
void setOnWrite(OnWrite< DataType > *on_write)
Set OnWrite callback.
Definition: OutPort.h:448
TimeMeasure class.
Definition: TimeMeasure.h:49
ConnectionCallback * m_onConnectionLost
Callback functor objects.
Definition: PortBase.h:2218
Timestamp listener class.
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