Index

Package: DDS.MultiTopic

Description

package DDS.MultiTopic is

Summary: Not supported <<interface>> A specialization of DDS.TopicDescription that allows subscriptions that combine/filter/rearrange data coming from several topics.

DDS.MultiTopic allows a more sophisticated subscription that can select and combine data received from multiple topics into a single resulting type (specified by the inherited type_name). The data will then be filtered (selection) and possibly re-arranged (aggregation/projection) according to a subscription_expression with parameters expression_parameters.

  • The subscription_expression is a string that identifies the selection and re-arrangement of data from the associated topics. It is similar to an SQL statement where the SELECT part provides the fields to be kept, the FROM part provides the names of the topics that are searched for those fields, and the WHERE clause gives the content filter. The Topics combined may have different types but they are restricted in that the type of the fields used for the NATURAL JOIN operation must be the same.

  • The expression_parameters attribute is a sequence of strings that give values to the 'parameters' (i.e. "%n" tokens) in the subscription_expression. The number of supplied parameters must fit with the requested values in the subscription_expression (i.e. the number of %n tokens).

  • DDS.DataReader entities associated with a DDS.MultiTopic are alerted of data modifications by the usual DDS.Listener or DDS.WaitSet / DDS.Condition mechanisms whenever modifications occur to the data associated with any of the topics relevant to the DDS.MultiTopic.

    Note that the source for data may not be restricted to a single topic.

    DDS.DataReader entities associated with a DDS.MultiTopic may access instances that are "constructed" at the DDS.DataReader side from the instances written by multiple DDS.DataWriter entities. The DDS.MultiTopic access instance will begin to exist as soon as all the constituting DDS.Topic instances are in existence. The view_state and instance_state is computed from the corresponding states of the constituting instances:

  • The view_state of the DDS.MultiTopic instance is DDS.NEW_VIEW_STATE if at least one of the constituting instances has view_state = DDS.NEW_VIEW_STATE. Otherwise, it will be DDS.NOT_NEW_VIEW_STATE.

  • The instance_state of the DDS.MultiTopic instance is DDS.ALIVE_INSTANCE_STATE if the instance_state of all the constituting DDS.Topic instances is DDS.ALIVE_INSTANCE_STATE. It is DDS.NOT_ALIVE_DISPOSED_INSTANCE_STATE if at least one of the constituting DDS.Topic instances is DDS.NOT_ALIVE_DISPOSED_INSTANCE_STATE. Otherwise, it is DDS.NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.

    DDSQueryAndFilterSyntaxModule describes the syntax of subscription_expression and expression_parameters.

  • Types

    Ref (abstract)

    type Ref is limited interface and DDS.TopicDescription.Ref;

    Ref_Access

    type Ref_Access is access all Ref'Class;

    Subprograms & Entries

    get_subscription_expression

    function get_subscription_expression 
    (Self: not null access Ref) return DDS.String is abstract;

    Summary: Get the expression for this DDS.MultiTopic.

    The expressions syntax is described in the DDS specification. It is specified when the DDS.MultiTopic is created.

    self: <<in>> Cannot be NULL

    Returns: subscription_expression of the DDS.MultiTopic.