<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>