Remove dynamic exceptions
[anna.git] / source / diameter / codec / tme / Avp.cpp
index 82a8d59..e5acc02 100644 (file)
@@ -1,42 +1,14 @@
-// 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 //
 
 
 // Local
 #include <anna/diameter/codec/tme/Avp.hpp>
-#include <anna/diameter/codec/tme/Engine.hpp>
+//#include <anna/diameter/codec/tme/Engine.hpp>
 
 #include <anna/diameter/helpers/defines.hpp>
 #include <anna/diameter/stack/Format.hpp>
@@ -48,24 +20,6 @@ using namespace anna;
 using namespace anna::diameter::codec::tme;
 
 
-
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------- Avp::Avp()
-//------------------------------------------------------------------------------
-Avp::Avp() {
-  initialize();
-}
-
-
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------- Avp::Avp()
-//------------------------------------------------------------------------------
-Avp::Avp(AvpId id) {
-  initialize();
-  setId(id);
-}
-
-
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------ Avp::~Avp()
 //------------------------------------------------------------------------------
@@ -74,18 +28,21 @@ Avp::~Avp() {
 }
 
 
-//------------------------------------------------------------------------------
-//------------------------------------------------------------- Avp::getEngine()
-//------------------------------------------------------------------------------
-anna::diameter::codec::Engine * Avp::getEngine() const throw(anna::RuntimeException) {
-  return a_engine ? a_engine : (a_engine = (anna::diameter::codec::Engine *)anna::functions::component <Engine> (ANNA_FILE_LOCATION));
-}
+////------------------------------------------------------------------------------
+////------------------------------------------------------------- Avp::getEngine()
+////------------------------------------------------------------------------------
+//anna::diameter::codec::Engine * Avp::getEngine() const noexcept(false) {
+//  if(!a_engine)
+//    throw anna::RuntimeException("Invalid codec engine reference (NULL)", ANNA_FILE_LOCATION);
+//
+//  return a_engine;
+//}
 
 
 //------------------------------------------------------------------------------
 //---------------------------------------------------- Avp::initializeByFormat()
 //------------------------------------------------------------------------------
-void Avp::initializeByFormat() throw() {
+void Avp::initializeByFormat() {
   a_ISDNNumber = NULL;
   a_ISDNAddress = NULL;
   a_Unsigned16 = NULL;
@@ -95,7 +52,7 @@ void Avp::initializeByFormat() throw() {
 //------------------------------------------------------------------------------
 //--------------------------------------------------------- Avp::clearByFormat()
 //------------------------------------------------------------------------------
-void Avp::clearByFormat() throw() {
+void Avp::clearByFormat() {
   delete a_ISDNNumber;
   delete a_ISDNAddress;
   delete a_Unsigned16;
@@ -105,7 +62,7 @@ void Avp::clearByFormat() throw() {
 //------------------------------------------------------------------------------
 //---------------------------------------------------- Avp::allocationByFormat()
 //------------------------------------------------------------------------------
-void Avp::allocationByFormat(const stack::Format *stackFormat) throw() {
+void Avp::allocationByFormat(const stack::Format *stackFormat) {
   if(stackFormat->getName() == "ISDNNumber") a_ISDNNumber = new ISDNNumber();
   else if(stackFormat->getName() == "ISDNAddress") a_ISDNAddress = new ISDNAddress();
   else if(stackFormat->getName() == "Unsigned16") a_Unsigned16 = new Unsigned16();
@@ -115,7 +72,7 @@ void Avp::allocationByFormat(const stack::Format *stackFormat) throw() {
 //------------------------------------------------------------------------------
 //----------------------------------------------------- Avp::getLengthByFormat()
 //------------------------------------------------------------------------------
-U24 Avp::getLengthByFormat(const stack::Format *stackFormat) const throw() {
+U24 Avp::getLengthByFormat(const stack::Format *stackFormat) const {
   U24 result = 0;
 
   if(stackFormat->getName() == "ISDNNumber") result += a_ISDNNumber->getSize();
@@ -129,7 +86,7 @@ U24 Avp::getLengthByFormat(const stack::Format *stackFormat) const throw() {
 //------------------------------------------------------------------------------
 //------------------------------------------------ Avp::decodeDataPartByFormat()
 //------------------------------------------------------------------------------
-void Avp::decodeDataPartByFormat(const char * buffer, int size, const stack::Format *stackFormat) throw(anna::RuntimeException) {
+void Avp::decodeDataPartByFormat(const char * buffer, int size, const stack::Format *stackFormat) noexcept(false) {
   if(stackFormat->getName() == "ISDNNumber") a_ISDNNumber->decode(buffer, size);
   else if(stackFormat->getName() == "ISDNAddress") a_ISDNAddress->decode(buffer, size);
   else if(stackFormat->getName() == "Unsigned16") a_Unsigned16->decode(buffer, size);
@@ -139,7 +96,7 @@ void Avp::decodeDataPartByFormat(const char * buffer, int size, const stack::For
 //------------------------------------------------------------------------------
 //---------------------------------------------------------- Avp::codeByFormat()
 //------------------------------------------------------------------------------
-void Avp::codeByFormat(char* dataPart, const stack::Format *stackFormat) const throw(anna::RuntimeException) {
+void Avp::codeByFormat(char* dataPart, const stack::Format *stackFormat) const noexcept(false) {
   int dataBytes;
 
   if(stackFormat->getName() == "ISDNNumber") a_ISDNNumber->code(dataPart, dataBytes);
@@ -151,7 +108,7 @@ void Avp::codeByFormat(char* dataPart, const stack::Format *stackFormat) const t
 //------------------------------------------------------------------------------
 //---------------------------------------------------- Avp::getXMLdataByFormat()
 //------------------------------------------------------------------------------
-std::string Avp::getXMLdataByFormat(bool & isHex, const stack::Format *stackFormat) const throw() {
+std::string Avp::getXMLdataByFormat(bool & isHex, const stack::Format *stackFormat) const {
   std::string result;
 
   if(stackFormat->getName() == "ISDNNumber") {
@@ -169,7 +126,7 @@ std::string Avp::getXMLdataByFormat(bool & isHex, const stack::Format *stackForm
 //------------------------------------------------------------------------------
 //------------------------------------------------------- Avp::fromXMLByFormat()
 //------------------------------------------------------------------------------
-void Avp::fromXMLByFormat(const anna::xml::Attribute* data, const anna::xml::Attribute* hexData, const stack::Format *stackFormat) throw(anna::RuntimeException) {
+void Avp::fromXMLByFormat(const anna::xml::Attribute* data, const anna::xml::Attribute* hexData, const stack::Format *stackFormat) noexcept(false) {
   if(stackFormat->getName() == "ISDNNumber") {
     if(data) a_ISDNNumber->fromPrintableString(data->getValue().c_str());
     else if(hexData) a_ISDNNumber->fromHexString(hexData->getValue());