Eris  1.4.0
Classes | Typedefs | Enumerations | Functions | Variables
Eris Namespace Reference

Every Eris class and type lives inside the Eris namespace; certain utility functions live in the Util namespace, since they may be moved to a generic WorldForge foundation library in the future. More...

Classes

class  Account
 Encapsulates all the state of an Atlas Account, and methods that operation on that state. More...
 
class  AccountRouter
 
class  ActiveMarker
 To be used with EventService::runOnMainThread. More...
 
class  AsioStreamSocket
 Template specialization which uses boost::asio sockets. More...
 
class  Avatar
 The player's avatar representation. More...
 
class  BaseConnection
 Underlying Atlas connection, providing a send interface, and receive (dispatch) system. More...
 
class  BaseException
 This is the Eris base for all exceptions. More...
 
class  Calendar
 
class  CharacterType
 An available character type which a client can create a character from on the server. More...
 
class  Connection
 Underlying Atlas connection, providing a send interface, and receive (dispatch) system. More...
 
class  DateTime
 Encapsulate a decoded world time instance. More...
 
class  debug
 
class  Entity
 Entity is a concrete (instantiable) class representing one game entity. More...
 
class  EntityRef
 
class  EntityRouter
 
class  error
 
class  EventService
 Handles polling of the IO system as well as making sure that registered handlers are run on the main thread. More...
 
class  Factory
 Factory is used to allow custom entity creation by client libraries. More...
 
class  IGRouter
 
class  InvalidAtlas
 Exception used to indicated malformed or unexpected Atlas from the server. More...
 
class  InvalidOperation
 
class  Lobby
 Lobby is the Out-of-Game session object, valid from connection to the server until disconnection. More...
 
class  logStreamBase
 
class  MemberResponse
 
class  Meta
 Meta encapsulates the meta-game system, including the meta-server protocol and queries. More...
 
class  MetaQuery
 MetaQuery is a temporary connection used to retrieve information about a game server. More...
 
class  NetworkFailure
 
class  notice
 
class  NullResponse
 
class  OOGRouter
 
class  Person
 An Out-of-Game Person (found in a Room / Lobby) As more person data becomes available, this class will be extended, for example to return nicknames, location, the choosen 'face' graphic. More...
 
class  Redispatch
 
