Improve xml parsing on diameter codec
[anna.git] / include / anna / diameter / codec / Message.hpp
index e7edc85..1cc8960 100644 (file)
@@ -223,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'
@@ -555,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
 
@@ -753,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:
-     <message version="1" name="Credit-Control-Request" application-id="16777236" hop-by-hop-id="0" end-by-end-id="0">
+     <message version="1" name="Credit-Control-Request" application-id="16777236" hop-by-hop-id="0" end-to-end-id="0">
         <avp name="Subscription-Id">
            <avp name="Subscription-Id-Type" data="0" alias="END_USER_E164"/>
            <avp name="Subscription-Id-Data" data="616[0-9]{6,6}"/>