extern v_copyin_result __$(type_name)__copyIn(c_base base, const void *from, void *to);
extern void __$(type_name)__copyOut(const void *from, void *to);


$(type_name)TypeSupport
$(type_name)TypeSupport__alloc (
    void
    )
{
    $(type_name)TypeSupport result;
    result = DDS_TypeSupportNew (
            "$(scopedtypename)",
            "$(internaltypename)",
            "$(keyList)",
            $(type_name)_metaDescriptor,
            $(type_name)_metaDescriptorArrLength,
            $(type_name)_metaDescriptorLength,
            (DDS_copyIn)__$(type_name)__copyIn,
            (DDS_copyOut)__$(type_name)__copyOut,
            (DDS_unsigned_long)(sizeof($(type_name))),
            (DDS_allocBuffer)DDS_sequence_$(type_name)_allocbuf
        );
    return result;
}

DDS_ReturnCode_t
$(type_name)TypeSupport_register_type (
    $(type_name)TypeSupport _this,
    const DDS_DomainParticipant domain,
    const DDS_string name
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_TypeSupport_register_type (
	    (DDS_TypeSupport)_this,
	    domain,
	    name
	);
    return result;
}

DDS_string
$(type_name)TypeSupport_get_type_name (
    $(type_name)TypeSupport _this
    )
{
    DDS_string result = (DDS_string)
        DDS_TypeSupport_get_type_name (
	    (DDS_TypeSupport)_this
	);
    return result;
}

DDS_InstanceHandle_t
$(type_name)DataWriter_register_instance (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data
    )
{
    DDS_InstanceHandle_t result = (DDS_InstanceHandle_t)
        DDS_DataWriter_register_instance (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data
	);
    return result;
}

