Remove dynamic exceptions
[anna.git] / include / anna / diameter / codec / basetypes / AvpData.hpp
index 9ce8f91..39171bc 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 //
 
 
 #ifndef anna_diameter_codec_basetypes_AvpData_hpp
@@ -90,7 +62,7 @@ class AvpData {
   * @param buffer Raw data to be encoded
   * @param size Size of raw data to be encoded
   */
-  virtual void codeBasic(char* buffer, int &size) throw(anna::RuntimeException) = 0;
+  virtual void codeBasic(char* buffer, int &size) noexcept(false) = 0;
 
   /**
   * Updates parent members from child ones to keep coherence between levels.
@@ -99,7 +71,7 @@ class AvpData {
   * and will be called after child members modification (setters).
   * Basic types implementation will be empty.
   */
-  virtual void updateBasic() throw(anna::RuntimeException) {;}
+  virtual void updateBasic() noexcept(false) {;}
 
   /**
   * Sets own members from natural/smart string representation
@@ -107,7 +79,7 @@ class AvpData {
   *
   * @param printableString avp data in natural/smart string representation (human-readable)
   */
-  virtual void setPrintableString(const char * printableString) throw(anna::RuntimeException) = 0;
+  virtual void setPrintableString(const char * printableString) noexcept(false) = 0;
 
 
 protected:
@@ -121,7 +93,7 @@ protected:
   *
   * @return Printable string or <null> if not printable
   */
-  std::string assertPrintable(const char* buffer, const int size) const throw(anna::RuntimeException) {
+  std::string assertPrintable(const char* buffer, const int size) const noexcept(false) {
     std::string result;
 
     if(size == 0) return result;
@@ -153,7 +125,7 @@ public:
   *
   * @return avp data format name
   */
-  virtual std::string getFormatName() const throw() = 0;
+  virtual std::string getFormatName() const  = 0;
 
   /**
   * Gets the avp data size based on basic container.
@@ -161,7 +133,7 @@ public:
   *
   * @return avp data size
   */
-  virtual int getSize() const throw() = 0;
+  virtual int getSize() const  = 0;
 
 
   // helpers
@@ -172,7 +144,7 @@ public:
   * @param buffer Raw data to be encoded
   * @param size Size of raw data to be encoded
   */
-  void code(char* buffer, int &size) throw(anna::RuntimeException) {
+  void code(char* buffer, int &size) noexcept(false) {
     codeBasic(buffer, size);
   }
 
@@ -184,7 +156,7 @@ public:
   *
   * @return Natural/smart string representation for avp data
   */
-  virtual std::string asPrintableString() throw(anna::RuntimeException) {
+  virtual std::string asPrintableString() noexcept(false) {
     int size = getSize();
     char buffer[size];
     code(buffer, size);
@@ -196,7 +168,7 @@ public:
   *
   * @return String with DataBlock representation
   */
-  std::string asDataBlockString() throw(anna::RuntimeException) {
+  std::string asDataBlockString() noexcept(false) {
     int size = getSize();
     char buffer[size];
     code(buffer, size);
@@ -211,7 +183,7 @@ public:
   *
   * @return String with class content
   */
-  virtual std::string asString() throw(anna::RuntimeException) {
+  virtual std::string asString() noexcept(false) {
     return(asDataBlockString());
   }
 
@@ -221,7 +193,7 @@ public:
   *
   * @return Hexadecimal string representation for avp data
   */
-  std::string asHexString() throw(anna::RuntimeException) {
+  std::string asHexString() noexcept(false) {
     int size = getSize();
     char buffer[size];
     code(buffer, size);
@@ -242,14 +214,14 @@ public:
   * @param buffer Raw avp data
   * @param size Raw avp data length
   */
-  virtual void decode(const char* buffer, const int size) throw(anna::RuntimeException) = 0;
+  virtual void decode(const char* buffer, const int size) noexcept(false) = 0;
 
   /**
   * Initializes members from natural/smart string representation
   *
   * @param printableString avp data in natural/smart string representation (human-readable)
   */
-  void fromPrintableString(const char * printableString) throw(anna::RuntimeException) {
+  void fromPrintableString(const char * printableString) noexcept(false) {
     if(!printableString) {
       std::string ex = getFormatName();
       ex += "::fromPrintableString | Null printableString provided";
@@ -265,7 +237,7 @@ public:
   *
   * @param hexString Raw avp data in hexadecimal string representation
   */
-  void fromHexString(const std::string& hexString) throw(anna::RuntimeException) {
+  void fromHexString(const std::string& hexString) noexcept(false) {
     anna::DataBlock db(true);
     anna::functions::fromHexString(hexString, db);
     decode(db.getData(), db.getSize());