Galaxy Communicator Documentation:

Brokering example


In this example, we demonstrate the basic principles of brokering, including multiple broker clients and environment-aware brokers.

This example can be found in the distribution in contrib/MITRE/examples/audio.

Source fiiles

testaudio_send.c: sets up an outgoing broker for 8-bit audio data.

testaudio_stream_send.c: like testaudio_send.c, but uses the timed task loop to allow the client to connect before the outgoing broker is done writing data.

env_testaudio_receive.c: sets up an incoming broker for 8-bit audio in response to a Hub message. Dumps the result to the audio device and writes a notification message to the Hub.

testaudio_receive.c: like env_testaudio_receive.c, but uses the bare connection instead of the call environment for handling the callback.

testaudio_abort_send.c: terminates a broker without completing it appropriately. This server triggers the broker abort behavior in the receiving servers.

Scripts

audio.csh: runs the testaudio_send and testaudio_receive servers and the Hub, using the audio.pgm program file.

env_audio.csh: runs the testaudio_send and env_testaudio_receive servers and the Hub, using the env_audio.pgm program file. Note that the Hub receives a session ID along with the notification message at the end of the interaction, in contrast to the audio.csh example.

double_audio.csh: runs the testaudio_send server, two testaudio_receive servers, and the Hub, using the double_audio.pgm program file. Observe that both broker clients receive the same audio.

client_double_audio.csh: like double_audio.csh, except that the testaudio_send server is started up as a Hub client. Start this server last.

Language bindings

The python/ subdirectory contains a Python version of the testaudio_send, testaudio_receive and env_testaudio_receive servers. These servers are completely interchangeable with the C versions. In order to play with it, you can substitute it into the scripts.

The acl/ subdirectory contains an Allegro Common Lisp version of the testaudio_send, testaudio_receive and env_testaudio_receive servers. These servers are completely interchangeable with the C versions. In order to play with it, you can substitute it into the scripts.

The java/ subdirectory contains a Java version of the testaudio server. This server is completely interchangeable with the C version. In order to play with it, you can substitute it into the scripts. However since it uses /dev/audio to play sounds it should only work on sparc-solaris machines.

Compilation

Typing "make" in this directory will create the servers, MIT-style Makefiles, scripts and Python, Java and Allegro Common Lisp servers.

Discussion

See the documentation on audio and brokering, as well as the session management documentation.


Please send comments and suggestions to:bugs-darpacomm@linus.mitre.org
Last updated December 26, 2000.

 Copyright (c) 1998, 1999, 2000
The MITRE Corporation
ALL RIGHTS RESERVED