From 25914cddf606e683a4226f46b56f800400d633d3 Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Thu, 30 Aug 2007 16:20:33 +0000 Subject: Got rid of abstract storage and reference-counted pointers. Fixed lifetime of accounts and characters in server memory. Cleaned some code. --- src/account-server/account.cpp | 50 +++++++----------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) (limited to 'src/account-server/account.cpp') diff --git a/src/account-server/account.cpp b/src/account-server/account.cpp index 883654f6..bddcf4f9 100644 --- a/src/account-server/account.cpp +++ b/src/account-server/account.cpp @@ -27,32 +27,16 @@ #include "account-server/accountclient.hpp" #include "utils/functors.h" -/** - * Constructor with initial account info. - */ -Account::Account(const std::string& name, - const std::string& password, - const std::string& email, - int level, - int id) - : mName(name), - mPassword(password), - mEmail(email), - mCharacters(), - mID(id), - mLevel(level) -{ - // NOOP -} - - /** * Destructor. */ Account::~Account() { - // mCharacters is a list of smart pointers which will take care about - // deallocating the memory so nothing to deallocate here :) + for (Characters::iterator i = mCharacters.begin(), + i_end = mCharacters.end(); i != i_end; ++i) + { + delete *i; + } } @@ -69,12 +53,9 @@ Account::setCharacters(const Characters& characters) /** * Add a new character. */ -void -Account::addCharacter(CharacterPtr character) +void Account::addCharacter(Character *character) { - if (character.get() != 0) { - mCharacters.push_back(character); - } + mCharacters.push_back(character); } /** @@ -85,28 +66,13 @@ bool Account::delCharacter(std::string const &name) Characters::iterator end = mCharacters.end(), it = std::find_if(mCharacters.begin(), end, - std::bind2nd(obj_name_is(), name)); + std::bind2nd(obj_name_is(), name)); if (it == end) return false; mCharacters.erase(it); return true; } - -/** - * Get a character by name. - */ -CharacterPtr Account::getCharacter(const std::string& name) -{ - Characters::iterator - end = mCharacters.end(), - it = std::find_if(mCharacters.begin(), end, - std::bind2nd(obj_name_is(), name)); - - if (it != end) return *it; - return CharacterPtr(); -} - void Account::setID(int id) { assert(mID < 0); -- cgit v1.2.3-60-g2f50