/* InstanceHandle_t * lookup_instance( * in Data instance); */ gapi_instanceHandle_t gapi_fooDataReaderView_lookup_instance ( gapi_fooDataReaderView _this, const gapi_foo *instance_data) { _DataReaderView datareaderview; gapi_instanceHandle_t handle = GAPI_HANDLE_NIL; datareaderview = gapi_dataReaderViewClaim(_this, NULL); if ( datareaderview && instance_data ) { readerViewCopyInInfo rData; u_result uResult; rData.reader = datareaderview->datareader; rData.data = (void *)instance_data; uResult = u_dataViewLookupInstance( U_DATAREADERVIEW_GET(datareaderview), &rData, _DataReaderViewCopyIn, &handle); } _EntityRelease(datareaderview); return handle; }
static gapi_boolean initViewQuery ( _DataReaderView dataReaderView) { gapi_boolean result = FALSE; gapi_expression expr; u_dataView uReaderView; dataReaderView->reader_mask.sampleStateMask = (c_long)0; dataReaderView->reader_mask.viewStateMask = (c_long)0; dataReaderView->reader_mask.instanceStateMask = (c_long)0; uReaderView = u_dataView(U_DATAREADERVIEW_GET(dataReaderView)); expr = gapi_createReadExpression(u_entity(uReaderView), &dataReaderView->reader_mask); if ( expr != NULL ) { dataReaderView->uQuery = gapi_expressionCreateQuery(expr, u_reader(uReaderView), NULL, NULL); gapi_expressionFree(expr); if ( dataReaderView->uQuery ) { result = TRUE; } } return result; }
gapi_returnCode_t _DataReaderViewFree ( _DataReaderView dataReaderView) { gapi_returnCode_t result = GAPI_RETCODE_OK; u_dataView v; assert(dataReaderView); u_queryFree(dataReaderView->uQuery); gapi_loanRegistry_free(dataReaderView->loanRegistry); v = U_DATAREADERVIEW_GET(dataReaderView); _EntityDispose (_Entity(dataReaderView)); u_dataViewFree(v); return result; }
gapi_dataReaderViewQos * _DataReaderViewGetQos ( _DataReaderView dataReaderView, gapi_dataReaderViewQos * qos) { v_dataViewQos dataViewQos; u_dataView uDataView; assert(dataReaderView); uDataView = u_dataView(U_DATAREADERVIEW_GET(dataReaderView)); if ( u_entityQoS(u_entity(uDataView), (v_qos*)&dataViewQos) == U_RESULT_OK ) { copyReaderViewQosOut(dataViewQos, qos); u_dataViewQosFree(dataViewQos); } return qos; }
gapi_returnCode_t gapi_dataReader_delete_view ( gapi_dataReader _this, gapi_dataReaderView a_view) { gapi_returnCode_t result = GAPI_RETCODE_OK; _DataReader datareader; _DataReaderView view = NULL; c_bool contains; gapi_context context; GAPI_CONTEXT_SET(context, _this, GAPI_METHOD_DELETE_DATAREADER); datareader = gapi_dataReaderClaim(_this, &result); if ( datareader != NULL ) { view = gapi_dataReaderViewClaim(a_view, NULL); if ( view != NULL ) { contains = u_dataReaderContainsView(U_DATAREADER_GET(datareader), U_DATAREADERVIEW_GET(view)); if (contains) { if (_DataReaderViewPrepareDelete(view,&context)) { _DataReaderViewFree(view); view = NULL; } else { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } } else { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } _EntityRelease(view); } else { result = GAPI_RETCODE_BAD_PARAMETER; } _EntityRelease(datareader); } else { result = GAPI_RETCODE_ALREADY_DELETED; } return result; }
gapi_returnCode_t gapi_fooDataReaderView_take_next_instance ( gapi_fooDataReaderView _this, void *data_values, void *info_data, const gapi_long max_samples, const gapi_instanceHandle_t a_handle, const gapi_sampleStateMask sample_states, const gapi_viewStateMask view_states, const gapi_instanceStateMask instance_states) { _DataReaderView datareaderview; gapi_returnCode_t result = GAPI_RETCODE_OK; gapi_readerInfo readerInfo; u_reader reader; v_readerSampleSeq samples; v_readerSample buffer[V_DATAREADERSAMPLESEQ_INITIAL]; readerViewActionArg arg; u_result uResult; assert(data_values); assert(info_data); assert(max_samples >= -1 ); datareaderview = gapi_dataReaderViewClaim(_this, &result); if (datareaderview == NULL ) { return result; } else if (!gapi_stateMasksValid(sample_states, view_states, instance_states)) { result = GAPI_RETCODE_BAD_PARAMETER; } else if (statemasks_unsupported(sample_states,view_states,instance_states)) { result = GAPI_RETCODE_UNSUPPORTED; } else if (max_samples == 0) { result = GAPI_RETCODE_NO_DATA; } else { reader = u_reader(U_DATAREADERVIEW_GET(datareaderview)); datareaderview->reader_mask.sampleStateMask = sample_states; datareaderview->reader_mask.viewStateMask = view_states; datareaderview->reader_mask.instanceStateMask = instance_states; readerInfo.max_samples = (gapi_unsigned_long)max_samples; readerInfo.num_samples = 0U; readerInfo.data_buffer = data_values; readerInfo.info_buffer = info_data; readerInfo.alloc_size = datareaderview->datareader->allocSize; readerInfo.alloc_buffer = datareaderview->datareader->allocBuffer; readerInfo.copy_out = datareaderview->datareader->copy_out; readerInfo.copy_cache = datareaderview->datareader->copy_cache; readerInfo.loan_registry = (void**)&datareaderview->loanRegistry; samples._length = 0; samples._maximum = V_DATAREADERSAMPLESEQ_INITIAL; samples._buffer = buffer; samples._release = FALSE; arg.samples = &samples; arg.max = (gapi_unsigned_long)max_samples; arg.datareaderview = datareaderview; arg.readerInfo = &readerInfo; arg.readerCopy = datareaderview->datareader->readerCopy; arg.result = GAPI_RETCODE_OK; uResult = u_readerTakeNextInstance(reader,a_handle,readerActionView,(c_voidp)&arg); result = kernelResultToApiResult(uResult); if ( result == GAPI_RETCODE_OK ) { result = arg.result; } v_readerSampleSeq_freebuf(&samples); } _EntityRelease(datareaderview); return result; }
u_dataView _DataReaderViewUreaderView ( _DataReaderView dataReaderView) { return U_DATAREADERVIEW_GET(dataReaderView); }