class  ResolvableAsioStreamSocket
 Template specialization which uses boost::asio sockets with resolvers (i.e. More...
 
class  ResponseBase
 
class  ResponseTracker
 
class  Room
 The out-of-game (OOG) heirarchy is composed of Rooms, containing Persons and other Rooms. More...
 
class  Router
 abstract interface for objects that can route Atlas data. More...
 
class  ServerInfo
 Information about a specific game server, retrieved via the Meta-server and anonymous GETs. More...
 
class  Session
 Acts as a single entrypoint to Eris. More...
 
class  SightPersonRedispatch
 helper to buffer operations when waiting on sight of a person. More...
 
class  SpawnPoint
 Represents a possible spawn point as described by the server. When a new character is created on the server the user can select which "spawn point" the new character should spawn in. Each spawn point in turn will present a list of possible character types to select. More...
 
class  StreamSocket
 Handles the internal socket instance, interacting with the asynchronous io_service calls. More...
 
class  Task
 
class  TimedEvent
 Class for things which occur after a period of time. More...
 
class  TransferInfo
 A TransferInfo object represents the encapsulation of various data required to successfully transfer a character from one server to another. More...
 
class  TypeBoundRedispatch
 
class  TypeInfo
 The representation of an Atlas type (i.e a class or operation definition). More...
 
class  TypeService
 A service class querying and caching types. More...
 
class  View
 View encapsulates the set of entities currently visible to an Avatar, as well as those that have recently been seen. More...
 
class  ViewEntity
 An entity which is bound to an Eris::View. More...
 
class  WaitFreeQueue
 A queue optimized for insertion from background threads and consumption from one main thread. More...
 
class  warning
 

Typedefs

typedef std::map< std::string, Atlas::Objects::Entity::RootEntity > CharacterMap
 Type used to return available characters.
 
typedef std::map< std::string, Avatar * > ActiveCharacterMap
 
typedef std::map< std::string, SpawnPointSpawnPointMap
 A store of spawn points.
 
typedef std::vector< Entity * > EntityArray
 
typedef std::vector< TypeInfoPtrTypeInfoArray
 
typedef std::list< ServerInfoServerList
 Storage of server information.
 
typedef std::vector< CharacterTypeCharacterTypeStore
 Type used to return available character types.
 
typedef std::set< TypeInfo * > TypeInfoSet
 
typedef std::list< std::string > StringList
 
typedef std::set< std::string > StringSet
 
typedef std::list< Atlas::Message::Element > MessageList
 
typedef EntityEntityPtr
 
typedef TypeInfoTypeInfoPtr
 

Enumerations

enum  LogLevel {
  LOG_ERROR = 0, LOG_WARNING, LOG_NOTICE, LOG_VERBOSE,
  LOG_DEBUG
}
 Logging level : setting a higher level will automaticaly pull in the lower levels (i.e NOTICE implies ERROR and WARNING) More...
 
enum  Result {
  NO_ERR = 0, NOT_CONNECTED, NOT_LOGGED_IN, ALREADY_LOGGED_IN,
  DUPLICATE_CHAR_ACTIVE, BAD_CHARACTER_ID
}
 Result codes returned from various methods. More...
 

Functions

long getNewSerialno ()
 operation serial number sequencing
 
void setLogLevel (LogLevel lvl)
 set the logging level for all sucessive messages : this can be called at any time, so it is reasonable to bracket suspect calls in setLogLevel calls if you choose
 
LogLevel getLogLevel ()
 
void doLog (LogLevel lvl, const std::string &msg)
 
std::ostream & operator<< (std::ostream &os, const Atlas::Objects::Root &obj)
 
std::ostream & operator<< (std::ostream &os, const Atlas::Message::Element &msg)
 
char * pack_uint32 (uint32_t data, char *buffer, unsigned int &size)
 
char * unpack_uint32 (uint32_t &dest, char *buffer)
 
std::string getErrorMessage (const RootOperation &err)
 
void * clearMemberResponse (void *d)
 
std::string getErrorMessage (const Atlas::Objects::Operation::RootOperation &err)
 

Variables

sigc::signal< void, LogLevel, const std::string & > Logged
 Emitted with logging information; client may handle as it see fit. More...
 
const LogLevel DEFAULT_LOG = LOG_WARNING
 the default logging level for a new connection
 
const char * META_SERVER_PORT = "8453"
 
const uint32_t CKEEP_ALIVE = 2
 
const uint32_t HANDSHAKE = 3
 
const uint32_t CLIENTSHAKE = 5
 
const uint32_t LIST_REQ = 7
 
const uint32_t LIST_RESP = 8
 
const uint32_t PROTO_ERANGE = 9
 
const uint32_t LAST = 10
 
const uint32_t LIST_RESP2 = 999
 
const int DATA_BUFFER_SIZE = 4096
 

Detailed Description

Every Eris class and type lives inside the Eris namespace; certain utility functions live in the Util namespace, since they may be moved to a generic WorldForge foundation library in the future.

Enumeration Type Documentation

◆ LogLevel

Logging level : setting a higher level will automaticaly pull in the lower levels (i.e NOTICE implies ERROR and WARNING)

Enumerator
LOG_ERROR 

serious failure indications

LOG_WARNING 

something is amiss, but probably okay to continue

LOG_NOTICE 

general information

LOG_VERBOSE 

lots of information, about every received operation, for example

LOG_DEBUG 

excessive amounts of stuff

◆ Result

Result codes returned from various methods.

Enumerator
NOT_LOGGED_IN 

Occurs when performing an operation that requires a valid server login.

ALREADY_LOGGED_IN 

Occurs when trying to log in to an Account which is already logged in.

Variable Documentation

◆ Logged

sigc::signal< void, LogLevel, const std::string & > Eris::Logged

Emitted with logging information; client may handle as it see fit.

There is room for considerable expansion of this feature; notably message classes (warning / info / debug). Any feedback greatly appreciated