X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fcore%2Fapplication.cpp;h=8447eed669d2b8f58c9b078b547b1543b0bab27f;hb=HEAD;hp=1fbe15452fd8a13d39c3c0939d2c09419e5b6733;hpb=5763dd6e8089c97699cbcbd221afb7fe1841bcdd;p=libs%2Fcore.git diff --git a/source/core/application.cpp b/source/core/application.cpp index 1fbe154..c214a06 100644 --- a/source/core/application.cpp +++ b/source/core/application.cpp @@ -9,22 +9,23 @@ #include #include #include "application.h" +#include "except.h" #include "getopt.h" using namespace std; namespace Msp { -Application *Application::_app = 0; -Application::Starter *Application::_starter = 0; -const char *Application::_argv0 = 0; +Application *Application::_app = nullptr; +Application::Starter *Application::_starter = nullptr; +const char *Application::_argv0 = nullptr; string Application::_name; -void *Application::_data = 0; +void *Application::_data = nullptr; Application::Application(const string &n) { if(_app) - throw logic_error("instance already exists"); + throw already_called("Application::Application"); if(!n.empty()) _name = n; @@ -59,7 +60,7 @@ int Application::run(int argc, char **argv, void *data, void (*created_callback) int result = _app->main(); Application *a = _app; - _app = 0; + _app = nullptr; delete a; return result; } @@ -85,7 +86,7 @@ int Application::run(int argc, char **argv, void *data, void (*created_callback) } delete _app; - _app = 0; + _app = nullptr; return 124; } @@ -94,7 +95,7 @@ int Application::run(int argc, char **argv, void *data, void (*created_callback) void Application::set_startup_info(const char *argv0, void *data) { if(_argv0) - throw logic_error("startup info already set"); + throw already_called("Application::set_startup_info"); static FS::Path exe; @@ -117,6 +118,21 @@ void Application::set_startup_info(const char *argv0, void *data) _data = data; } +void *Application::get_data() +{ + return _data; +} + +const char *Application::get_argv0() +{ + return _argv0; +} + +const std::string &Application::get_name() +{ + return _name; +} + int Application::main() { done = false; @@ -146,7 +162,7 @@ void Application::_sighandler(int s) Application::Starter::Starter() { if(_starter) - throw logic_error("Can't create more than one Starter instance"); + throw already_called("Application::Starter::Starter"); _starter = this; }