EXAMPLES

Ownership

1) Description

The ownership example is used to illustrate the concept of Shared Ownership, controlled through QoS, in DDS.

2) Design

It consists of 4 units :

3) Scenario

Two StockQuote Publishers of different ownership strengths publish topics with the same keyfields. The subscriber will receive the topics from the publisher with higher strength. In this example :

Running of examples in Standalone Mode

Running the examples in a Posix environment

Environment Setup

Let's call OpenSplice_install_dir the OpenSplice installation directory.

The OpenSpliceDDS environment variables must be set in order for the examples to build/run correctly. To do this, open a terminal and source the "OpenSplice_install_dir/release.com" script supplied with the distribution.

C and C++ Executables

Building the examples is described on the Summary page

Two executables and a library are generated in the standalone directory when the example is built:

For C++

For C

Java executables

Building the examples is described on the Summary page

Two jars are generated in the standalone directory when the example is built:

Running the example

Ensure that the environment for OpenSpliceDDS is set up correctly as described above for each new terminal used. If running the C or C++ examples ensure that . is added to the LD_LIBRARY_PATH.

It is recommended that you run the subscriber and publisher in separate terminals to avoid mixing the output

Running in single process (heap memory) configuration : the application starts OpenSpliceDDS middleware

Running in multiple process shared memory configuration

To enable deployment in this mode, an OpenSpliceDDS configuration file must be selected that has shared memory support e.g. one of the ospl_shmem xml configuration files found in the OpenSplice_install_dir/etc/config directory.

Starting the subscriber and publisher

  • In another terminal start the publisher by running either
  • Publisher usage, e.g.:
          sac_ownership_pub [publisher_name] [ownership_strength] [nb_iterations] [stop_subscriber_flag]
            publisher_name
            ownership_strength
            nb_iterations : number of sending message iterations
            stop_subscriber_flag : indicates if the publisher has to sent a message to tell the subscriber to stop
        

    Running C/C++/C#/Java examples on Windows

    Environment Setup

    Let's call OpenSplice_install_dir the OpenSplice installation directory.

    The OpenSpliceDDS environment variables must be set in order for the examples to run correctly. To do this open an OpenSpliceDDS Command Prompt which will set up the environment variables for OpenSpliceDDS automatically. The OpenSpliceDDS Command Prompt can be selected from the start menu. Alternatively, open a windows Command Prompt and execute the "OpenSplice_install_dir\release.bat" batch script supplied with the distribution.

    C/C++/C# Executables

    Building the examples is described on the Summary page

    Two executables are generated in the standalone directory when the example is built:

    For C

    For C++

    Java Executables

    Building the examples is described on the Summary page

    The subscriber and publisher classes are generated in the standalone directory when the example is built:

    Running the C/C++/C#/Java Examples

    Ensure that the environment for OpenSpliceDDS is set up correctly as described above for each new command prompt used.

    The following steps describe how to run the examples:

    Running in single process (heap memory) configuration : the application starts OpenSpliceDDS middleware

    Running in multiple process shared memory configuration

    To enable deployment in this mode, an OpenSpliceDDS configuration file must be selected that has shared memory support e.g. one of the ospl_shmem xml configuration files found in the OpenSplice_install_dir\etc\config directory.

    Starting the subscriber and publisher

  • In another terminal start the publisher by running either
  • Publisher usage, e.g.:
          sac_ownership_pub [publisher_name] [ownership_strength] [nb_iterations] [stop_subscriber_flag]
            publisher_name
            ownership_strength
            nb_iterations : number of sending message iterations
            stop_subscriber_flag : indicates if the publisher has to sent a message to tell the subscriber to stop