X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdiameter%2Fcodec%2Ftme%2FAvp.hpp;h=971e76c01e372114d26c867a8e925a68bc37a185;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=e6d560403e5651032d1cc3e5ed3bd6594cb107a0;hpb=884501d2411bc4fdfafae65948262c959e068d7d;p=anna.git diff --git a/include/anna/diameter/codec/tme/Avp.hpp b/include/anna/diameter/codec/tme/Avp.hpp index e6d5604..971e76c 100644 --- a/include/anna/diameter/codec/tme/Avp.hpp +++ b/include/anna/diameter/codec/tme/Avp.hpp @@ -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_tme_Avp_hpp @@ -69,11 +41,13 @@ class ISDNAddress; namespace codec { +class Engine; + namespace tme { class Avp; class Message; -class Engine; +//class Engine; using namespace helpers::tme::codectypes; @@ -89,33 +63,36 @@ class Avp : public anna::diameter::codec::Avp { ISDNAddress *a_ISDNAddress; Unsigned16 *a_Unsigned16; - virtual void initializeByFormat() throw(); - virtual U24 getLengthByFormat(const anna::diameter::stack::Format *stackFormat) const throw(); - virtual std::string getXMLdataByFormat(bool & isHex, const anna::diameter::stack::Format *stackFormat) const throw(); - virtual void fromXMLByFormat(const anna::xml::Attribute* data, const anna::xml::Attribute* hexData, const anna::diameter::stack::Format *stackFormat) throw(anna::RuntimeException); - virtual void codeByFormat(char* dataPart, const anna::diameter::stack::Format *stackFormat) const throw(anna::RuntimeException); - virtual void decodeDataPartByFormat(const char * buffer, int size, const anna::diameter::stack::Format *stackFormat) throw(anna::RuntimeException); - virtual void allocationByFormat(const anna::diameter::stack::Format *stackFormat) throw(); - virtual void clearByFormat() throw(); + virtual void initializeByFormat() ; + virtual U24 getLengthByFormat(const anna::diameter::stack::Format *stackFormat) const ; + virtual std::string getXMLdataByFormat(bool & isHex, const anna::diameter::stack::Format *stackFormat) const ; + virtual void fromXMLByFormat(const anna::xml::Attribute* data, const anna::xml::Attribute* hexData, const anna::diameter::stack::Format *stackFormat) noexcept(false); + virtual void codeByFormat(char* dataPart, const anna::diameter::stack::Format *stackFormat) const noexcept(false); + virtual void decodeDataPartByFormat(const char * buffer, int size, const anna::diameter::stack::Format *stackFormat) noexcept(false); + virtual void allocationByFormat(const anna::diameter::stack::Format *stackFormat) ; + virtual void clearByFormat() ; -protected: +//protected: - /** Codec Engine getter: avoids have to create base engine when using its child */ - virtual anna::diameter::codec::Engine * getEngine() const throw(anna::RuntimeException); +// /** Codec Engine getter: avoids have to create base engine when using its child */ +// virtual anna::diameter::codec::Engine * getEngine() const noexcept(false); public: /** * Default constructor + * @param engine Codec engine used */ - Avp(); + Avp(Engine *engine = NULL) : anna::diameter::codec::Avp(engine) {;} /** * Identified constructor - * @param id Avp identifier as pair (code,vendorID). + * @param id Avp identifier as pair (code,vendor-id). + * @param engine Codec engine used */ - Avp(AvpId id); + Avp(AvpId id, Engine *engine = NULL) : anna::diameter::codec::Avp(id, engine) {;} + /** * Destructor @@ -124,25 +101,25 @@ public: /** Access content for ISDNNumber Avp in order to set data part */ - ISDNNumber * getISDNNumber() throw(anna::RuntimeException) { assertFormat("ISDNNumber"); return a_ISDNNumber; } + ISDNNumber * getISDNNumber() noexcept(false) { assertFormat("ISDNNumber"); return a_ISDNNumber; } /** Access content for ISDNAddress Avp in order to set data part */ - ISDNAddress * getISDNAddress() throw(anna::RuntimeException) { assertFormat("ISDNAddress"); return a_ISDNAddress; } + ISDNAddress * getISDNAddress() noexcept(false) { assertFormat("ISDNAddress"); return a_ISDNAddress; } /** Access content for Unsigned16 Avp in order to set data part */ - Unsigned16 * getUnsigned16() throw(anna::RuntimeException) { assertFormat("Unsigned16"); return a_Unsigned16; } + Unsigned16 * getUnsigned16() noexcept(false) { assertFormat("Unsigned16"); return a_Unsigned16; } /** Access content for ISDNNumber Avp */ - const ISDNNumber * getISDNNumber() const throw(anna::RuntimeException) { assertFormat("ISDNNumber"); return a_ISDNNumber; } + const ISDNNumber * getISDNNumber() const noexcept(false) { assertFormat("ISDNNumber"); return a_ISDNNumber; } /** Access content for ISDNAddress Avp */ - const ISDNAddress * getISDNAddress() const throw(anna::RuntimeException) { assertFormat("ISDNAddress"); return a_ISDNAddress; } + const ISDNAddress * getISDNAddress() const noexcept(false) { assertFormat("ISDNAddress"); return a_ISDNAddress; } /** Access content for Unsigned16 Avp */ - const Unsigned16 * getUnsigned16() const throw(anna::RuntimeException) { assertFormat("Unsigned16"); return a_Unsigned16; } + const Unsigned16 * getUnsigned16() const noexcept(false) { assertFormat("Unsigned16"); return a_Unsigned16; } friend class Message; - friend class Engine; + friend class anna::diameter::codec::Engine; }; }