gapi_returnCode_t gapi_dataReader_delete_readcondition ( gapi_dataReader _this, const gapi_readCondition a_condition) { gapi_returnCode_t result = GAPI_RETCODE_OK; _DataReader datareader; _ReadCondition readCondition = NULL; c_bool contains; if (_this && a_condition) { datareader = gapi_dataReaderClaim(_this, &result); if (datareader != NULL) { readCondition = gapi_readConditionClaim(a_condition, NULL); if (readCondition != NULL ) { contains = u_readerContainsQuery(U_READER_GET(datareader), U_QUERY_GET(readCondition)); if (contains) { _ReadConditionFree(readCondition); } else { result = GAPI_RETCODE_PRECONDITION_NOT_MET; _EntityRelease(readCondition); } } else { result = GAPI_RETCODE_ALREADY_DELETED; } _EntityRelease(datareader); } else { result = GAPI_RETCODE_ALREADY_DELETED; } } else { result = GAPI_RETCODE_BAD_PARAMETER; } return result; }
gapi_boolean _DataReaderPrepareDelete ( _DataReader _this, gapi_context *context) { gapi_boolean result = TRUE; assert(_this); if (u_readerQueryCount(U_READER_GET(_this)) > 0) { gapi_errorReport(context, GAPI_ERRORCODE_CONTAINS_CONDITIONS); result = FALSE; } if (u_dataReaderViewCount(U_DATAREADER_GET(_this)) > 0) { gapi_errorReport(context, GAPI_ERRORCODE_CONTAINS_ENTITIES); result = FALSE; } if ( !gapi_loanRegistry_is_empty(_this->loanRegistry) ) { gapi_errorReport(context, GAPI_ERRORCODE_CONTAINS_LOANS); result = FALSE; } return result; }
/* ReturnCode_t * delete_contained_entities(); */ gapi_returnCode_t gapi_dataReaderView_delete_contained_entities ( gapi_dataReaderView _this) { gapi_returnCode_t result = GAPI_RETCODE_OK; _DataReaderView datareaderview; gapi_context context; _Condition condition = NULL; c_iter entities; u_entity e; u_result ur; GAPI_CONTEXT_SET(context, _this, GAPI_METHOD_DELETE_CONTAINED_ENTITIES); if ( _this != NULL ) { datareaderview = gapi_dataReaderViewClaim(_this, &result); if ( datareaderview != NULL ) { if (!gapi_loanRegistry_is_empty(datareaderview->loanRegistry)) { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } else { entities = u_readerLookupQueries(U_READER_GET(datareaderview)); e = c_iterTakeFirst(entities); while (e) { condition = u_entityGetUserData(e); if (condition) { _ObjectReadClaimNotBusy(_Object(condition)); _ConditionFree(condition); } else { if (e == u_entity(datareaderview->uQuery)) { datareaderview->uQuery = NULL; ur = u_queryFree(u_query(e)); if (ur == U_RESULT_OK) { result = GAPI_RETCODE_OK; } else { result = GAPI_RETCODE_BAD_PARAMETER; } } else { assert(condition); result = GAPI_RETCODE_BAD_PARAMETER; } } e = c_iterTakeFirst(entities); } c_iterFree(entities); } _EntityRelease(datareaderview); } else { result = GAPI_RETCODE_ALREADY_DELETED; } } else { result = GAPI_RETCODE_BAD_PARAMETER; } return result; }
static gapi_returnCode_t _DataReader_set_notread_threshold ( _DataReader _this, gapi_long threshold) { u_result uResult; uResult = u_dataReaderSetNotReadThreshold( U_READER_GET(_this), threshold); return kernelResultToApiResult(uResult); }
static gapi_returnCode_t _DataReader_get_matched_publications ( _DataReader _this, gapi_instanceHandleSeq *publication_handles) { u_result uResult; uResult = u_readerGetMatchedPublications( U_READER_GET(_this), copy_matched_publication, publication_handles); return kernelResultToApiResult(uResult); }
static gapi_returnCode_t _DataReader_get_matched_publication_data ( _DataReader _this, gapi_publicationBuiltinTopicData *publication_data, const gapi_instanceHandle_t publication_handle) { u_result uResult; uResult = u_readerGetMatchedPublicationData( U_READER_GET(_this), publication_handle, gapi_publicationBuiltinTopicData__copyOut, publication_data); return kernelResultToApiResult(uResult); }
gapi_boolean _DataReaderViewPrepareDelete ( _DataReaderView dataReaderView, gapi_context *context) { gapi_boolean result = TRUE; assert(dataReaderView); /* Note: one internal query always exists! */ if ( u_readerQueryCount(U_READER_GET(dataReaderView)) > 1 ) { gapi_errorReport(context, GAPI_ERRORCODE_CONTAINS_CONDITIONS); result = FALSE; } if ( !gapi_loanRegistry_is_empty(dataReaderView->loanRegistry) ) { gapi_errorReport(context, GAPI_ERRORCODE_CONTAINS_LOANS); result = FALSE; } return result; }
gapi_returnCode_t gapi_subscriber_delete_datareader ( gapi_subscriber _this, const gapi_dataReader a_datareader) { gapi_returnCode_t result = GAPI_RETCODE_OK; _Subscriber subscriber; _DataReader datareader = NULL; gapi_context context; c_bool contains; GAPI_CONTEXT_SET(context, _this, GAPI_METHOD_DELETE_DATAREADER); subscriber = gapi_subscriberClaimNB(_this, &result); if ( subscriber ) { if ( !subscriber->builtin ) { datareader = gapi_dataReaderClaimNB(a_datareader, NULL); if ( datareader ) { contains = u_subscriberContainsReader(U_SUBSCRIBER_GET(subscriber), U_READER_GET(datareader)); if (contains) { if ( _DataReaderPrepareDelete (datareader, &context) ) { _DataReaderFree(datareader); datareader = NULL; } else { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } } else { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } _EntityRelease(datareader); } else { result = GAPI_RETCODE_BAD_PARAMETER; } } _EntityRelease(subscriber); } return result; }
gapi_returnCode_t gapi_dataReader_delete_contained_entities ( gapi_dataReader _this) { gapi_object handle; gapi_returnCode_t result = GAPI_RETCODE_OK; _DataReader datareader; gapi_context context; _Condition condition = NULL; _DataReaderView view = NULL; c_iter entities; u_entity e; u_result ur; GAPI_CONTEXT_SET(context, _this, GAPI_METHOD_DELETE_CONTAINED_ENTITIES); datareader = gapi_dataReaderClaim(_this, &result); if ( datareader != NULL ) { if (!gapi_loanRegistry_is_empty(datareader->loanRegistry)) { result = GAPI_RETCODE_PRECONDITION_NOT_MET; } else { entities = u_readerLookupQueries(U_READER_GET(datareader)); e = c_iterTakeFirst(entities); while (e) { condition = u_entityGetUserData(e); if (condition) { _ObjectReadClaimNotBusy(_Object(condition)); _ConditionFree(condition); } else { assert(condition); result = GAPI_RETCODE_BAD_PARAMETER; } e = c_iterTakeFirst(entities); } c_iterFree(entities); entities = u_dataReaderLookupViews(U_DATAREADER_GET(datareader)); e = c_iterTakeFirst(entities); while (e) { handle = u_entityGetUserData(e); view = _DataReaderView(gapi_conditionClaimNB(handle,&result)); if (view) { _DataReaderViewFree(view); } else { ur = u_dataViewFree(u_dataView(e)); if (ur == U_RESULT_OK) { result = GAPI_RETCODE_OK; } else { result = GAPI_RETCODE_BAD_PARAMETER; } } e = c_iterTakeFirst(entities); } c_iterFree(entities); } _EntityRelease(datareader); } else { result = GAPI_RETCODE_BAD_PARAMETER; } return result; }