Remove dynamic exceptions
[anna.git] / source / comm / CongestionController.cpp
index 4bbcc7c..7fc6209 100644 (file)
@@ -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 <sys/ioctl.h>
@@ -81,7 +53,7 @@ comm::CongestionController::CongestionController() :
 }
 
 void comm::CongestionController::setLimit(const int limit)
-throw() {
+{
   Guard guard(a_mutex, "comm::CongestionController (setLimit)");
 
   if(limit < 0  || limit > 100) {
@@ -115,7 +87,7 @@ throw() {
 }
 
 void comm::CongestionController::setMaxPendingBytes(const int maxPendingBytes)
-throw(RuntimeException) {
+noexcept(false) {
   if(maxPendingBytes == UnusedPendingBytes) {
     a_maxPendingBytes = UnusedPendingBytes;
     return;
@@ -140,7 +112,7 @@ throw(RuntimeException) {
  * por su manejador asociado.
  */
 comm::CongestionController::Advice::_v comm::CongestionController::getAdvice(const ClientSocket& clientSocket)
-throw() {
+{
   Guard guard(a_mutex, "comm::CongestionController::getAdvice");
 
   if(a_limit == 0) {
@@ -233,13 +205,13 @@ throw() {
 }
 
 void comm::CongestionController::incrementIncomingSocket()
-throw(RuntimeException) {
+noexcept(false) {
   Guard guard(a_mutex, "comm::CongestionController::incrementIncomingSocket");
   a_incomingSocketCounter ++;
 }
 
 void comm::CongestionController::decrementIncomingSocket()
-throw(RuntimeException) {
+noexcept(false) {
   if(a_incomingSocketCounter ==  0)
     return;
 
@@ -265,7 +237,7 @@ throw(RuntimeException) {
 }
 
 int comm::CongestionController::calculeWorkload(const ClientSocket& clientSocket) const
-throw() {
+{
   int maxSize;
 
   if(a_maxPendingBytes == UnusedPendingBytes)
@@ -284,7 +256,7 @@ throw() {
 }
 
 xml::Node* comm::CongestionController::asXML(xml::Node* parent) const
-throw() {
+{
   static const char* modetxt [] = { "Auto", "Local", "Global" };
   xml::Node* result = parent->createChild("comm.CongestionController");
   result->createAttribute("Limit", a_limit);
@@ -323,7 +295,7 @@ throw() {
 }
 
 comm::CongestionController::Workload comm::CongestionController::getAccumulatedWorkload() const
-throw() {
+{
   Workload result;
   const Millisecond now = functions::millisecond();
 
@@ -354,7 +326,7 @@ throw() {
 
 
 comm::CongestionController::Workload comm::CongestionController::getCurrentWorkload(const comm::ClientSocket& clientSocket) const
-throw() {
+{
   Workload result;
   result.second = calculeWorkload(clientSocket);