X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdiameter%2Fcodec%2FMessage.hpp;h=1cc89604278f7dfd07b2ce07255fd6bbe39b4bf9;hb=57040efdece4ea1f4487608de3d1afbb9d1378c8;hp=32aa932206ca29dcd84fc2a8667cb5fcafb14f2b;hpb=687b0fa0b7c8440f71837334b0b29c28dfae2dca;p=anna.git diff --git a/include/anna/diameter/codec/Message.hpp b/include/anna/diameter/codec/Message.hpp index 32aa932..1cc8960 100644 --- a/include/anna/diameter/codec/Message.hpp +++ b/include/anna/diameter/codec/Message.hpp @@ -189,12 +189,9 @@ public: * may occur. If you add elements (vendors, avps, messages) is not a problem. * * IMPORTANT NOTES: - * 1) if you want to reuse the message, as a recommendation, you should set engine to - * NULL or use #clear. In that way, next operation will adjust automatically the needed - * engine because it would not be configured in such stage. - * 2) if you want to pre-configure the engine you will need to set the engine to NULL - * previously and then you could change to the new one without warning/ignoring. - * 3) if you have dedicated message objects for each interface (application id), then + * 1) if you want to reuse the message, as a recommendation, you should #clear the + * message. In that way, next operation will adjust automatically the needed engine. + * 2) if you have dedicated message objects for each interface (application id), then * you could set the corresponding engine on constructor (or setEngine), and forget * about #clear. The needed cleanup will be done automatically from decoding and xml * loading procedures, and initialized engine will be kept along message operations. @@ -226,7 +223,8 @@ public: /** * Destructor */ - ~Message(); + virtual ~Message(); + // Virtual destructors are useful when you can delete an instance of a derived class through a pointer to base class: // This destructor is not virtual, then a pointer to base class (even pointing to a children one) will invoke this destructor, not the derived one. // My current solution: virtualizing method 'clear' @@ -558,6 +556,17 @@ public: */ void loadXML(const std::string &xmlPathFile) throw(anna::RuntimeException); + /** + * Interpret a xml string in order to create a diameter message + * You could apply this multiple times over the same object. A basic cleanup is done respecting the codec engine. + * + * @see functions::messageXmlDocumentFromXmlString + * @see fromXML + * + * @param xmlString xml representation of the diameter message + */ + void loadXMLString(const std::string &xmlString) throw(anna::RuntimeException); + // getters @@ -756,7 +765,7 @@ public: during hexadecimal read. Normally only printable 'data' fields are used for matching issues. For example, imagine a 'pattern.xml' file like: - + @@ -799,3 +808,4 @@ public: #endif +