Eris::Room Class Reference

The out-of-game (OOG) heirarchy is composed of Rooms, containing Persons and other Rooms. More...

#include <Room.h>

Inheritance diagram for Eris::Room:

Eris::Router Eris::Lobby List of all members.

Public Member Functions

void say (const std::string &tk)
 Send a piece of text to this room.
void emote (const std::string &em)
 Send an emote ( /me ) to the room.
void leave ()
 Leave the room - no more signals will be emitted for this room again (validity of Room pointer after this call?).
RoomcreateRoom (const std::string &name)
 create a child room of this one, with the specified name.
std::string getName () const
 Obtain the human-readable name of this room.
std::string getTopic () const
std::vector< Person * > getPeople () const
 obtain an array of pointers to everyone in this room
std::vector< Room * > getRooms () const
 Obtain a list of rooms within this room.
std::string getId () const
 Get the Atlas object ID of the Room; note that this may return an empty value if called prior to entering the Lobby.
PersongetPersonByUID (const std::string &uid)

Public Attributes

sigc::signal< void, Room * > Entered
 Emitted when entry into the room (after a Join) is complete, i.e the user list has been transferred and resolved.
sigc::signal< void, Room *,
Person *, const std::string & > 
Speech
 The primary talk callback.
sigc::signal< void, Room *,
Person *, const std::string & > 
Emote
 Emote (/me) callback.
sigc::signal< void, Room *,
Person * > 
Appearance
 Emitted when a person enters the room; argument is the account ID.
sigc::signal< void, Room *,
Person * > 
Disappearance
 Similarly, emitted when the specifed person leaves the room.

Protected Types

typedef std::map< std::string,
Person * > 
IdPersonMap

Protected Member Functions

 Room (Lobby *l, const std::string &id)
 standard constructor.
virtual RouterResult handleOperation (const Atlas::Objects::Operation::RootOperation &op)
void handleSoundTalk (Person *p, const std::string &speech)
void handleEmote (Person *p, const std::string &desc)

Protected Attributes

std::string m_roomId

Friends

class Lobby

Detailed Description

The out-of-game (OOG) heirarchy is composed of Rooms, containing Persons and other Rooms.

Generally rooms corespond to chanels in IRC, and the interface and commands should be clear if you are familiar with that medium.


Constructor & Destructor Documentation

Eris::Room::Room ( Lobby l,
const std::string &  id 
) [explicit, protected]

standard constructor.

Issues a LOOK against the specified ID, and sets up the necessary signals to drive the Room if id arg is provided


Member Function Documentation

Room * Eris::Room::createRoom ( const std::string &  name  ) 

create a child room of this one, with the specified name.

Note that most attributes, including the ID will not be valid until the new room emits the 'Entered' signal. If you need a unique, referenceable indentifier earlier than that point, use the pointer value.

void Eris::Room::emote ( const std::string &  em  ) 

Send an emote ( /me ) to the room.

This is transmitted as an IMAGINARY op in Atlas, with args[0]["id"] = "emote".


Member Data Documentation

sigc::signal<void, Room*, Person*> Eris::Room::Appearance

Emitted when a person enters the room; argument is the account ID.

Note that Appearance is not generated for the local player when entering/leaving; use the Entered signal instead.

sigc::signal<void, Room*, Person*, const std::string&> Eris::Room::Emote

Emote (/me) callback.

The arguments are identical to those for Talk above

sigc::signal<void, Room*, Person*, const std::string&> Eris::Room::Speech

The primary talk callback.

The arguments are the source room, the person talking, and the message itself


The documentation for this class was generated from the following files:
Generated on Wed Jan 31 07:41:56 2007 for Eris by  doxygen 1.4.7