// This file may be redistributed and modified only under the terms of
// the GNU Lesser General Public License (See COPYING for details).
// Copyright 2000-2001 Stefanus Du Toit and Aloril.
// Copyright 2001-2005 Alistair Riddoch.
// Automatically generated using gen_cpp.py.
#include <Atlas/Objects/Entity.h>
using Atlas::Message::Element;
using Atlas::Message::MapType;
namespace Atlas { namespace Objects { namespace Entity {
AdminEntityData::~AdminEntityData()
{
}
AdminEntityData * AdminEntityData::copy() const
{
AdminEntityData * copied = AdminEntityData::alloc();
*copied = *this;
copied->m_refCount = 0;
return copied;
}
bool AdminEntityData::instanceOf(int classNo) const
{
if(ADMIN_ENTITY_NO == classNo) return true;
return RootEntityData::instanceOf(classNo);
}
//freelist related methods specific to this class
AdminEntityData *AdminEntityData::defaults_AdminEntityData = 0;
AdminEntityData *AdminEntityData::begin_AdminEntityData = 0;
AdminEntityData *AdminEntityData::alloc()
{
if(begin_AdminEntityData) {
AdminEntityData *res = begin_AdminEntityData;
assert( res->m_refCount == 0 );
res->m_attrFlags = 0;
res->m_attributes.clear();
begin_AdminEntityData = (AdminEntityData *)begin_AdminEntityData->m_next;
return res;
}
return new AdminEntityData(AdminEntityData::getDefaultObjectInstance());
}
void AdminEntityData::free()
{
m_next = begin_AdminEntityData;
begin_AdminEntityData = this;
}
AdminEntityData *AdminEntityData::getDefaultObjectInstance()
{
if (defaults_AdminEntityData == 0) {
defaults_AdminEntityData = new AdminEntityData;
defaults_AdminEntityData->attr_objtype = "obj";
defaults_AdminEntityData->attr_pos.clear();
defaults_AdminEntityData->attr_pos.push_back(0.0);
defaults_AdminEntityData->attr_pos.push_back(0.0);
defaults_AdminEntityData->attr_pos.push_back(0.0);
defaults_AdminEntityData->attr_velocity.clear();
defaults_AdminEntityData->attr_velocity.push_back(0.0);
defaults_AdminEntityData->attr_velocity.push_back(0.0);
defaults_AdminEntityData->attr_velocity.push_back(0.0);
defaults_AdminEntityData->attr_stamp_contains = 0.0;
defaults_AdminEntityData->attr_stamp = 0.0;
defaults_AdminEntityData->attr_parents = std::list<std::string>(1, "admin_entity");
RootEntityData::getDefaultObjectInstance();
}
return defaults_AdminEntityData;
}
AdminEntityData *AdminEntityData::getDefaultObject()
{
return AdminEntityData::getDefaultObjectInstance();
}
const std::string USERNAME_ATTR = "username";
const std::string PASSWORD_ATTR = "password";
const std::string CHARACTERS_ATTR = "characters";
int AccountData::getAttrClass(const std::string& name) const
{
if (attr_flags_AccountData->find(name) != attr_flags_AccountData->end()) {
return ACCOUNT_NO;
}
return AdminEntityData::getAttrClass(name);
}
int AccountData::getAttrFlag(const std::string& name) const
{
std::map<std::string, int>::const_iterator I = attr_flags_AccountData->find(name);
if (I != attr_flags_AccountData->end()) {
return I->second;
}
return AdminEntityData::getAttrFlag(name);
}
int AccountData::copyAttr(const std::string& name, Element & attr) const
{
if (name == USERNAME_ATTR) { attr = getUsername(); return 0; }
if (name == PASSWORD_ATTR) { attr = getPassword(); return 0; }
if (name == CHARACTERS_ATTR) { attr = getCharactersAsList(); return 0; }
return AdminEntityData::copyAttr(name, attr);
}
void AccountData::setAttr(const std::string& name, const Element& attr)
{
if (name == USERNAME_ATTR) { setUsername(attr.asString()); return; }
if (name == PASSWORD_ATTR) { setPassword(attr.asString()); return; }
if (name == CHARACTERS_ATTR) { setCharactersAsList(attr.asList()); return; }
AdminEntityData::setAttr(name, attr);
}
void AccountData::removeAttr(const std::string& name)
{
if (name == USERNAME_ATTR)
{ m_attrFlags &= ~USERNAME_FLAG; return;}
if (name == PASSWORD_ATTR)
{ m_attrFlags &= ~PASSWORD_FLAG; return;}
if (name == CHARACTERS_ATTR)
{ m_attrFlags &= ~CHARACTERS_FLAG; return;}
AdminEntityData::removeAttr(name);
}
inline void AccountData::sendUsername(Atlas::Bridge & b) const
{
if(m_attrFlags & USERNAME_FLAG) {
b.mapStringItem(USERNAME_ATTR, attr_username);
}
}
inline void AccountData::sendPassword(Atlas::Bridge & b) const
{
if(m_attrFlags & PASSWORD_FLAG) {
b.mapStringItem(PASSWORD_ATTR, attr_password);
}
}
inline void AccountData::sendCharacters(Atlas::Bridge & b) const
{
if(m_attrFlags & CHARACTERS_FLAG) {
b.mapListItem(CHARACTERS_ATTR);
const std::list<std::string> & l = attr_characters;
std::list<std::string>::const_iterator I = l.begin();
for(; I != l.end(); ++I) {
b.listStringItem(*I);
}
b.listEnd();
}
}
void AccountData::sendContents(Bridge & b) const
{
sendUsername(b);
sendPassword(b);
sendCharacters(b);
AdminEntityData::sendContents(b);
}
void AccountData::addToMessage(MapType & m) const
{
AdminEntityData::addToMessage(m);
if(m_attrFlags & USERNAME_FLAG)
m[USERNAME_ATTR] = attr_username;
if(m_attrFlags & PASSWORD_FLAG)
m[PASSWORD_ATTR] = attr_password;
if(m_attrFlags & CHARACTERS_FLAG)
m[CHARACTERS_ATTR] = getCharactersAsList();
return;
}
void AccountData::iterate(int& current_class, std::string& attr) const
{
// If we've already finished this class, chain to the parent
if(current_class >= 0 && current_class != ACCOUNT_NO) {
AdminEntityData::iterate(current_class, attr);
return;
}
static const char *attr_list[] = {"username","password","characters",};
static const unsigned n_attr = sizeof(attr_list) / sizeof(const char*);
unsigned next_attr = n_attr; // so we chain to the parent if we don't find attr
if(attr.empty()) // just staring on this class
next_attr = 0;
else {
for(unsigned i = 0; i < n_attr; ++i) {
if(attr == attr_list[i]) {
next_attr = i + 1;
break;
}
}
}
if(next_attr == n_attr) { // last one on the list
current_class = -1;
attr = "";
AdminEntityData::iterate(current_class, attr); // chain to parent
}
else {
current_class = ACCOUNT_NO;
attr = attr_list[next_attr];
}
}
AccountData::~AccountData()
{
}
AccountData * AccountData::copy() const
{
AccountData * copied = AccountData::alloc();
*copied = *this;
copied->m_refCount = 0;
return copied;
}
bool AccountData::instanceOf(int classNo) const
{
if(ACCOUNT_NO == classNo) return true;
return AdminEntityData::instanceOf(classNo);
}
//freelist related methods specific to this class
AccountData *AccountData::defaults_AccountData = 0;
AccountData *AccountData::begin_AccountData = 0;
AccountData *AccountData::alloc()
{
if(begin_AccountData) {
AccountData *res = begin_AccountData;
assert( res->m_refCount == 0 );
res->m_attrFlags = 0;
res->m_attributes.clear();
begin_AccountData = (AccountData *)begin_AccountData->m_next;
return res;
}
return new AccountData(AccountData::getDefaultObjectInstance());
}
void AccountData::free()
{
m_next = begin_AccountData;
begin_AccountData = this;
}
std::map<std::string, int> * AccountData::attr_flags_AccountData = 0;
AccountData *AccountData::getDefaultObjectInstance()
{
if (defaults_AccountData == 0) {
defaults_AccountData = new AccountData;
defaults_AccountData->attr_objtype = "obj";
defaults_AccountData->attr_pos.clear();
defaults_AccountData->attr_pos.push_back(0.0);
defaults_AccountData->attr_pos.push_back(0.0);
defaults_AccountData->attr_pos.push_back(0.0);
defaults_AccountData->attr_velocity.clear();
defaults_AccountData->attr_velocity.push_back(0.0);
defaults_AccountData->attr_velocity.push_back(0.0);
defaults_AccountData->attr_velocity.push_back(0.0);
defaults_AccountData->attr_stamp_contains = 0.0;
defaults_AccountData->attr_stamp = 0.0;
defaults_AccountData->attr_parents = std::list<std::string>(1, "account");
attr_flags_AccountData = new std::map<std::string, int>;
(*attr_flags_AccountData)[USERNAME_ATTR] = USERNAME_FLAG;
(*attr_flags_AccountData)[PASSWORD_ATTR] = PASSWORD_FLAG;
(*attr_flags_AccountData)[CHARACTERS_ATTR] = CHARACTERS_FLAG;
AdminEntityData::getDefaultObjectInstance();
}
return defaults_AccountData;
}
AccountData *AccountData::getDefaultObject()
{
return AccountData::getDefaultObjectInstance();
}
PlayerData::~PlayerData()
{
}
PlayerData * PlayerData::copy() const
{
PlayerData * copied = PlayerData::alloc();
*copied = *this;
copied->m_refCount = 0;
return copied;
}
bool PlayerData::instanceOf(int classNo) const
{
if(PLAYER_NO == classNo) return true;
return AccountData::instanceOf(classNo);
}
//freelist related methods specific to this class
PlayerData *PlayerData::defaults_PlayerData = 0;
PlayerData *PlayerData::begin_PlayerData = 0;
PlayerData *PlayerData::alloc()
{
if(begin_PlayerData) {
PlayerData *res = begin_PlayerData;
assert( res->m_refCount == 0 );
res->m_attrFlags = 0;
res->m_attributes.clear();
begin_PlayerData = (PlayerData *)begin_PlayerData->m_next;
return res;
}
return new PlayerData(PlayerData::getDefaultObjectInstance());
}
void PlayerData::free()
{
m_next = begin_PlayerData;
begin_PlayerData = this;
}
PlayerData *PlayerData::getDefaultObjectInstance()
{
if (defaults_PlayerData == 0) {
defaults_PlayerData = new PlayerData;
defaults_PlayerData->attr_objtype = "obj";
defaults_PlayerData->attr_pos.clear();
defaults_PlayerData->attr_pos.push_back(0.0);
defaults_PlayerData->attr_pos.push_back(0.0);
defaults_PlayerData->attr_pos.push_back(0.0);
defaults_PlayerData->attr_velocity.clear();
defaults_PlayerData->attr_velocity.push_back(0.0);
defaults_PlayerData->attr_velocity.push_back(0.0);
defaults_PlayerData->attr_velocity.push_back(0.0);
defaults_PlayerData->attr_stamp_contains = 0.0;
defaults_PlayerData->attr_stamp = 0.0;
defaults_PlayerData->attr_parents = std::list<std::string>(1, "player");
AccountData::getDefaultObjectInstance();
}
return defaults_PlayerData;
}
PlayerData *PlayerData::getDefaultObject()
{
return PlayerData::getDefaultObjectInstance();
}
AdminData::~AdminData()
{
}
AdminData * AdminData::copy() const
{
AdminData * copied = AdminData::alloc();
*copied = *this;
copied->m_refCount = 0;
return copied;
}
bool AdminData::instanceOf(int classNo) const
{
if(ADMIN_NO == classNo) return true;
return AccountData::instanceOf(classNo);
}
//freelist related methods specific to this class
AdminData *AdminData::defaults_AdminData = 0;
AdminData *AdminData::begin_AdminData = 0;
AdminData *AdminData::alloc()
{
if(begin_AdminData) {
AdminData *res = begin_AdminData;
assert( res->m_refCount == 0 );
res->m_attrFlags = 0;
res->m_attributes.clear();
begin_AdminData = (AdminData *)begin_AdminData->m_next;
return res;
}
return new AdminData(AdminData::getDefaultObjectInstance());
}
void AdminData::free()
{
m_next = begin_AdminData;
begin_AdminData = this;
}
AdminData *AdminData::getDefaultObjectInstance()
{
if (defaults_AdminData == 0) {
defaults_AdminData = new AdminData;
defaults_AdminData->attr_objtype = "obj";
defaults_AdminData->attr_pos.clear();
defaults_AdminData->attr_pos.push_back(0.0);
defaults_AdminData->attr_pos.push_back(0.0);
defaults_AdminData->attr_pos.push_back(0.0);
defaults_AdminData->attr_velocity.clear();
defaults_AdminData->attr_velocity.push_back(0.0);
defaults_AdminData->attr_velocity.push_back(0.0);
defaults_AdminData->attr_velocity.push_back(0.0);
defaults_AdminData->attr_stamp_contains = 0.0;
defaults_AdminData->attr_stamp = 0.0;
defaults_AdminData->attr_parents = std::list<std::string>(1, "admin");
AccountData::getDefaultObjectInstance();
}
return defaults_AdminData;
}
AdminData *AdminData::getDefaultObject()
{
return AdminData::getDefaultObjectInstance();
}
GameData::~GameData()
{
}
GameData * GameData::copy() const
{
GameData * copied = GameData::alloc();
*copied = *this;
copied->m_refCount = 0;
return copied;
}
bool GameData::instanceOf(int classNo) const
{
if(GAME_NO == classNo) return true;
return AdminEntityData::instanceOf(classNo);
}
//freelist related methods specific to this class
GameData *GameData::defaults_GameData = 0;
GameData *GameData::begin_GameData = 0;
GameData *GameData::alloc()
{
if(begin_GameData) {
GameData *res = begin_GameData;
assert( res->m_refCount == 0 );
res->m_attrFlags = 0;
res->m_attributes.clear();
begin_GameData = (GameData *)begin_GameData->m_next;
return res;
}
return new GameData(GameData::getDefaultObjectInstance());
}
void GameData::free()
{
m_next = begin_GameData;
begin_GameData = this;
}
GameData *GameData::getDefaultObjectInstance()
{
if (defaults_GameData == 0) {
defaults_GameData = new GameData;
defaults_GameData->attr_objtype = "obj";
defaults_GameData->attr_pos.clear();
defaults_GameData->attr_pos.push_back(0.0);
defaults_GameData->attr_pos.push_back(0.0);
defaults_GameData->attr_pos.push_back(0.0);
defaults_GameData->attr_velocity.clear();
defaults_GameData->attr_velocity.push_back(0.0);
defaults_GameData->attr_velocity.push_back(0.0);
defaults_GameData->attr_velocity.push_back(0.0);
defaults_GameData->attr_stamp_contains = 0.0;
defaults_GameData->attr_stamp = 0.0;
defaults_GameData->attr_parents = std::list<std::string>(1, "game");
AdminEntityData::getDefaultObjectInstance();
}
return defaults_GameData;
}
GameData *GameData::getDefaultObject()
{
return GameData::getDefaultObjectInstance();
}
GameEntityData::~GameEntityData()
{
}
GameEntityData * GameEntityData::copy() const
{
GameEntityData * copied = GameEntityData::alloc();
*copied = *this;
copied->m_refCount = 0;
return copied;
}
bool GameEntityData::instanceOf(int classNo) const
{
if(GAME_ENTITY_NO == classNo) return true;
return RootEntityData::instanceOf(classNo);
}
//freelist related methods specific to this class
GameEntityData *GameEntityData::defaults_GameEntityData = 0;
GameEntityData *GameEntityData::begin_GameEntityData = 0;
GameEntityData *GameEntityData::alloc()
{
if(begin_GameEntityData) {
GameEntityData *res = begin_GameEntityData;
assert( res->m_refCount == 0 );
res->m_attrFlags = 0;
res->m_attributes.clear();
begin_GameEntityData = (GameEntityData *)begin_GameEntityData->m_next;
return res;
}
return new GameEntityData(GameEntityData::getDefaultObjectInstance());
}
void GameEntityData::free()
{
m_next = begin_GameEntityData;
begin_GameEntityData = this;
}
GameEntityData *GameEntityData::getDefaultObjectInstance()
{
if (defaults_GameEntityData == 0) {
defaults_GameEntityData = new GameEntityData;
defaults_GameEntityData->attr_objtype = "obj";
defaults_GameEntityData->attr_pos.clear();
defaults_GameEntityData->attr_pos.push_back(0.0);
defaults_GameEntityData->attr_pos.push_back(0.0);
defaults_GameEntityData->attr_pos.push_back(0.0);
defaults_GameEntityData->attr_velocity.clear();
defaults_GameEntityData->attr_velocity.push_back(0.0);
defaults_GameEntityData->attr_velocity.push_back(0.0);
defaults_GameEntityData->attr_velocity.push_back(0.0);
defaults_GameEntityData->attr_stamp_contains = 0.0;
defaults_GameEntityData->attr_stamp = 0.0;
defaults_GameEntityData->attr_parents = std::list<std::string>(1, "game_entity");
RootEntityData::getDefaultObjectInstance();
}
return defaults_GameEntityData;
}
GameEntityData *GameEntityData::getDefaultObject()
{
return GameEntityData::getDefaultObjectInstance();
}
} } } // namespace Atlas::Objects::Entity
syntax highlighted by Code2HTML, v. 0.9.1