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;
130 inline void setCharacters(
const std::list<std::string>& val);
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;
233 m_attrFlags |= CHARACTERS_FLAG;
238 m_attrFlags |= CHARACTERS_FLAG;
240 for(Atlas::Message::ListType::const_iterator I = val.begin();
244 if((*I).isString()) {
252 if(m_attrFlags & USERNAME_FLAG)
260 if(!(m_attrFlags & USERNAME_FLAG))
267 if(m_attrFlags & PASSWORD_FLAG)
275 if(!(m_attrFlags & PASSWORD_FLAG))
282 if(m_attrFlags & CHARACTERS_FLAG)
285 return ((
AccountData*)m_defaults)->attr_characters;
290 if(!(m_attrFlags & CHARACTERS_FLAG))
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
511 class GameEntityData;
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