]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/application.h
Move most platform-specific code into overlay directories
[libs/core.git] / source / core / application.h
index b51ac3c446e8e87028623ea0db5751871cacc874..7dfea8a0ad13abaa05d3102ace97a0962e957fd4 100644 (file)
@@ -1,18 +1,12 @@
-/* $Id$
-
-This file is part of libmspcore
-Copyright © 2006-2008, 2011  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_CORE_APPLICATION_H_
 #define MSP_CORE_APPLICATION_H_
 
+#include <stdexcept>
+
 namespace Msp {
 
 /**
-Base class for applications.  Inherit the main class from this and add a static
-member of type RegApp<MainClass>.
+Base class for applications.  See also RegisteredApplication.
 */
 class Application
 {
@@ -25,7 +19,6 @@ protected:
                virtual ~Starter() { }
 
                virtual Application *create_app(int, char **) = 0;
-               virtual void usage(const char *, const char *, bool) = 0;
        };
 
        bool done;
@@ -44,7 +37,6 @@ public:
        virtual ~Application() { }
 
        static int run(int, char **, void * =0);
-       static void usage(const char *, const char *, bool);
        static void *get_data() { return data_; }
 
 protected:
@@ -55,9 +47,15 @@ protected:
        virtual void sighandler(int) { }
 private:
        static void sighandler_(int);
+
+       static void display_exception(const std::exception &);
 };
 
 
+/**
+Registers the class to be used for program startup.  The main application class
+should be derived from this.
+*/
 template<typename T>
 class RegisteredApplication: public Application
 {
@@ -66,7 +64,6 @@ private:
        {
        public:
                Application *create_app(int argc, char **argv) { return new T(argc, argv); }
-               void usage(const char *r, const char *a, bool b) { T::usage(r, a, b); }
        };
 
        static Starter starter_;