X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fcomm%2FDelivery.cpp;h=51b005c7df1e117d6d4ec79c0dc77e58f7cfa405;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=d8d49405ae9e7e20049e53a6637018a19e0c708d;hpb=3e258840b15577cb8bda3cdedd0b9b88e16404b3;p=anna.git diff --git a/source/comm/Delivery.cpp b/source/comm/Delivery.cpp index d8d4940..51b005c 100644 --- a/source/comm/Delivery.cpp +++ b/source/comm/Delivery.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness 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 @@ -52,7 +24,7 @@ using namespace anna; const Millisecond comm::Delivery::DefaultRecoveryTime(60000); void comm::Delivery::initialize() -throw(RuntimeException) { +noexcept(false) { LOGMETHOD(TraceMethod tm("comm::Delivery", "initialize", ANNA_FILE_LOCATION)); // No es necesario protegerlo porque cuando se ejecuta todavía estarmos en la parte // en la que no se han lanzado los thread's @@ -86,7 +58,7 @@ throw(RuntimeException) { // los recursos con fallos internos. //--------------------------------------------------------------------------------------------- comm::Resource* comm::Delivery::apply() -throw(RuntimeException) { +noexcept(false) { LOGMETHOD(TraceMethod tm(Logger::Local7, "comm::Delivery", "apply", ANNA_FILE_LOCATION)); Guard guard(*this, "comm::Delivery::apply"); @@ -130,7 +102,7 @@ throw(RuntimeException) { } bool comm::Delivery::fault(const Resource* resource) -throw() { +{ LOGMETHOD(TraceMethod tm(Logger::Local7, "comm::Delivery", "fault", ANNA_FILE_LOCATION)); if(resource == NULL) @@ -166,7 +138,7 @@ throw() { } bool comm::Delivery::recover(const Resource* resource) -throw() { +{ if(resource == NULL) return a_isAvailable; @@ -176,7 +148,7 @@ throw() { } bool comm::Delivery::unsafe_recover(const Resource* resource) -throw() { +{ LOGMETHOD(TraceMethod tm(Logger::Local7, "comm::Delivery", "unsafe_recover", ANNA_FILE_LOCATION)); if(find(comm::Delivery::begin(), end(), resource) == end()) // (1) @@ -194,7 +166,7 @@ throw() { } bool comm::Delivery::contains(const Resource* resource) const -throw() { +{ if(resource == NULL) return false; @@ -204,13 +176,13 @@ throw() { // Devolverá true si no tiene disponible ninguno de los recursos asociados. bool comm::Delivery::do_fault(const Resource* resource) -throw() { +{ return (isAvailable() == true) ? false : true; } // Devolverá true si tiene disponible alguno de los recursos que tiene asociados. bool comm::Delivery::do_recover(const Resource* resource) -throw() { +{ return isAvailable(); } @@ -221,7 +193,7 @@ throw() { // //------------------------------------------------------------------------------------------- bool comm::Delivery::isAvailable() const -throw() { +{ bool result(false); for(const_iterator ii = begin(), maxii = end(); ii != maxii; ii ++) { @@ -237,7 +209,7 @@ throw() { } void comm::Delivery::add(Resource* resource) -throw(RuntimeException) { +noexcept(false) { if(resource == NULL) { string msg(asString()); msg += " | Cannot attach a NULL resource"; @@ -260,7 +232,7 @@ throw(RuntimeException) { } bool comm::Delivery::do_contains(const comm::Resource* resource) const -throw() { +{ for(const_iterator ii = begin(), maxii = end(); ii != maxii; ii ++) if(*Delivery::resource(ii) == *resource) return true; @@ -269,7 +241,7 @@ throw() { } string comm::Delivery::asString() const -throw() { +{ string result("comm::Delivery { Name: "); result += a_name; result += functions::asText(" | Available: ", a_isAvailable); @@ -283,7 +255,7 @@ throw() { } xml::Node* comm::Delivery::asXML(xml::Node* parent) const -throw() { +{ xml::Node* node = parent->createChild("comm.Delivery"); node->createAttribute("Name", a_name); node->createAttribute("Available", functions::asString(a_isAvailable)); @@ -312,7 +284,7 @@ throw() { */ /*static*/ bool comm::Delivery::internalErrorDetected(const Resource* resource) -throw() { +{ return resource->isEnabled() == false && resource->isAvailable() == true; }