v_result v_readerGetTopicMatchStatus( v_reader _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(_this != NULL); assert(C_TYPECHECK(_this,v_reader)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { V_READER_LOCK(_this); status = v_entity(_this)->status; result = action(&v_readerStatus(status)->subscriptionMatch, arg); if (reset) { v_statusReset(status, V_EVENT_TOPIC_MATCHED); } v_readerStatus(status)->subscriptionMatch.totalChanged = 0; v_readerStatus(status)->subscriptionMatch.currentChanged = 0; V_READER_UNLOCK(_this); } return result; }
static void resetDataAvailable( v_entity e, c_voidp arg) { v_statusReset(e->status, V_EVENT_DATA_AVAILABLE); }
v_result v_readerGetSampleLostStatus( v_reader _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(_this != NULL); assert(C_TYPECHECK(_this,v_reader)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { V_READER_LOCK(_this); status = v_entity(_this)->status; result = action(&v_readerStatus(status)->sampleLost, arg); if (reset) { v_statusReset(status, V_EVENT_SAMPLE_LOST); } v_readerStatus(status)->sampleLost.totalChanged = 0; V_READER_UNLOCK(_this); } return result; }
v_result v_readerGetLivelinessChangedStatus( v_reader _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(_this != NULL); assert(C_TYPECHECK(_this,v_reader)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { V_READER_LOCK(_this); status = v_entity(_this)->status; result = action(&v_readerStatus(status)->livelinessChanged, arg); if (reset) { v_statusReset(status, V_EVENT_LIVELINESS_CHANGED); } v_readerStatus(status)->livelinessChanged.activeChanged = 0; v_readerStatus(status)->livelinessChanged.inactiveChanged = 0; V_READER_UNLOCK(_this); } return result; }
v_result v_readerGetIncompatibleQosStatus( v_reader _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(_this != NULL); assert(C_TYPECHECK(_this,v_reader)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { V_READER_LOCK(_this); status = v_entity(_this)->status; result = action(&v_readerStatus(status)->incompatibleQos, arg); if (reset) { v_statusReset(status, V_EVENT_INCOMPATIBLE_QOS); } v_readerStatus(status)->incompatibleQos.totalChanged = 0; V_READER_UNLOCK(_this); } return result; }
v_result v_readerGetDeadlineMissedStatus( v_reader _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(_this != NULL); assert(C_TYPECHECK(_this,v_reader)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { V_READER_LOCK(_this); status = v_entity(_this)->status; result = action(&v_readerStatus(status)->deadlineMissed, arg); if (reset) { v_statusReset(status, V_EVENT_DEADLINE_MISSED); } v_readerStatus(status)->deadlineMissed.totalChanged = 0; V_READER_UNLOCK(_this); } return result; }
v_result v_topicAdapterGetAllDataDisposedStatus( v_topicAdapter _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(C_TYPECHECK(_this,v_topicAdapter)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { OSPL_LOCK(_this); status = v_entity(_this)->status; result = action(&v_topicStatus(status)->allDataDisposed, arg); if (reset) { v_statusReset(status, V_EVENT_ALL_DATA_DISPOSED); } v_topicStatus(status)->allDataDisposed.totalChanged = 0; OSPL_UNLOCK(_this); } return result; }
v_result v_topicAdapterGetInconsistentTopicStatus( v_topicAdapter _this, c_bool reset, v_statusAction action, c_voidp arg) { v_result result; v_status status; assert(C_TYPECHECK(_this,v_topicAdapter)); result = V_RESULT_PRECONDITION_NOT_MET; if (_this != NULL) { OSPL_LOCK(_this); status = v_entity(_this)->status; result = action(&v_topicStatus(status)->inconsistentTopic, arg); if (reset) { v_statusReset(status, V_EVENT_INCONSISTENT_TOPIC); } v_topicStatus(status)->inconsistentTopic.totalChanged = 0; OSPL_UNLOCK(_this); } return result; }
void SubscriberDelegate::reset_data_on_readers_callback( v_public p, c_voidp arg) { OS_UNUSED_ARG(arg); v_statusReset(v_entity(p)->status, V_EVENT_ON_DATA_ON_READERS); }