EXAMPLES
Tutorial
1) Description
The Tutorial consists of three executables that together make up a primitive chat box
2) Design
The 3 executables are:
- Chatter : sends messages to the chat box
- MessageBoard : displays all available chat messages
- UserLoad : keeps track of when users join and leave the chat box
3) Scenario
The Chatter and MessageBoard executables support optional command-line parameters. When these
parameters are not specified, default values are used instead. The optional parameters and their meaning are:
- Chatter [userid] [username]
- userid: an integer number that uniquely identifies the sender of a message.
(Transmit a message with userid = -1 to terminate the MessageBoard.)
- username: the user-name other chatters will see when they receive one of your
chat messages.
- MessageBoard [userid]
- userid: block messages from a user identified by this id. You can use this
to prevent seeing your own messages appear on your own MessageBoard.
Running of examples
Running the examples in a Posix environment
Environment Setup
Let's call OpenSplice_install_dir the OpenSplice installation directory.
The OpenSplice 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 ISO C++ Executables
Building the examples is described on the Summary page
Three executables are generated in the examples build/bin directory when the example is built:
For C
- c_Tutorial_chatter
- c_Tutorial_messageboard
- c_Tutorial_userload
For ISO C++ 2
- isocpp2_Tutorial_chatter
- isocpp2_messageboard
- isocpp2_userload
Java5 executables
Building the examples is described on the Summary page
Three jars are generated in the java5 directory when the example is built:
For Java5
- chatter/java5_Chatter.jar
- messageboard/java5_Messageboard.jar
- userload/java5_Userload.jar
Running the example
Ensure that the environment for OpenSplice is set up correctly as described above for each new terminal used.
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 OpenSplice middleware
- OpenSplice is deployed in this mode by default.
- The OpenSplice daemon should not be started manually. Instead the OpenSplice middleware and optional services are implicitly started by the single process applications as required
- Open 3 terminals. Set up the environment and go to the example directory as described above
Running in multiple process shared memory configuration
To enable deployment in this mode, an OpenSplice 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.
- Open 3 terminals. In each terminal:
- Setup the environment and go to the example directory as described above
- Set the required configuraton file e.g. OSPL_URI=file://$OSPL_HOME/etc/config/ospl_shmem_ddsi.xml
- Start the OpenSplice daemon. You can do this by typing ospl start
Running the example
- In the first terminal start MessageBoard by running either
- c_Tutorial_messageboard [userid] & for C
- isocpp2_Tutorial_messageboard [userid] & for ISO C++ 2
- java -jar messageboard/java5_Messageboard.jar [userid] & for Java5
MessageBoard usage: MessageBoard [userid] - where userid is optional and is a number representing a user whose messages will be blocked
- In the second terminal start UserLoad by running either
- c_Tutorial_userload & for C
- isocpp2_Tutorial_userload & for ISO C++ 2
- java -jar userload/java5_Userload.jar & for Java5
- In the third terminal start Chatter by running either
- c_Tutorial_chatter [userid] [username] for C
- isocpp2_Tutorial_chatter [userid] [username] for ISO C++ 2
- java -jar chatter/java5_Chatter.jar [userid] [username] for Java5
Chatter usage: Chatter [userid] [username] - where both are optional, userid is a number representing a user whose messages will be blocked, username is any string
- To terminate the MessageBoard run the Chatter again with the -1 as the input parameter
- Chatter -1 for C/C++/ISO C++ 2
- java -jar saj_tutorial_chatter.jar -1 for Java
- java -jar chatter/java5_Chatter.jar -1 for Java5
Running C/C#/ISO C++ 2/Java examples on Windows
Environment Setup
Let's call OpenSplice_install_dir the OpenSplice installation directory.
The OpenSplice environment variables must be set in order for the examples to run correctly.
To do this open an OpenSplice Command Prompt which will set up the environment variables for OpenSplice automatically. The OpenSplice 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#/ISO C++ 2 Executables
Building the examples is described on the Summary page
Executables and a libraries are generated in the examples build/bin directory when the example is built:
For C#
- Chatter
- MessageBoard
- UserLoad
For C
- c_Tutorial_chatter
- c_Tutorial_messageboard
- c_Tutorial_userload
For ISO C++ 2
- isocpp2_Tutorial_chatter
- isocpp2_Tutorial_messageboard
- isocpp2_Tutorial_userload
Java5 Executables
Building the examples is described on the Summary page
Three jars are generated in the java5 directory when the example is built:
For Java5
- chatter/java5_Chatter.jar
- messgeboard/java5_Messageboard.jar
- userload/java5_Userload.jar
Running the C/ISO C++ 2/C#/Java Examples
Ensure that the environment for OpenSplice 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 OpenSplice middleware
- OpenSplice is deployed in this mode by default.
- The OpenSplice daemon should not be started manually. Instead the OpenSplice middleware and optional services are implicitly started by the single process applications as required
- Open 3 OpenSplice Command Prompts and go to the example directory as described above
Running in multiple process shared memory configuration
To enable deployment in this mode, an OpenSplice 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.
- Open 3 OpenSplice Command Prompts. In each window:
- Go to the example directory as described above
- Set the required configuraton file e.g. set OSPL_URI=file://%OSPL_HOME%\etc\config\ospl_shmem_ddsi.xml
- Start the OpenSplice daemon. You can do this by typing ospl start
Running the example
- In the first terminal start MessageBoard by running either
- MessageBoard [userid] & for C#
- c_Tutorial_messageboard [userid] & for C
- isocpp2_Tutorial_messageboard [userid] & for ISO C++ 2
- java -jar messageboard/java5_Messageboard.jar [userid] & for Java5
MessageBoard usage: MessageBoard [userid] - where userid is optional and is a number representing a user whose messages will be blocked
- In the second terminal start UserLoad by running either
- UserLoad & for C#
- c_Tutorial_userload & for C
- isocpp2_Tutorial_userload & for ISO C++ 2
- java -jar userload/java5_Userload.jar & for Java5
- In the third terminal start Chatter by running either
- Chatter [userid] [username] for C#
- c_Tutorial_chatter [userid] [username] for C
- isocpp2_Tutorial_chatter [userid] [username] for ISO C++ 2
- java -jar chatter/java5_Chatter.jar -1 for Java5
Chatter usage: Chatter [userid] [username] - where both are optional, userid is a number representing a user whose messages will be blocked, username is any string
- To terminate the MessageBoard run the Chatter again with -1 as the input parameter
- Chatter -1 for C#
- c_Tutorial_chatter -1 for C
- isocpp2_Tutorial_chatter -1 for ISO C++ 2
- java -jar chatter/java5_Chatter.jar -1 for Java5