/* Generated by /home/adam/OpenDDS-3.13.1-sec/bin/opendds_idl version 3.13.1 (ACE version 6.2a_p16) running on input file Messenger.idl */
#ifndef OPENDDS_IDL_GENERATED_MESSENGERTYPESUPPORT_IDL_BM7XFA
#define OPENDDS_IDL_GENERATED_MESSENGERTYPESUPPORT_IDL_BM7XFA
#define __OPENDDS_IDL_HAS_FIXED
#include "Messenger.idl"

#include "dds/DdsDcpsInfrastructure.idl"
#include "dds/DdsDcpsPublication.idl"
#include "dds/DdsDcpsSubscriptionExt.idl"
#include "dds/DdsDcpsTopic.idl"
#include "dds/DdsDcpsTypeSupportExt.idl"


/* Begin MODULE: CORBA */


/* End MODULE: CORBA */


/* Begin MODULE: CORBA */



/* Begin TYPEDEF: OctetSeq */


/* End TYPEDEF: OctetSeq */

/* End MODULE: CORBA */


/* Begin MODULE: Messenger */



/* Begin TYPEDEF: OctetSeq */


/* End TYPEDEF: OctetSeq */


/* Begin STRUCT: Message */

module Messenger {
#pragma DCPS_SUPPORT_ZERO_COPY_READ
#pragma DCPS_GEN_ZERO_COPY_READ

#if !defined (__TAO_IDL) || (__TAO_IDL >= 0x060101)
#pragma DCPS_DATA_SEQUENCE_TYPE "Messenger::MessageSeq"
typedef sequence<Messenger::Message> MessageSeq;
#else
native MessageSeq;
#endif

/** Support topic registration for Message data type.
 *
 * See the DDS specification, OMG formal/04-12-02, for a description of
 * this interface.
 */
local interface MessageTypeSupport : OpenDDS::DCPS::TypeSupport {
};

/** DataWriter interface for Message data type.
 *
 * See the DDS specifications, OMG formal/04-12-02 and formal/07-01-01,
 * for a description of this interface.
 */
local interface MessageDataWriter : ::DDS::DataWriter {
    ::DDS::InstanceHandle_t register_instance(
                in Messenger::Message instance);

    ::DDS::InstanceHandle_t register_instance_w_timestamp(
                in Messenger::Message instance,
                in ::DDS::Time_t timestamp);

    ::DDS::ReturnCode_t unregister_instance(
                in Messenger::Message instance,
                in ::DDS::InstanceHandle_t handle);

    ::DDS::ReturnCode_t unregister_instance_w_timestamp(
                in Messenger::Message instance,
                in ::DDS::InstanceHandle_t handle,
                in ::DDS::Time_t timestamp);

    //WARNING: If the handle is non-nil and the instance is not registered
    //         then this operation may cause an access violation.
    //         This lack of safety helps performance.
    ::DDS::ReturnCode_t write(
                in Messenger::Message instance_data,
                in ::DDS::InstanceHandle_t handle);

    //WARNING: If the handle is non-nil and the instance is not registered
    //         then this operation may cause an access violation.
    //         This lack of safety helps performance.
    ::DDS::ReturnCode_t write_w_timestamp(
                in Messenger::Message instance_data,
                in ::DDS::InstanceHandle_t handle,
                in ::DDS::Time_t source_timestamp);

    ::DDS::ReturnCode_t dispose(
                in Messenger::Message instance_data,
                in ::DDS::InstanceHandle_t instance_handle);

    ::DDS::ReturnCode_t dispose_w_timestamp(
                in Messenger::Message instance_data,
                in ::DDS::InstanceHandle_t instance_handle,
                in ::DDS::Time_t source_timestamp);

    ::DDS::ReturnCode_t get_key_value(
                inout Messenger::Message key_holder,
                in ::DDS::InstanceHandle_t handle);

    ::DDS::InstanceHandle_t lookup_instance(
                in Messenger::Message instance_data);
};

/** DataReader interface for Message data type.
 *
 * See the DDS specification, OMG formal/04-12-02, for a description of
 * this interface.
 */
local interface MessageDataReader : OpenDDS::DCPS::DataReaderEx {
    ::DDS::ReturnCode_t read(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq,
                in long max_samples,
                in ::DDS::SampleStateMask sample_states,
                in ::DDS::ViewStateMask view_states,
                in ::DDS::InstanceStateMask instance_states);

    ::DDS::ReturnCode_t take(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq,
                in long max_samples,
                in ::DDS::SampleStateMask sample_states,
                in ::DDS::ViewStateMask view_states,
                in ::DDS::InstanceStateMask instance_states);

    ::DDS::ReturnCode_t read_w_condition(
                inout MessageSeq data_values,
                inout ::DDS::SampleInfoSeq sample_infos,
                in long max_samples,
                in ::DDS::ReadCondition a_condition);

    ::DDS::ReturnCode_t take_w_condition(
                inout MessageSeq data_values,
                inout ::DDS::SampleInfoSeq sample_infos,
                in long max_samples,
                in ::DDS::ReadCondition a_condition);

    ::DDS::ReturnCode_t read_next_sample(
                inout Messenger::Message received_data,
                inout ::DDS::SampleInfo sample_info);

    ::DDS::ReturnCode_t take_next_sample(
                inout Messenger::Message received_data,
                inout ::DDS::SampleInfo sample_info);

    ::DDS::ReturnCode_t read_instance(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq,
                in long max_samples,
                in ::DDS::InstanceHandle_t a_handle,
                in ::DDS::SampleStateMask sample_states,
                in ::DDS::ViewStateMask view_states,
                in ::DDS::InstanceStateMask instance_states);

    ::DDS::ReturnCode_t take_instance(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq,
                in long max_samples,
                in ::DDS::InstanceHandle_t a_handle,
                in ::DDS::SampleStateMask sample_states,
                in ::DDS::ViewStateMask view_states,
                in ::DDS::InstanceStateMask instance_states);

    ::DDS::ReturnCode_t read_instance_w_condition(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq sample_infos,
                in long max_samples,
                in ::DDS::InstanceHandle_t a_handle,
                in ::DDS::ReadCondition a_condition);

    ::DDS::ReturnCode_t take_instance_w_condition(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq sample_infos,
                in long max_samples,
                in ::DDS::InstanceHandle_t a_handle,
                in ::DDS::ReadCondition a_condition);

    ::DDS::ReturnCode_t read_next_instance(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq,
                in long max_samples,
                in ::DDS::InstanceHandle_t a_handle,
                in ::DDS::SampleStateMask sample_states,
                in ::DDS::ViewStateMask view_states,
                in ::DDS::InstanceStateMask instance_states);

    ::DDS::ReturnCode_t take_next_instance(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq,
                in long max_samples,
                in ::DDS::InstanceHandle_t a_handle,
                in ::DDS::SampleStateMask sample_states,
                in ::DDS::ViewStateMask view_states,
                in ::DDS::InstanceStateMask instance_states);

    ::DDS::ReturnCode_t read_next_instance_w_condition(
                inout MessageSeq data_values,
                inout ::DDS::SampleInfoSeq sample_infos,
                in long max_samples,
                in ::DDS::InstanceHandle_t previous_handle,
                in ::DDS::ReadCondition a_condition);

    ::DDS::ReturnCode_t take_next_instance_w_condition(
                inout MessageSeq data_values,
                inout ::DDS::SampleInfoSeq sample_infos,
                in long max_samples,
                in ::DDS::InstanceHandle_t previous_handle,
                in ::DDS::ReadCondition a_condition);

    ::DDS::ReturnCode_t return_loan(
                inout MessageSeq received_data,
                inout ::DDS::SampleInfoSeq info_seq);

    ::DDS::ReturnCode_t get_key_value(
                inout Messenger::Message key_holder,
                in ::DDS::InstanceHandle_t handle);

    ::DDS::InstanceHandle_t lookup_instance(
                in Messenger::Message instance_data);
};
};

/* End STRUCT: Message */

/* End MODULE: Messenger */
#endif /* OPENDDS_IDL_GENERATED_MESSENGERTYPESUPPORT_IDL_BM7XFA */
