910f4c1aec
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@93 542714f4-19e9-0310-aa3c-eee0fc999fb1
35 lines
1.6 KiB
Plaintext
35 lines
1.6 KiB
Plaintext
Cocktail: Party Design -*- outline -*-
|
|
|
|
* Introduction
|
|
The Party layer builds upon the Cher layer through the addition of a few
|
|
key services. These services are based around the concept of bodies and
|
|
places. A client of the system is represented by a body and that body can
|
|
occupy a place. Bodies can communicate with one another through two
|
|
mechanisms: they can speak which broadcasts their message to all other
|
|
bodies that occupy the same place, or they can tell which delivers their
|
|
message specifically to one target body regardless of place.
|
|
|
|
Services are provided for switching from place to place as a body can only
|
|
occupy one place at a time (or no places at all). A framework is provided
|
|
for management of places on the server. Most applications will likely want
|
|
to specialize the place concept and extend it with functionality specific
|
|
to their needs.
|
|
|
|
* Components
|
|
Wherein the individual classes and components that make up the Party
|
|
framework are described.
|
|
|
|
** BodyObject
|
|
The body object extends the client object from the Cher framework and
|
|
tracks information like the current place occupied by the body.
|
|
|
|
** PlaceObject, PlaceManager
|
|
An instance of place object represents a particular place and tracks
|
|
information pertinent to that place, like what bodies currently occupy it.
|
|
Every place has an associated place manager which lives on the server and
|
|
coordinates services for that place. It can be extended to coordinate
|
|
services for place specializations.
|
|
|
|
** ChatService, ChatProvider, ChatReceiver
|
|
These three classes coordinate and manage communication between bodies.
|