X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fdiameter%2Fcodec%2Ffunctions.cpp;h=7c5516c3dab686b5954bd3bb574d4d9562ddbf6e;hb=42f606f1c76bfbef24e7e772b6939d69d5ea970e;hp=88749a07017e54cf282bdcb7aacceca923fe6e66;hpb=39033fd99e58e994a5e98c1060dcc79e0d81f9c9;p=anna.git diff --git a/source/diameter/codec/functions.cpp b/source/diameter/codec/functions.cpp index 88749a0..7c5516c 100644 --- a/source/diameter/codec/functions.cpp +++ b/source/diameter/codec/functions.cpp @@ -53,6 +53,47 @@ using namespace anna::diameter::codec; + + +// Parent struct helper ///////////////////////////////////////////////////////////////////////////// +void parent::setMessage(const anna::diameter::CommandId & mid, const char *mname) throw() { + MessageId = mid; + if (mname) { + MessageName = mname; + } + else { + MessageName = "Message"; + MessageName += anna::diameter::functions::commandIdAsPairString(mid); + } +} + +void parent::addAvp(const anna::diameter::AvpId & aid, const char *aname) throw() { + AvpsId.push_back(aid); + std::string name; + if (aname) { + name = aname; + } + else { + name = "Avp"; + name += anna::diameter::functions::avpIdAsPairString(aid); + } + AvpsName.push_back(name); +} + +std::string parent::asString() const throw() { // "->->...->" + std::string result = MessageName; + for (std::vector::const_iterator it = AvpsName.begin(); it != AvpsName.end(); it++) { + result += "->"; + result += (*it); + } + + return result; +} +///////////////////////////////////////////////////////////////////////////////////////////////////// + + + + // getters anna::diameter::CommandId functions::getCommandId(const anna::DataBlock & db) throw(anna::RuntimeException) { if(db.getSize() < Message::HeaderLength)