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; }
_QueryCondition _QueryConditionNew( 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, _DataReaderView datareaderview) { _QueryCondition _this; u_reader uReader; u_dataView uDataView; /* Allocate QueryCondition */ _this = _QueryConditionAlloc(); if (_this != NULL) { /* Initialise QueryCondition */ if (datareaderview != NULL) { _ConditionInit(_Condition(_this), _Entity(datareaderview), _ReadConditionGetTriggerValue); } else { _ConditionInit(_Condition(_this), _Entity(datareader), _ReadConditionGetTriggerValue); } _this->_parent.dataReader = datareader; _this->_parent.dataReaderView = datareaderview; _this->_parent.readerMask.sampleStateMask = sample_states; _this->_parent.readerMask.viewStateMask = view_states; _this->_parent.readerMask.instanceStateMask = instance_states; _this->query_expression = gapi_string_dup(query_expression); _this->query_parameters = gapi_stringSeq_dup(query_parameters); uReader = u_reader(_DataReaderUreader(datareader)); _this->expression = gapi_createQueryExpression(u_entity(uReader), _this->query_expression); if (_this->expression) { if (datareaderview) { uDataView = u_dataView(_DataReaderViewUreaderView(datareaderview)); _this->_parent.uQuery = gapi_expressionCreateQuery( _this->expression, u_reader(uDataView), NULL, _this->query_parameters); } else { uReader = u_reader(_DataReaderUreader(datareader)); _this->_parent.uQuery = gapi_expressionCreateQuery( _this->expression, uReader, NULL, _this->query_parameters); } if (_this->_parent.uQuery) { /* Success: fill UserData and mark as valid */ u_entitySetUserData(u_entity(_this->_parent.uQuery),_this); _Condition(_this)->uEntity = u_entity(_this->_parent.uQuery); } else { gapi_free(_this->query_expression); gapi_free(_this->query_parameters); gapi_expressionFree(_this->expression); _ConditionDispose(_Condition(_this)); _this = NULL; } } else { gapi_free(_this->query_expression); gapi_free(_this->query_parameters); _ConditionDispose(_Condition(_this)); _this = NULL; } } return _this; }