X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fapp%2FApplication.cpp;h=d4a9570626c78f7516006b6815f155dee83da8a9;hb=398d53cb90e9f25dc89a46396225eef981f0ab24;hp=acde252cb59a7871f3954a6f4db0cbcb50fc2eb8;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/source/app/Application.cpp b/source/app/Application.cpp index acde252..d4a9570 100644 --- a/source/app/Application.cpp +++ b/source/app/Application.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not 'N' Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// 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 -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // #include @@ -65,6 +37,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 +49,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,13 +73,15 @@ 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) throw() { Component* component; - for(iterator ii = begin(), maxii = end(); ii != maxii; ii ++) { component = Application::component(ii); @@ -294,8 +273,9 @@ throw(RuntimeException) { if(ii != end()) { LOGINFORMATION( - string msg((*ii)->asString()); - msg += " | Was previously attached"; + //string msg((*ii)->asString()); + string msg((*ii)->getClassName()); + msg += " | Was previously attached !"; Logger::write(Logger::Information, msg, ANNA_FILE_LOCATION); ) return; @@ -390,30 +370,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)