+public:
+ virtual ~Application() { }
+
+ /** Constructs an instance of the registered application class and runs it.
+ If the application throws a usage_error, a help message is printed. The
+ GetOpt class will throw such exceptions automatically in error conditions.
+
+ This function can only be called once. The global main() function provided
+ by the library normally does it automatically at program startup. */
+ static int run(int, char **, void * =0, void (*)(void *) = 0);
+
+ static void *get_data() { return data_; }
+
+protected:
+ /** Default main loop. Calls tick() repeatedly until exit() is called. A
+ custom main loop should monitor the done member variable and return
+ exit_code. */