gapi_dataReaderView gapi_dataReader_create_view ( gapi_dataReader _this, const gapi_dataReaderViewQos *qos) { _DataReader datareader = NULL; _DataReaderView view = NULL; gapi_dataReaderViewQos *viewQos; gapi_context context; GAPI_CONTEXT_SET(context, _this, GAPI_METHOD_CREATE_VIEW); datareader = gapi_dataReaderClaim(_this, NULL); if ( datareader && _EntityEnabled(datareader)) { if ( qos == GAPI_DATAVIEW_QOS_DEFAULT ) { viewQos = (gapi_dataReaderViewQos *)&datareader->_defDataReaderViewQos; } else { viewQos = (gapi_dataReaderViewQos *)qos; } if (gapi_dataReaderViewQosIsConsistent(viewQos,&context) == GAPI_RETCODE_OK) { view = _DataReaderViewNew (viewQos, datareader); if ( view ) { _ENTITY_REGISTER_OBJECT(_Entity(datareader), (_Object)view); } } } _EntityRelease(datareader); return (gapi_dataReaderView)_EntityRelease(view); }
/* ReadCondition * create_readcondition( * in SampleStateMask sample_states, * in ViewStateMask view_states, * in InstanceStateMask instance_states); */ gapi_readCondition gapi_dataReaderView_create_readcondition ( gapi_dataReaderView _this, const gapi_sampleStateMask sample_states, const gapi_viewStateMask view_states, const gapi_instanceStateMask instance_states) { _DataReaderView datareaderview; _ReadCondition readCondition = NULL; datareaderview = gapi_dataReaderViewClaim(_this, NULL); if ( datareaderview && _EntityEnabled(datareaderview) && gapi_stateMasksValid(sample_states, view_states, instance_states) ) { _DataReader datareader; datareader = _DataReaderViewDataReader(datareaderview); readCondition = _ReadConditionNew ( sample_states, view_states, instance_states, datareader, datareaderview); _EntityRelease(datareader); if ( readCondition != NULL ) { gapi_deleteEntityAction deleteAction; void *actionArg; if ( _ObjectGetDeleteAction(_Object(readCondition), &deleteAction, &actionArg) ) { _ObjectSetDeleteAction(_Object(readCondition), deleteAction, actionArg); } _ENTITY_REGISTER_OBJECT(_Entity(datareaderview), (_Object)readCondition); } } _EntityRelease(datareaderview); return (gapi_readCondition)_EntityRelease(readCondition); }
/* QueryCondition * create_querycondition( * in SampleStateMask sample_states, * in ViewStateMask view_states, * in InstanceStateMask instance_states, * in string query_expression, * in StringSeq query_parameters); */ gapi_queryCondition gapi_dataReaderView_create_querycondition ( gapi_dataReaderView _this, const gapi_sampleStateMask sample_states, const gapi_viewStateMask view_states, const gapi_instanceStateMask instance_states, const gapi_char *query_expression, const gapi_stringSeq *query_parameters) { _DataReaderView datareaderview; _QueryCondition queryCondition = NULL; datareaderview = gapi_dataReaderViewClaim(_this, NULL); if ( datareaderview && _EntityEnabled(datareaderview) && query_expression && gapi_sequence_is_valid(query_parameters) && gapi_stateMasksValid(sample_states, view_states, instance_states) ) { _DataReader datareader; datareader = _DataReaderViewDataReader(datareaderview); queryCondition = _QueryConditionNew(sample_states, view_states, instance_states, query_expression, query_parameters, datareader, datareaderview); _EntityRelease(datareader); if ( queryCondition != NULL ) { _ENTITY_REGISTER_OBJECT(_Entity(datareaderview), (_Object)queryCondition); } } _EntityRelease(datareaderview); return (gapi_queryCondition)_EntityRelease(queryCondition); }
gapi_queryCondition gapi_dataReader_create_querycondition ( gapi_dataReader _this, const gapi_sampleStateMask sample_states, const gapi_viewStateMask view_states, const gapi_instanceStateMask instance_states, const gapi_char *query_expression, const gapi_stringSeq *query_parameters) { _DataReader datareader; gapi_boolean licensed; _QueryCondition queryCondition = NULL; licensed = _DomainParticipantFactoryIsContentSubscriptionAvailable(); if(licensed == TRUE){ datareader = gapi_dataReaderClaim(_this, NULL); if ( datareader && _EntityEnabled(datareader) && query_expression && gapi_sequence_is_valid(query_parameters) && gapi_stateMasksValid(sample_states, view_states, instance_states) ) { queryCondition = _QueryConditionNew(sample_states, view_states, instance_states, query_expression, query_parameters, datareader, NULL); if ( queryCondition != NULL ) { _ENTITY_REGISTER_OBJECT(_Entity(datareader), (_Object)queryCondition); } } _EntityRelease(datareader); } return (gapi_queryCondition)_EntityRelease(queryCondition); }
gapi_dataWriter gapi_publisher_create_datawriter ( gapi_publisher _this, const gapi_topic a_topic, const gapi_dataWriterQos *qos, const struct gapi_dataWriterListener *a_listener, const gapi_statusMask mask) { _Publisher publisher; _DataWriter datawriter = NULL; gapi_dataWriter result = NULL; _Topic topic = NULL; gapi_dataWriterQos *writerQos; gapi_context context; gapi_topicQos* topicQos; gapi_returnCode_t rc; GAPI_CONTEXT_SET(context, _this, GAPI_METHOD_CREATE_DATAWRITER); publisher = gapi_publisherClaim(_this, NULL); if ( publisher ) { topic = _TopicFromHandle(a_topic); } if ( topic ) { if ( qos == GAPI_DATAWRITER_QOS_DEFAULT ) { writerQos = &publisher->_defDataWriterQos; } else if ( qos == GAPI_DATAWRITER_QOS_USE_TOPIC_QOS ) { topicQos = gapi_topicQos__alloc(); writerQos = gapi_dataWriterQos__alloc(); gapi_dataWriterQosCopy(&publisher->_defDataWriterQos, writerQos); _TopicGetQos(topic, topicQos); gapi_mergeTopicQosWithDataWriterQos(topicQos,writerQos); gapi_free(topicQos); } else { writerQos = (gapi_dataWriterQos *)qos; } rc = gapi_dataWriterQosIsConsistent(writerQos, &context); if ( rc == GAPI_RETCODE_OK ) { gapi_char *typeName; gapi_char *topicName; _DomainParticipant participant; _TypeSupport typeSupport = NULL; /* find topic with the participant for consistency */ typeName = _TopicGetTypeName(topic); topicName = _TopicGetName(topic); participant = _EntityParticipant(_Entity(publisher)); /* find type support for the data type to find data writer create function */ typeSupport = _DomainParticipantFindType(participant, typeName); if(typeSupport) { /* if create function is NULL, take default from data writer */ datawriter = _DataWriterNew(topic, typeSupport, writerQos, a_listener, mask, publisher); if ( datawriter ) { _ENTITY_REGISTER_OBJECT(_Entity(publisher), (_Object)datawriter); } }else{ OS_REPORT_1(OS_WARNING, "gapi_publisher_create_datawriter", 0, "TypeSupport %s not found !", typeName); } gapi_free(typeName); gapi_free(topicName); } if (qos == GAPI_DATAWRITER_QOS_USE_TOPIC_QOS) { gapi_free(writerQos); } } _EntityRelease(publisher); if ( datawriter ) { gapi_object statusHandle; statusHandle = _EntityHandle(_Entity(datawriter)->status); result = (gapi_dataWriter)_EntityRelease(datawriter); } return result; }