![]() |
Public API Reference |
![]() |
Application framework class. More...
#include <cstool/csapplicationframework.h>
Public Member Functions | |
bool | DoRestart () |
Query whether the application is to be restarted instead of exited. | |
int | Main (int argc, char *argv[]) |
Starts up the application framework, to be called from main(). | |
bool | Open () |
Open plugins and open application window. | |
operator iObjectRegistry * () | |
Allow a csApplicationFramework object to be used as an iObjectRegistry*. | |
void | Restart () |
Restart application. | |
virtual | ~csApplicationFramework () |
Destructor. | |
Static Public Member Functions | |
static const char * | GetApplicationName () |
Get the application name. | |
static iObjectRegistry * | GetObjectRegistry () |
Returns a pointer to the object registry. | |
static void | Quit () |
Quit running the application. | |
static bool | ReportError (const char *description,...) |
Display an error notification. | |
static void | ReportInfo (const char *description,...) |
Display an information notification. | |
static void | ReportWarning (const char *description,...) |
Display a warning notification. | |
static void | Run () |
Start event queue. | |
static void | SetApplicationName (const char *name) |
Set the application's string name identifier. | |
Protected Member Functions | |
virtual bool | Application ()=0 |
Perform application logic. | |
csApplicationFramework () | |
Constructor. | |
virtual void | OnCommandLineHelp () |
Print out command line help. | |
virtual void | OnExit () |
Perform any end of program processing. | |
virtual bool | OnInitialize (int argc, char *argv[])=0 |
Initialize the subclassed csApplicationFramework object. | |
Static Protected Member Functions | |
static bool | SetupConfigManager (iObjectRegistry *object_reg, const char *configName) |
Setup the config manager. | |
Static Protected Attributes | |
static iObjectRegistry * | object_reg |
Pointer to the application's object registry. |
Application framework class.
This class provides a handy object-oriented wrapper around the Crystal Space initialization and start-up functions. It encapsulates a callback paradigm which provides methods such as OnInitialize() and OnExit() which you can override to customize the framework's behavior. You should also consider using csBaseEventHandler (csutil/csbaseeventh.h), which provides the same sort of object-oriented wrapper for the Crystal Space event mechanism; providing methods such as OnMouseClick(), OnKeyboard(), OnBroadcast(), etc.
In order to properly use this class, you must derive your own class from it, providing a constructor and implementation for the OnInitialize() and Application() methods. You may only have one csApplicationFramework derived object in existence at any time (and generally, you will only have one such object in your application). In your source code create a global instance of the overridden object, as follows:
//-------------------------- // Example.h class MyApp : public csApplicationFramework { public: MyApp(); virtual bool OnInitialize(int argc, char* argv[]); virtual bool Application(); }; //-------------------------- // Example.cpp // File scope MyApp::MyApp() : csApplicationFramework() { SetApplicationName ("my.example.app"); } bool MyApp::OnInitialize(int argc, char* argv[]) { // Request plugins, initialize any global non-CS data and structures return true; } bool MyApp::Application() { // Perform initialization of CS data and structures, set event handler, // load world, etc. if (!Open()) return false; Run(); return true; } //-------------------------- // main.cpp CS_IMPLEMENT_APPLICATION int main (int argc, char* argv[]) { return csApplicationRunner<MyApp>::Run (argc, argv); }
csApplicationFramework itself is derived from csInitializer for convenience, allowing overridden members to call csInitializer methods without qualifying them with csInitializer::
.
Definition at line 104 of file csapplicationframework.h.
csApplicationFramework::csApplicationFramework | ( | ) | [protected] |
Constructor.
virtual csApplicationFramework::~csApplicationFramework | ( | ) | [virtual] |
Destructor.
virtual bool csApplicationFramework::Application | ( | ) | [protected, pure virtual] |
Perform application logic.
Implemented in CS::Utility::DemoApplication.
bool csApplicationFramework::DoRestart | ( | ) |
Query whether the application is to be restarted instead of exited.
static const char* csApplicationFramework::GetApplicationName | ( | ) | [inline, static] |
Get the application name.
Definition at line 317 of file csapplicationframework.h.
static iObjectRegistry* csApplicationFramework::GetObjectRegistry | ( | ) | [inline, static] |
Returns a pointer to the object registry.
Definition at line 274 of file csapplicationframework.h.
int csApplicationFramework::Main | ( | int | argc, |
char * | argv[] | ||
) |
Starts up the application framework, to be called from main().
virtual void csApplicationFramework::OnCommandLineHelp | ( | ) | [protected, virtual] |
Print out command line help.
This method is called in the event of the user requesting command line help via the '-help' argument. If the application supports command line options, it should override this method to print out a list of the supported options.
virtual void csApplicationFramework::OnExit | ( | ) | [protected, virtual] |
Perform any end of program processing.
Reimplemented in CS::Utility::DemoApplication.
virtual bool csApplicationFramework::OnInitialize | ( | int | argc, |
char * | argv[] | ||
) | [protected, pure virtual] |
Initialize the subclassed csApplicationFramework object.
argc | number of arguments passed on the command line. |
argv[] | list of arguments passed on the command line. |
Implemented in CS::Utility::DemoApplication.
bool csApplicationFramework::Open | ( | ) | [inline] |
Open plugins and open application window.
Definition at line 289 of file csapplicationframework.h.
csApplicationFramework::operator iObjectRegistry * | ( | ) | [inline] |
Allow a csApplicationFramework object to be used as an iObjectRegistry*.
Definition at line 284 of file csapplicationframework.h.
static void csApplicationFramework::Quit | ( | ) | [static] |
Quit running the application.
static bool csApplicationFramework::ReportError | ( | const char * | description, |
... | |||
) | [inline, static] |
Display an error notification.
Definition at line 366 of file csapplicationframework.h.
static void csApplicationFramework::ReportInfo | ( | const char * | description, |
... | |||
) | [inline, static] |
Display an information notification.
Definition at line 401 of file csapplicationframework.h.
static void csApplicationFramework::ReportWarning | ( | const char * | description, |
... | |||
) | [inline, static] |
Display a warning notification.
Definition at line 384 of file csapplicationframework.h.
void csApplicationFramework::Restart | ( | ) |
Restart application.
static void csApplicationFramework::Run | ( | ) | [inline, static] |
Start event queue.
Definition at line 328 of file csapplicationframework.h.
static void csApplicationFramework::SetApplicationName | ( | const char * | name | ) | [inline, static] |
Set the application's string name identifier.
Definition at line 306 of file csapplicationframework.h.
static bool csApplicationFramework::SetupConfigManager | ( | iObjectRegistry * | object_reg, |
const char * | configName | ||
) | [inline, static, protected] |
Setup the config manager.
This does exactly the same as csInitializer::SetupConfigManager(), with the difference that the ApplicationID parameter defaults to the value returned by GetApplicationName().
Definition at line 263 of file csapplicationframework.h.
iObjectRegistry* csApplicationFramework::object_reg [static, protected] |
Pointer to the application's object registry.
Definition at line 207 of file csapplicationframework.h.