7 #ifndef ATLAS_OBJECTS_ENTITY_ENTITY_H 8 #define ATLAS_OBJECTS_ENTITY_ENTITY_H 10 #include <Atlas/Objects/RootEntity.h> 11 #include <Atlas/Objects/Anonymous.h> 14 namespace Atlas {
namespace Objects {
namespace Entity {
22 class AdminEntityData;
23 typedef SmartPtr<AdminEntityData> AdminEntity;
25 static const int ADMIN_ENTITY_NO = 3;
38 m_class_no = ADMIN_ENTITY_NO;
51 virtual void iterate(
int& current_class, std::string& attr)
const 85 static const int ACCOUNT_NO = 4;
98 m_class_no = ACCOUNT_NO;
114 virtual void setAttr(
const std::string& name,
117 virtual void removeAttr(
const std::string& name);
123 virtual void addToMessage(Atlas::Message::MapType &)
const;
126 inline void setUsername(
const std::string& val);
128 inline void setPassword(
const std::string& val);
130 inline void setCharacters(
const std::list<std::string>& val);
132 inline void setCharactersAsList(
const Atlas::Message::ListType& val);
135 inline const std::string& getUsername()
const;
137 inline std::string& modifyUsername();
139 inline const std::string& getPassword()
const;
141 inline std::string& modifyPassword();
143 inline const std::list<std::string>& getCharacters()
const;
145 inline std::list<std::string>& modifyCharacters();
147 inline const Atlas::Message::ListType getCharactersAsList()
const;
150 inline bool isDefaultUsername()
const;
152 inline bool isDefaultPassword()
const;
154 inline bool isDefaultCharacters()
const;
160 virtual int getAttrFlag(
const std::string& name)
const;
175 virtual void iterate(
int& current_class, std::string& attr)
const;
197 static std::map<std::string, int> * attr_flags_AccountData;
204 extern const std::string USERNAME_ATTR;
205 extern const std::string PASSWORD_ATTR;
206 extern const std::string CHARACTERS_ATTR;
212 const int USERNAME_FLAG = 1 << 11;
217 m_attrFlags |= USERNAME_FLAG;
220 const int PASSWORD_FLAG = 1 << 12;
225 m_attrFlags |= PASSWORD_FLAG;
228 const int CHARACTERS_FLAG = 1 << 13;
232 attr_characters = val;
233 m_attrFlags |= CHARACTERS_FLAG;
238 m_attrFlags |= CHARACTERS_FLAG;
239 attr_characters.resize(0);
240 for(Atlas::Message::ListType::const_iterator I = val.begin();
244 if((*I).isString()) {
245 attr_characters.push_back((*I).asString());
252 if(m_attrFlags & USERNAME_FLAG)
253 return attr_username;
260 if(!(m_attrFlags & USERNAME_FLAG))
261 setUsername(((
AccountData*)m_defaults)->attr_username);
262 return attr_username;
267 if(m_attrFlags & PASSWORD_FLAG)
268 return attr_password;
275 if(!(m_attrFlags & PASSWORD_FLAG))
276 setPassword(((
AccountData*)m_defaults)->attr_password);
277 return attr_password;
282 if(m_attrFlags & CHARACTERS_FLAG)
283 return attr_characters;
285 return ((
AccountData*)m_defaults)->attr_characters;
290 if(!(m_attrFlags & CHARACTERS_FLAG))
291 setCharacters(((
AccountData*)m_defaults)->attr_characters);
292 return attr_characters;
297 const std::list<std::string>& lst_in = getCharacters();
298 Atlas::Message::ListType lst_out;
299 for(std::list<std::string>::const_iterator I = lst_in.begin();
303 lst_out.push_back(std::string(*I));
310 return (m_attrFlags & USERNAME_FLAG) == 0;
315 return (m_attrFlags & PASSWORD_FLAG) == 0;
320 return (m_attrFlags & CHARACTERS_FLAG) == 0;
334 static const int PLAYER_NO = 5;
347 m_class_no = PLAYER_NO;
360 virtual void iterate(
int& current_class, std::string& attr)
const 394 static const int ADMIN_NO = 6;
407 m_class_no = ADMIN_NO;
420 virtual void iterate(
int& current_class, std::string& attr)
const 454 static const int GAME_NO = 7;
467 m_class_no = GAME_NO;
480 virtual void iterate(
int& current_class, std::string& attr)
const 514 static const int GAME_ENTITY_NO = 8;
527 m_class_no = GAME_ENTITY_NO;
540 virtual void iterate(
int& current_class, std::string& attr)
const 566 #endif // ATLAS_OBJECTS_ENTITY_ENTITY_H std::list< std::string > & modifyCharacters()
Retrieve the "characters" attribute as a non-const reference.
Definition: Entity.h:288
static AdminEntityData * getDefaultObjectInstance()
Get the reference object that contains the default values for attributes of instances of this class...
void setCharactersAsList(const Atlas::Message::ListType &val)
Set the "characters" attribute AsList.
Definition: Entity.h:236
void setCharacters(const std::list< std::string > &val)
Set the "characters" attribute.
Definition: Entity.h:230
bool isDefaultPassword() const
Is "password" value default?
Definition: Entity.h:313
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
Definition: Entity.h:360
Atlas stream bridge.
Definition: Bridge.h:35
void setPassword(const std::string &val)
Set the "password" attribute.
Definition: Entity.h:222
virtual void free()
Free an instance of this class, returning it to the memory pool.
std::string attr_username
Username for account usually.
Definition: Entity.h:162
AdminData(AdminData *defaults=NULL)
Construct a AdminData class definition.
Definition: Entity.h:404
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
const std::string & getPassword() const
Retrieve the "password" attribute.
Definition: Entity.h:265
std::list< std::string > attr_characters
List of characters account can control.
Definition: Entity.h:166
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
Definition: Entity.h:540
Multi-type container.
Definition: Element.h:60
virtual ~AdminEntityData()
Default destructor.
virtual void setAttr(const std::string &name, const Atlas::Message::Element &attr)
Set the attribute "name" to the value given by"attr".
virtual int copyAttr(const std::string &name, Atlas::Message::Element &attr) const
Retrieve the attribute "name".
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
Definition: Entity.h:51
All In Game classes and objects.
Definition: Entity.h:520
PlayerData(PlayerData *defaults=NULL)
Construct a PlayerData class definition.
Definition: Entity.h:344
virtual AdminEntityData * copy() const
Copy this object.
The Atlas namespace.
Definition: Bridge.h:20
virtual AdminEntityData * getDefaultObject()
Get the reference object that contains the default values for attributes of instances of the same cla...
All classes and objects used for adminitrativive purposes.
Definition: Entity.h:31
Games this server hosts.
Definition: Entity.h:460
GameEntityData(GameEntityData *defaults=NULL)
Construct a GameEntityData class definition.
Definition: Entity.h:524
Player accounts.
Definition: Entity.h:340
virtual void sendContents(Atlas::Bridge &b) const
Send the contents of this object to a Bridge.
bool isDefaultUsername() const
Is "username" value default?
Definition: Entity.h:308
void setUsername(const std::string &val)
Set the "username" attribute.
Definition: Entity.h:214
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
const std::string & getUsername() const
Retrieve the "username" attribute.
Definition: Entity.h:250
virtual void addToMessage(Atlas::Message::MapType &) const
Write this object to an existing Element.
Starting point for entity hierarchy.
Definition: RootEntity.h:30
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
Definition: Entity.h:420
virtual int getAttrFlag(const std::string &name) const
Find the flag for the attribute "name".
const std::list< std::string > & getCharacters() const
Retrieve the "characters" attribute.
Definition: Entity.h:280
Privileged accounts.
Definition: Entity.h:400
std::string attr_password
Password for account usually.
Definition: Entity.h:164
AccountData(AccountData *defaults=NULL)
Construct a AccountData class definition.
Definition: Entity.h:95
std::string & modifyPassword()
Retrieve the "password" attribute as a non-const reference.
Definition: Entity.h:273
virtual void removeAttr(const std::string &name)
Remove the attribute "name". This will not work for static attributes.
virtual int getAttrClass(const std::string &name) const
Find the class which contains the attribute "name".
virtual bool instanceOf(int classNo) const
Is this instance of some class?
Base class for accounts.
Definition: Entity.h:91
bool isDefaultCharacters() const
Is "characters" value default?
Definition: Entity.h:318
virtual void iterate(int ¤t_class, std::string &attr) const
Iterate over the attributes of this instance.
Definition: Entity.h:480
GameData(GameData *defaults=NULL)
Construct a GameData class definition.
Definition: Entity.h:464
AdminEntityData(AdminEntityData *defaults=NULL)
Construct a AdminEntityData class definition.
Definition: Entity.h:35
std::string & modifyUsername()
Retrieve the "username" attribute as a non-const reference.
Definition: Entity.h:258
const Atlas::Message::ListType getCharactersAsList() const
Retrieve the "characters" attribute AsList.
Definition: Entity.h:295