Initial commit based on common repo commit ffeb9c9b
This commit is contained in:
106
libs/gempa/caps/application.h
Normal file
106
libs/gempa/caps/application.h
Normal file
@@ -0,0 +1,106 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2015 by gempa GmbH *
|
||||
* *
|
||||
* All Rights Reserved. *
|
||||
* *
|
||||
* NOTICE: All information contained herein is, and remains *
|
||||
* the property of gempa GmbH and its suppliers, if any. The intellectual *
|
||||
* and technical concepts contained herein are proprietary to gempa GmbH *
|
||||
* and its suppliers. *
|
||||
* Dissemination of this information or reproduction of this material *
|
||||
* is strictly forbidden unless prior written permission is obtained *
|
||||
* from gempa GmbH. *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef GEMPA_CAPS_APPLICATION_H
|
||||
#define GEMPA_CAPS_APPLICATION_H
|
||||
|
||||
#include <gempa/caps/api.h>
|
||||
|
||||
namespace Gempa {
|
||||
namespace CAPS {
|
||||
|
||||
class SC_GEMPA_CAPS_API Application {
|
||||
public:
|
||||
Application(int argc, char **argv);
|
||||
virtual ~Application() {}
|
||||
|
||||
/**
|
||||
* Exit the application and set the returnCode.
|
||||
* @param returnCode The value returned from exec()
|
||||
*/
|
||||
virtual void exit(int returnCode);
|
||||
|
||||
/**
|
||||
* @brief Conventient function to simplify usage
|
||||
* @return The value returned from exec()
|
||||
*/
|
||||
int operator()() { return exec(); }
|
||||
|
||||
/**
|
||||
* @brief In case of an interrupt this method can be used to
|
||||
* forward the signal to the internal signal handling.
|
||||
* @param signal
|
||||
*/
|
||||
static void Interrupt(int signal);
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief Cleanup method called before exec() returns.
|
||||
*/
|
||||
virtual void done();
|
||||
|
||||
/**
|
||||
* Execs the mainloop and waits until exit() is called
|
||||
* or a appropriate signal has been fired (e.g. SIGTERM).
|
||||
* @return The value that was set with to exit()
|
||||
*/
|
||||
int exec();
|
||||
/**
|
||||
* @brief This method can be used to implement custom
|
||||
* signal handling.
|
||||
* @param signal The emitted signal
|
||||
*/
|
||||
virtual void handleInterrupt(int signal);
|
||||
|
||||
/**
|
||||
* @brief Initialization method. This method calls the initCommandLine
|
||||
* initConfiguration and validateParameters function
|
||||
*/
|
||||
virtual bool init();
|
||||
/**
|
||||
* @brief Handles commandline arguments
|
||||
*/
|
||||
virtual bool initCommandLine();
|
||||
/**
|
||||
* @brief Handles configuration files
|
||||
*/
|
||||
virtual bool initConfiguration();
|
||||
|
||||
/**
|
||||
* @brief This method must be implemented in the inherited class to
|
||||
* execute the plugin specific code.
|
||||
*/
|
||||
virtual bool run();
|
||||
/**
|
||||
* @brief This method can be used to verify custom configuration or
|
||||
commandline parameters
|
||||
*/
|
||||
virtual bool validateParameters();
|
||||
|
||||
protected:
|
||||
bool _exitRequested;
|
||||
int _argc;
|
||||
char **_argv;
|
||||
|
||||
private:
|
||||
int _returnCode;
|
||||
static Application *_app;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user