9 #ifndef anna_app_Application_hpp 10 #define anna_app_Application_hpp 37 typedef std::vector <Component*>::iterator
iterator;
52 Application(
const char* shortName,
const char* title,
const char* version,
const char* date = NULL,
const char* time = NULL);
70 const std::string&
getVersion()
const {
return a_version; }
76 const std::string&
getTitle()
const {
return a_title; }
82 pid_t
getPid()
const {
return a_pid; }
115 void start() noexcept(
false);
121 const_iterator
begin()
const {
return a_components.begin(); }
127 iterator
begin() {
return a_components.begin(); }
133 const_iterator
end()
const {
return a_components.end(); }
139 iterator
end() {
return a_components.end(); }
145 void writeContext(
const std::string& file) noexcept(
false);
201 virtual void run() noexcept(false) = 0;
206 virtual
void signalUSR1() noexcept(false);
211 virtual
void signalUSR2() noexcept(false);
216 virtual
void signalTerminate() noexcept(false) {;}
242 pid_iterator
pid_end() {
return a_pids.end(); }
254 const_pid_iterator
pid_begin()
const {
return a_pids.begin(); }
260 const_pid_iterator
pid_end()
const {
return a_pids.end(); }
267 static pid_t
pid(pid_iterator& ii) {
return *ii; }
274 static pid_t
pid(const_pid_iterator& ii) {
return *ii; }
277 const std::string a_title;
278 std::vector <Component*> a_components;
280 const char* a_shortName;
282 std::string a_version;
284 pid_container a_pids;
289 void startComponents() noexcept(
false);
290 void stopComponents() noexcept(
false);
291 void sendSignalToChilds(
const int signal) ;
293 void signalUSR(
int) noexcept(
false);
294 static void handlerSignalUSR(
int) ;
295 static void handlerSignalTerminate(
int) ;
296 static void handlerChildTerminate(
int sig) ;
iterator end()
Definition: Application.hpp:139
Definition: Application.hpp:35
pid_container::iterator pid_iterator
Definition: Application.hpp:40
virtual ~Application()
Definition: Application.hpp:57
pid_container::const_iterator const_pid_iterator
Definition: Application.hpp:41
void activateGeneralPublicLicense()
Definition: Application.hpp:88
const std::string & getTitle() const
Definition: Application.hpp:76
iterator begin()
Definition: Application.hpp:127
static pid_t pid(pid_iterator &ii)
Definition: Application.hpp:267
Definition: functions.hpp:16
pid_iterator pid_end()
Definition: Application.hpp:242
int pid_size() const
Definition: Application.hpp:248
const_pid_iterator pid_begin() const
Definition: Application.hpp:254
virtual void do_cloneParent() noexcept(false)
Definition: Application.hpp:223
pid_t getPid() const
Definition: Application.hpp:82
static Component * component(iterator &ii)
Definition: Application.hpp:193
std::vector< pid_t > pid_container
Definition: Application.hpp:39
virtual void do_cloneChild() noexcept(false)
Definition: Application.hpp:230
Definition: Component.hpp:39
std::vector< Component * >::iterator iterator
Definition: Application.hpp:37
virtual void initialize() noexcept(false)
Definition: Application.hpp:154
virtual bool supportCommunication() const
Definition: Application.hpp:161
const std::string & getVersion() const
Definition: Application.hpp:70
static pid_t pid(const_pid_iterator &ii)
Definition: Application.hpp:274
pid_iterator pid_begin()
Definition: Application.hpp:236
static Application * st_application
Definition: Application.hpp:196
virtual void eventAbnormalTermination(const char *className)
Definition: Application.hpp:172
Definition: Component.hpp:44
Definition: functions.hpp:25
const_pid_iterator pid_end() const
Definition: Application.hpp:260
const_iterator begin() const
Definition: Application.hpp:121
std::vector< Component * >::const_iterator const_iterator
Definition: Application.hpp:38
const char * getShortName() const
Definition: Application.hpp:64
static const Component * component(const_iterator &ii)
Definition: Application.hpp:186
const_iterator end() const
Definition: Application.hpp:133