diff options
author | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-08-30 16:20:33 +0000 |
---|---|---|
committer | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-08-30 16:20:33 +0000 |
commit | 25914cddf606e683a4226f46b56f800400d633d3 (patch) | |
tree | 58a95b50fc59a45459906d109b4768aa4124951d /src/account-server/account.cpp | |
parent | 5af1c90d2f86e10de74285d89ee975bd959a6556 (diff) | |
download | manaserv-25914cddf606e683a4226f46b56f800400d633d3.tar.gz manaserv-25914cddf606e683a4226f46b56f800400d633d3.tar.bz2 manaserv-25914cddf606e683a4226f46b56f800400d633d3.tar.xz manaserv-25914cddf606e683a4226f46b56f800400d633d3.zip |
Got rid of abstract storage and reference-counted pointers. Fixed lifetime of accounts and characters in server memory. Cleaned some code.
Diffstat (limited to 'src/account-server/account.cpp')
-rw-r--r-- | src/account-server/account.cpp | 50 |
1 files changed, 8 insertions, 42 deletions
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 @@ -28,31 +28,15 @@ #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<CharacterPtr>(), name)); + std::bind2nd(obj_name_is<Character *>(), 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<CharacterPtr>(), name)); - - if (it != end) return *it; - return CharacterPtr(); -} - void Account::setID(int id) { assert(mID < 0); |