Remove dynamic exceptions
[anna.git] / source / diameter / helpers / tme / codectypes / ISDNAddress.cpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 // Local
10 #include <anna/diameter/helpers/tme/codectypes/ISDNAddress.hpp>
11
12
13 //------------------------------------------------------------------------------
14 //---------------------------------------------------- ISDNAddress::updateBasic()
15 //------------------------------------------------------------------------------
16 void anna::diameter::helpers::tme::codectypes::ISDNAddress::updateBasic() noexcept(false) {
17   std::string result;
18   anna::functions::codeIsupNumber(a_isupNumber, true /* called party number */, result);
19   OctetString::setValue(result);
20 }
21
22
23 //------------------------------------------------------------------------------
24 //--------------------------------------------------------- ISDNAddress::decode()
25 //------------------------------------------------------------------------------
26 void anna::diameter::helpers::tme::codectypes::ISDNAddress::decode(const char* buffer, const int size) noexcept(false) {
27   if(!buffer)
28     throw anna::RuntimeException("ISDNAddress::decode | Null Buffer provided", ANNA_FILE_LOCATION);
29
30   if(size < 2)
31     throw anna::RuntimeException("ISDNAddress::decode | Buffer length must have at least 2 bytes", ANNA_FILE_LOCATION);
32
33   anna::functions::decodeIsupNumber(buffer, size, a_isupNumber, true /* called party number */);
34   // Base class decode()
35   OctetString::decode(buffer, size);
36 }