pcapDecoder allows .hex files as input. Make public some Avp methods for serializatio...
[anna.git] / source / diameter / codec / Avp.cpp
index 1a4378d..97437c1 100644 (file)
@@ -50,6 +50,7 @@
 #include <anna/diameter/stack/Engine.hpp>
 #include <anna/diameter/codec/Engine.hpp>
 #include <anna/core/functions.hpp>
+#include <anna/core/util/RegularExpression.hpp>
 
 #include <anna/core/tracing/Logger.hpp>
 #include <anna/core/functions.hpp>
@@ -1313,6 +1314,17 @@ std::string Avp::getXMLdata(bool & isHex, const stack::Format *stackFormat) cons
 }
 
 
+//------------------------------------------------------------------------------
+//---------------------------------------------------------------- Avp::decode()
+//------------------------------------------------------------------------------
+void Avp::decode(const anna::DataBlock &db) throw(anna::RuntimeException) {
+
+  parent_t parent;
+  parent.setMessage(CommandId(0,false), "No-Parent");
+  decode(db, parent, NULL);
+}
+
+
 //------------------------------------------------------------------------------
 //--------------------------------------------------------------- Avp::fromXML()
 //------------------------------------------------------------------------------
@@ -1585,6 +1597,7 @@ anna::xml::Node* Avp::asXML(anna::xml::Node* parent) const throw() {
   return result;
 }
 
+
 //------------------------------------------------------------------------------
 //----------------------------------------------------------- Avp::asXMLString()
 //------------------------------------------------------------------------------
@@ -1593,3 +1606,11 @@ std::string Avp::asXMLString() const throw() {
   return anna::xml::Compiler().apply(asXML(&root));
 }
 
+
+//------------------------------------------------------------------------------
+//---------------------------------------------------------------- Avp::isLike()
+//------------------------------------------------------------------------------
+bool Avp::isLike(const std::string &pattern) const throw() {
+  anna::RegularExpression re(pattern);
+  return re.isLike(asXMLString());
+}