1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
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 //
9 #ifndef anna_diameter_helpers_tme_codectypes_ISDNNumber_hpp
10 #define anna_diameter_helpers_tme_codectypes_ISDNNumber_hpp
14 #include <anna/diameter/codec/basetypes/OctetString.hpp>
16 #include <anna/config/defines.hpp> // isup_number_t
31 namespace codectypes {
34 * Diameter ISDNNumber container
35 Internal format is based in Calling Party Number (Q763)
37 class ISDNNumber : public codec::basetypes::OctetString {
39 isup_number_t a_isupNumber;
41 // Only for derived diameter type:
42 void updateBasic() throw(anna::RuntimeException);
46 // Class-specific ////////////////////////////////////////////////////////////////////////////////////
49 * Gets the Q763 ISUP Number
51 * @return Q763 ISUP Number
53 const isup_number_t& getIsupNumber() const throw() { return a_isupNumber; }
56 * Sets the Q763 ISUP Number
58 * @param isupNumber Q763 ISUP Number
60 void setIsupNumber(const isup_number_t& isupNumber) throw() { a_isupNumber = isupNumber; updateBasic(); }
62 //////////////////////////////////////////////////////////////////////////////////////////////////////
66 std::string getFormatName() const throw() { return "ISDNNumber"; }
70 std::string asString() throw(anna::RuntimeException) {
71 return a_isupNumber.asString(false /* calling party number */);
77 void decode(const char* buffer, const int size) throw(anna::RuntimeException);
80 // exports /////////////////////////////
81 using AvpData::getSize;
83 //using OctetString::asPrintableString;
84 using AvpData::asDataBlockString;
85 //using OctetString::asString;
86 using AvpData::asHexString;
87 //using OctetString::decode;
88 using AvpData::fromPrintableString;
89 using AvpData::fromHexString;