diff options
Diffstat (limited to 'src/storage.cpp')
-rw-r--r-- | src/storage.cpp | 82 |
1 files changed, 58 insertions, 24 deletions
diff --git a/src/storage.cpp b/src/storage.cpp index bb2bd6aa..b5476426 100644 --- a/src/storage.cpp +++ b/src/storage.cpp @@ -4,52 +4,86 @@ * * This file is part of The Mana World. * - * The Mana World is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. + * The Mana World is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or any later version. * - * The Mana World is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * The Mana World is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. * - * You should have received a copy of the GNU General Public License - * along with The Mana World; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the GNU General Public License along + * with The Mana World; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Id$ */ + +#include <stdexcept> + #include "storage.h" #include "dalstorage.h" -//#include "sqlitestorage.h" -Storage *Storage::instance = NULL; +namespace tmwserv +{ + + +// initialize the static attribute. +Storage* Storage::mInstance = 0; -Storage::Storage() + +/** + * Constructor. + */ +Storage::Storage(void) + throw() { + // NOOP } -Storage::~Storage() + +/** + * Destructor. + */ +Storage::~Storage(void) + throw() { + // NOOP } -Storage *Storage::getInstance() + +/** + * Create an instance of Storage. + */ +Storage& +Storage::instance(void) { - if (instance == NULL) - { - instance = new tmwserv::DALStorage(); //SQLiteStorage(); + if (mInstance == 0) { + mInstance = new DALStorage(); + } + + // check that the instance has been created. + if (mInstance == 0) { + throw std::bad_alloc(); } - return instance; + return (*mInstance); } -void Storage::deleteInstance() + +/** + * Delete the instance. + */ +void +Storage::destroy(void) { - if (instance != NULL) - { - delete instance; + if (mInstance != 0) { + delete mInstance; } } + + +} // namespace tmwserv |