DDS_InstanceHandle_t
$(type_name)DataWriter_register_instance_w_timestamp (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_Time_t *source_timestamp
    )
{
    DDS_InstanceHandle_t result = (DDS_InstanceHandle_t)
        DDS_DataWriter_register_instance_w_timestamp (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    source_timestamp
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_unregister_instance (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_unregister_instance (
	    (const DDS_DataWriter)_this,
	    (DDS_Sample)instance_data,
	    handle
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_unregister_instance_w_timestamp (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t handle,
    const DDS_Time_t *source_timestamp
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_unregister_instance_w_timestamp (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    handle,
	    source_timestamp
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_write (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_write (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    handle
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_write_w_timestamp (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t handle,
    const DDS_Time_t *source_timestamp
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_write_w_timestamp (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    handle,
	    source_timestamp
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_dispose (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t instance_handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_dispose (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    instance_handle
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_dispose_w_timestamp (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t instance_handle,
    const DDS_Time_t *source_timestamp
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_dispose_w_timestamp (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    instance_handle,
	    source_timestamp
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_writedispose (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t instance_handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_writedispose (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    instance_handle
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_writedispose_w_timestamp (
    $(type_name)DataWriter _this,
    const $(type_name) *instance_data,
    const DDS_InstanceHandle_t instance_handle,
    const DDS_Time_t *source_timestamp
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_writedispose_w_timestamp (
	    (DDS_DataWriter)_this,
	    (const DDS_Sample)instance_data,
	    instance_handle,
	    source_timestamp
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataWriter_get_key_value (
    $(type_name)DataWriter _this,
    $(type_name) *key_holder,
    const DDS_InstanceHandle_t handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataWriter_get_key_value (
	    (DDS_DataWriter)_this,
	    (DDS_Sample)key_holder,
	    handle
	);
    return result;
}

DDS_InstanceHandle_t
$(type_name)DataWriter_lookup_instance (
    $(type_name)DataWriter _this,
    const $(type_name) *key_holder
    )
{
    DDS_InstanceHandle_t result = (DDS_InstanceHandle_t)
        DDS_DataWriter_lookup_instance (
        (DDS_DataWriter)_this,
        (DDS_Sample)key_holder
    );
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_read (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_read (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_take (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_take (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_read_w_condition (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_ReadCondition a_condition
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_read_w_condition (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_condition
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_take_w_condition (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_ReadCondition a_condition
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_take_w_condition (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_condition
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_read_next_sample (
    $(type_name)DataReader _this,
    $(type_name) *received_data,
    DDS_SampleInfo *sample_info
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_read_next_sample (
	    (DDS_DataReader)_this,
	    (DDS_Sample)received_data,
	    sample_info
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_take_next_sample (
    $(type_name)DataReader _this,
    $(type_name) *received_data,
    DDS_SampleInfo *sample_info
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_take_next_sample (
	    (DDS_DataReader)_this,
	    (DDS_Sample)received_data,
	    sample_info
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_read_instance (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_read_instance (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_take_instance (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_take_instance (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_read_next_instance (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_read_next_instance (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_take_next_instance (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_take_next_instance (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_read_next_instance_w_condition (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_ReadCondition a_condition
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_read_next_instance_w_condition (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    a_condition
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_take_next_instance_w_condition (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_ReadCondition a_condition
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_take_next_instance_w_condition (
	    (DDS_DataReader)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    a_condition
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_return_loan (
    $(type_name)DataReader _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_return_loan (
            (DDS_DataReader)_this,
            (_DDS_sequence)received_data,
            info_seq
    );
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReader_get_key_value (
    $(type_name)DataReader _this,
    $(type_name) *key_holder,
    const DDS_InstanceHandle_t handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReader_get_key_value (
	    (DDS_DataReader)_this,
	    (DDS_Sample)key_holder,
	    handle
	);
    return result;
}

DDS_InstanceHandle_t
$(type_name)DataReader_lookup_instance (
    $(type_name)DataReader _this,
    const $(type_name) *key_holder
    )
{
    DDS_InstanceHandle_t result = (DDS_InstanceHandle_t)
        DDS_DataReader_lookup_instance (
	    (DDS_DataReader)_this,
	    (DDS_Sample)key_holder
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_read (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_read (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_take (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_take (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_read_next_sample (
    $(type_name)DataReaderView _this,
    $(type_name) *received_data,
    DDS_SampleInfo *sample_info
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_read_next_sample (
	    (DDS_DataReaderView)_this,
	    (DDS_Sample)received_data,
	    sample_info
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_take_next_sample (
    $(type_name)DataReaderView _this,
    $(type_name) *received_data,
    DDS_SampleInfo *sample_info
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_take_next_sample (
	    (DDS_DataReaderView)_this,
	    (DDS_Sample)received_data,
	    sample_info
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_read_instance (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_read_instance (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_take_instance (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_take_instance (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_read_next_instance (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_read_next_instance (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_take_next_instance (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_SampleStateMask sample_states,
    const DDS_ViewStateMask view_states,
    const DDS_InstanceStateMask instance_states
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_take_next_instance (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
	    sample_states,
	    view_states,
	    instance_states
	);
    return result;
}

DDS_ReturnCode_t
$(type_name)DataReaderView_return_loan (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_return_loan (
            (DDS_DataReaderView)_this,
            (_DDS_sequence)received_data,
            info_seq
    );

    if ( result == DDS_RETCODE_OK ) {
        DDS_free(received_data->_buffer);
        received_data->_length  = 0;
        received_data->_maximum = 0;
        received_data->_buffer  = NULL;
        
        DDS_free(info_seq->_buffer);
        info_seq->_length  = 0;
        info_seq->_maximum = 0;
        info_seq->_buffer  = NULL;
    }

    return result;
}


DDS_ReturnCode_t
$(type_name)DataReaderView_read_w_condition (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_ReadCondition a_condition
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_read_w_condition (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
            a_condition
	);
    return result;
}


DDS_ReturnCode_t
$(type_name)DataReaderView_take_w_condition (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_ReadCondition a_condition
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_take_w_condition (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
            a_condition
	);
    return result;
}


DDS_ReturnCode_t
$(type_name)DataReaderView_read_next_instance_w_condition (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_ReadCondition a_condition
   )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_read_next_instance_w_condition (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
            a_condition
	);
    return result;
}


DDS_ReturnCode_t
$(type_name)DataReaderView_take_next_instance_w_condition (
    $(type_name)DataReaderView _this,
    DDS_sequence_$(type_name) *received_data,
    DDS_SampleInfoSeq *info_seq,
    const DDS_long max_samples,
    const DDS_InstanceHandle_t a_handle,
    const DDS_ReadCondition a_condition
   )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_take_next_instance_w_condition (
	    (DDS_DataReaderView)_this,
	    (_DDS_sequence)received_data,
	    info_seq,
	    max_samples,
	    a_handle,
            a_condition
	);
    return result;
}


DDS_ReturnCode_t
$(type_name)DataReaderView_get_key_value (
    $(type_name)DataReaderView _this,
    $(type_name) *key_holder,
    const DDS_InstanceHandle_t handle
    )
{
    DDS_ReturnCode_t result = (DDS_ReturnCode_t)
        DDS_DataReaderView_get_key_value (
	    (DDS_DataReaderView)_this,
	    (DDS_Sample)key_holder,
	    handle
	);
    return result;
}


DDS_InstanceHandle_t
$(type_name)DataReaderView_lookup_instance (
    $(type_name)DataReaderView _this,
    $(type_name) *key_holder
    )
{
    DDS_InstanceHandle_t result = (DDS_InstanceHandle_t)
        DDS_DataReaderView_lookup_instance (
	    (DDS_DataReaderView)_this,
	    (DDS_Sample)key_holder
	);
    return result;
}

