Eris  1.4.0
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
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

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. More...
 
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. More...
 
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 Member Functions inherited from Eris::Router
virtual RouterResult handleObject (const Atlas::Objects::Root &obj)
 
virtual RouterResult handleEntity (const Atlas::Objects::Entity::RootEntity &ent)
 

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. More...
 
sigc::signal< void, Room *, Person *, const std::string & > Speech
 The primary talk callback. More...
 
sigc::signal< void, Room *, Person *, const std::string & > Emote
 Emote (/me) callback. More...
 
sigc::signal< void, Room *, Person * > Appearance
 Emitted when a person enters the room; argument is the account ID. More...
 
sigc::signal< void, Room *, Person * > Disappearance
 Similarly, emitted when the specifed person leaves the room.
 

Protected Types

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

Protected Member Functions

 Room (Lobby *l, const std::string &id)
 standard constructor. More...
 
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
 

Additional Inherited Members

- Public Types inherited from Eris::Router
enum  RouterResult { IGNORED = 0, HANDLED, WILL_REDISPATCH }
 

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

◆ Room()

Eris::Room::Room ( Lobby l,
const std::string &  id 
)
explicitprotected

standard constructor.

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

References Eris::Lobby::getConnection().

Referenced by getPeople().

Member Function Documentation

◆ createRoom()

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.

References Eris::Lobby::getAccount(), Eris::Lobby::getConnection(), Eris::Account::getId(), Eris::getNewSerialno(), Eris::Lobby::getPerson(), Eris::BaseConnection::isConnected(), and Eris::Connection::send().

◆ emote()

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

References Eris::Lobby::getAccount(), Eris::Lobby::getConnection(), Eris::Account::getId(), Eris::getNewSerialno(), Eris::BaseConnection::isConnected(), and Eris::Connection::send().

Member Data Documentation

◆ Appearance

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.

Referenced by getPeople().

◆ Emote

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

Emote (/me) callback.

The arguments are identical to those for Talk above

Referenced by getPeople().

◆ Entered

sigc::signal<void, Room*> Eris::Room::Entered

Emitted when entry into the room (after a Join) is complete, i.e the user list has been transferred and resolved.

Referenced by getPeople().

◆ Speech

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

Referenced by getPeople().


The documentation for this class was generated from the following files: