]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/application.cpp
Streamline application class registration
[libs/core.git] / source / core / application.cpp
index 17611c1429ac2ef716c1687ba892b3b6356e6f74..a588e9dbb7900cff2b3d15a200f41a9be2382d8f 100644 (file)
@@ -40,9 +40,9 @@ int Application::run(int argc, char **argv, void *data)
        }
        called=true;
 
-       if(!reg_app_)
+       if(!starter_)
        {
-               cerr<<"Trying to run with no application class registered!\n";
+               cerr<<"Trying to run with no RegisteredApplication class!\n";
                return 126;
        }
 
@@ -52,11 +52,11 @@ int Application::run(int argc, char **argv, void *data)
        {
                try
                {
-                       app_=reg_app_->create_app(argc, argv);
+                       app_=starter_->create_app(argc, argv);
                }
                catch(const UsageError &e)
                {
-                       reg_app_->usage(e.what(), argv[0], e.get_brief());
+                       starter_->usage(e.what(), argv[0], e.get_brief());
                        return 1;
                }
 
@@ -144,15 +144,12 @@ void Application::sighandler_(int s)
 }
 
 
-Application::RegBase::RegBase()
+Application::Starter::Starter()
 {
-       if(reg_app_)
-       {
-               cerr<<"Warning: registering the application twice\n";
-               delete reg_app_;
-       }
+       if(starter_)
+               throw InvalidState("Can't create more than one Starter instance");
 
-       reg_app_=this;
+       starter_=this;
 }
 
 Application *Application::app_=0;