X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fapp%2FApplication.cpp;h=799de955365152ecbd823e6a84e5ff4d303abd19;hb=42f606f1c76bfbef24e7e772b6939d69d5ea970e;hp=acde252cb59a7871f3954a6f4db0cbcb50fc2eb8;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/source/app/Application.cpp b/source/app/Application.cpp index acde252..799de95 100644 --- a/source/app/Application.cpp +++ b/source/app/Application.cpp @@ -1,8 +1,8 @@ -// ANNA - Anna is Not 'N' Anymore +// ANNA - Anna is Not Nothingness Anymore // // (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo // -// https://bitbucket.org/testillano/anna +// http://redmine.teslayout.com/projects/anna-suite // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions @@ -14,7 +14,7 @@ // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. -// * Neither the name of Google Inc. nor the names of its +// * Neither the name of the copyright holder nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // @@ -65,6 +65,10 @@ using namespace std; using namespace anna; +// Web sites: +#define WEBSITE_PROJECT "http://redmine.teslayout.com/projects/anna-suite" +#define WEBSITE_GENERAL "http://www.teslayout.com" + app::Application* app::Application::st_application = NULL; app::Application::Application(const char* shortName, const char* title, const char* version, const char* date, const char* time) : @@ -73,7 +77,8 @@ app::Application::Application(const char* shortName, const char* title, const ch a_version(version), a_title(title), a_enableGPL(false) { - sigset(SIGUSR1, handlerSignalUSR1); + sigset(SIGUSR1, handlerSignalUSR); + sigset(SIGUSR2, handlerSignalUSR); sigset(SIGTERM, handlerSignalTerminate); sigignore(SIGINT); app::sccs::activate(); @@ -96,7 +101,10 @@ app::Application::Application(const char* shortName, const char* title, const ch } cout << "(c) Copyright 2001-2006 Eduardo Ramos Testillano & Francisco Antonio Ruiz Rayo" << endl; - cout << " eduardo.ramos.testillano@gmail.com & cisco.tierra@gmail.com" << endl << endl; + cout << " eduardo.ramos.testillano@gmail.com & cisco.tierra@gmail.com" << endl; + cout << " (project site: " << WEBSITE_PROJECT << ")" << endl << endl; + //cout << " - Project site: " << WEBSITE_PROJECT << endl; + //cout << " - Main site: " << WEBSITE_GENERAL << endl << endl; } app::Component* app::Application::find(const char* className) @@ -390,30 +398,41 @@ throw() { return app; } +void app::Application::signalUSR(int signal) +throw(RuntimeException) { + if (signal == SIGUSR1) signalUSR1(); + else if (signal == SIGUSR2) signalUSR2(); +} + void app::Application::signalUSR1() throw(RuntimeException) { writeContext(anna::functions::asString("/var/tmp/anna.context.%05d", getPid())); } +void app::Application::signalUSR2() +throw(RuntimeException) { + Logger::notice("Captured signal SIGUSR2. Nothing implemented at the moment", ANNA_FILE_LOCATION); +} + void app::Application::sendSignalToChilds(const int signal) throw() { for(pid_iterator ii = pid_begin(), maxii = pid_end(); ii != maxii; ii ++) kill(pid(ii), signal); } -void app::Application::handlerSignalUSR1(int) +void app::Application::handlerSignalUSR(int signal) throw() { - sigignore(SIGUSR1); + sigignore(signal); try { Application& app = anna::app::functions::getApp(); - app.sendSignalToChilds(SIGUSR1); - app.signalUSR1(); + app.sendSignalToChilds(signal); + app.signalUSR(signal); } catch(Exception& ex) { ex.trace(); } - sigset(SIGUSR1, handlerSignalUSR1); + sigset(signal, handlerSignalUSR); } void app::Application::handlerSignalTerminate(int)