omg-elements 0.2.3

Core message data structures generated from OMG IDL.
Documentation
/*
 *
 *
 * Distributed under the Apache License.
 * See: https://github.com/frehberg/rtps-gen/blob/master/LICENSE
 */

#ifndef DDS_DCPS_TOPIC_IDL
#define DDS_DCPS_TOPIC_IDL

#include "dds/DdsDcpsInfrastructure.idl"

#pragma ciao lem "dds/DdsDcpsTopicE.idl"

module DDS {
    local interface DomainParticipant;
    local interface Topic;

    // ----------------------------------------------------------------------
    local interface TopicDescription {
        string get_type_name();
        string get_name();
        DomainParticipant get_participant();
    };

    local interface TopicListener : Listener {
        void on_inconsistent_topic(
                in Topic the_topic,
                in InconsistentTopicStatus status);
    };

    local interface Topic : Entity, TopicDescription {
        ReturnCode_t set_qos(in TopicQos qos);
        ReturnCode_t get_qos(inout TopicQos qos);
        ReturnCode_t set_listener(
            in TopicListener a_listener,
            in StatusMask mask);
        TopicListener get_listener();
        // Access the status
        ReturnCode_t get_inconsistent_topic_status(
            inout InconsistentTopicStatus a_status);
    };

#ifndef DDS_NO_CONTENT_FILTERED_TOPIC

    local interface ContentFilteredTopic : TopicDescription {
        string get_filter_expression();
        ReturnCode_t get_expression_parameters(inout StringSeq params);
        ReturnCode_t set_expression_parameters(
            in StringSeq expression_parameters);
        Topic get_related_topic();
    };

#endif

#ifndef DDS_NO_MULTI_TOPIC

    local interface MultiTopic : TopicDescription {
        string get_subscription_expression();
        ReturnCode_t get_expression_parameters(inout StringSeq params);
        ReturnCode_t set_expression_parameters(
            in StringSeq expression_parameters);
    };

#endif

    local interface TypeSupport {
        ReturnCode_t register_type(
            in DomainParticipant domain,
            in string type_name);

        string get_type_name ();
    };
};

#endif /* DDS_DCPS_TOPIC_IDL */