예제 #1
0
gapi_boolean
gapi_stringSeqValid (
    const gapi_stringSeq *seq
    )
{
    gapi_boolean valid = TRUE;

    if ( seq != NULL ) {
        if ( gapi_sequence_is_valid((void *)seq) ) {
            gapi_unsigned_long i;

            for ( i = 0; valid && (i < seq->_length); i++ ) {
                if ( !seq->_buffer[i] ) {
                    valid = FALSE;
                }
            }
        } else {
            valid = FALSE;
        }
    } else {
        valid = FALSE;
    }

    return valid;
}
예제 #2
0
/*     ReturnCode_t
 *     set_query_parameters(
 *         in StringSeq query_parameters);
 */
gapi_returnCode_t
gapi_queryCondition_set_query_parameters(
    gapi_queryCondition _this,
    const gapi_stringSeq *query_parameters)
{
    gapi_returnCode_t   result         = GAPI_RETCODE_OK;
    _QueryCondition     querycondition = (_QueryCondition)_this;

    querycondition = gapi_queryConditionClaim(_this, &result);

    if (querycondition != NULL && gapi_sequence_is_valid(query_parameters)) {
         u_query uQuery = ((_ReadCondition)querycondition)->uQuery;

         result = gapi_expressionSetQueryArgs(querycondition->expression,
                                              uQuery,
                                              query_parameters);

        if (result == GAPI_RETCODE_OK) {
            /* Store new params for later retrieval */
            gapi_free(querycondition->query_parameters);
            querycondition->query_parameters = gapi_stringSeq_dup(query_parameters);
        }
    } else {
        result = GAPI_RETCODE_BAD_PARAMETER;
    }

    _EntityRelease(querycondition);

    return result;
}
예제 #3
0
gapi_topicQos *
gapi_topicQos__alloc (
    void)
{
    gapi_topicQos *_this = NULL;

    _this = gapi__malloc (gapi_topicQos_free, 0, sizeof (gapi_topicQos));

    assert(gapi_sequence_is_valid(&_this->topic_data));
    return _this;
}
예제 #4
0
/*     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);
}
예제 #5
0
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);
}