<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>Service Documentation</title>
</head>
<body>
<h1>Venue</h1>
A Venue has the following data items. * denotes access available
via accessors; (i) denotes denotes internal or administrative data.
<pre>
(i)        venue_server
*        description
*        connections
*        users
*        nodes
*        data
*        [user] services
(i)*        network services
(i)*        streams
*        event channel
(i)        administrators
</pre>
<h2>Operation <b>Enter(profile)</b>
</h2>
Enter the node. This is the main entrypoint for a client
to make use of a Venue. Add this user's profile to the list
of active users in the venue. Trigger any media negotiations
that must occur.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>profile</td>
<td>ClientProfile</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>VenueEntryReturn</td>
<td>
The return value is a complex type that includes the
aggreregate description of the venue, the set of negotiated
stream configurations, and the private identifier token
to be used in future communications with the venue.
</td>
</tr>
</table>
</p>
<h2>Operation <b>Exit(private_id)</b>
</h2>
Leave the venue. Tear down any remaining state the Venue
has corresponding to this client.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
</table>
</p>
<h2>Operation <b>GetState(private_id)</b>
</h2>
Return the current state of the Venue, in a manner similar
to that of Enter.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>GetStateReturn</td>
<td>
The return value is a complex type that includes the
aggreregate description of the venue.
</td>
</tr>
</table>
</p>
<h2>Operation <b>Destroy(private_id)</b>
</h2>
Destroy this venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
</table>
</p>
<h2>Operation <b>NegotiateCapabilities(private_id)</b>
</h2>
Negotiate capabilities. We discussed this as internal, but
I don't understand why an internal API is exposed in the
service API.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>StreamDescriptionSequence</td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>UpdateClientProfile(private_id, profile)</b>
</h2>
Update the venue's copy of this client's profile information.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td>profile</td>
<td>ClientProfile</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>StreamDescriptionSequence</td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>PutData(private_id, data)</b>
</h2>
Add a data element to the venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td>data</td>
<td>DataDescription</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td></td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>GetDataDescriptions(private_id)</b>
</h2>
Return the list of data elements present in the venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>DataDescriptionSequence</td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>PutService(private_id, service)</b>
</h2>
Add a service to the venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td>service</td>
<td>ServiceDescription</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td></td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>GetServiceDescriptions(private_id)</b>
</h2>
Return the list of services present in the venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>ServiceDescriptionSequence</td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>PutNetworkService(private_id, service)</b>
</h2>
Add a network service to the venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td>service</td>
<td>ServiceDescription</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td></td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>GetNetworkServiceDescriptions(private_id)</b>
</h2>
Return the list of network services present in the venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>ServiceDescriptionSequence</td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>AddConnection(private_id, connection)</b>
</h2>
Add a new venue connection to this venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td>connection</td>
<td>ConnectionDescription</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td></td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>GetConnections(private_id)</b>
</h2>
Return the current list of connections from this venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td>ConnectionDescriptionSequence</td>
<td></td>
</tr>
</table>
</p>
<h2>Operation <b>UpdateVenueDescription(private_id, description)</b>
</h2>
Update the description of this venue.
<p>
<table border='1'>
<tr>
<th>Argument</th>
<th>Type</th>
<th>Documentation</th>
</tr>
<tr>
<td>private_id</td>
<td>string</td>
<td>
The private identifier for this client's connection to the venue,
as returend by Enter().
</td>
</tr>
<tr>
<td>description</td>
<td>VenueDescription</td>
<td></td>
</tr>
<tr>
<td><i>Returned value</i></td>
<td></td>
<td></td>
</tr>
</table>
</p>
</body>
</html>