diff --git a/apps/dsm/DSMCall.cpp b/apps/dsm/DSMCall.cpp index a58f78e4..2ad8ebc8 100644 --- a/apps/dsm/DSMCall.cpp +++ b/apps/dsm/DSMCall.cpp @@ -332,31 +332,6 @@ void DSMCall::onSipReply(const AmSipReply& reply, int old_dlg_status) { } } -static void varPrintArg(const AmArg& a, map& dst, const string& name) { - switch (a.getType()) { - case AmArg::Undef: dst[name] = "null"; return; - case AmArg::Int: dst[name] = a.asInt()<0 ? - "-"+int2str(abs(a.asInt())):int2str(abs(a.asInt())); return; - case AmArg::Bool: - dst[name] = a.asBool()?"true":"false"; return; - case AmArg::Double: - dst[name] = double2str(a.asDouble()); return; - case AmArg::CStr: - dst[name] = a.asCStr(); return; - case AmArg::Array: - for (size_t i = 0; i < a.size(); i ++) - varPrintArg(a.get(i), dst, name+"["+int2str(i)+"]"); - return; - case AmArg::Struct: - for (AmArg::ValueStruct::const_iterator it = a.asStruct()->begin(); - it != a.asStruct()->end(); it ++) { - varPrintArg(it->second, dst, name+"."+it->first); - } - return; - default: dst[name] = ""; return; - } -} - void DSMCall::process(AmEvent* event) { diff --git a/apps/dsm/DSMStateEngine.cpp b/apps/dsm/DSMStateEngine.cpp index b88b53db..82b11f51 100644 --- a/apps/dsm/DSMStateEngine.cpp +++ b/apps/dsm/DSMStateEngine.cpp @@ -465,3 +465,30 @@ DSMTransition::DSMTransition() DSMTransition::~DSMTransition(){ } + + + +void varPrintArg(const AmArg& a, map& dst, const string& name) { + switch (a.getType()) { + case AmArg::Undef: dst[name] = "null"; return; + case AmArg::Int: dst[name] = a.asInt()<0 ? + "-"+int2str(abs(a.asInt())):int2str(abs(a.asInt())); return; + case AmArg::Bool: + dst[name] = a.asBool()?"true":"false"; return; + case AmArg::Double: + dst[name] = double2str(a.asDouble()); return; + case AmArg::CStr: + dst[name] = a.asCStr(); return; + case AmArg::Array: + for (size_t i = 0; i < a.size(); i ++) + varPrintArg(a.get(i), dst, name+"["+int2str(i)+"]"); + return; + case AmArg::Struct: + for (AmArg::ValueStruct::const_iterator it = a.asStruct()->begin(); + it != a.asStruct()->end(); it ++) { + varPrintArg(it->second, dst, name+"."+it->first); + } + return; + default: dst[name] = ""; return; + } +} diff --git a/apps/dsm/DSMStateEngine.h b/apps/dsm/DSMStateEngine.h index 636d6169..e0882c2b 100644 --- a/apps/dsm/DSMStateEngine.h +++ b/apps/dsm/DSMStateEngine.h @@ -29,6 +29,7 @@ #include "DSMElemContainer.h" #include "AmSipMsg.h" +#include "AmArg.h" class AmSession; class DSMSession; @@ -235,5 +236,6 @@ class DSMStateEngine { bool onInvite(const AmSipRequest& req, DSMSession* sess); }; +extern void varPrintArg(const AmArg& a, map& dst, const string& name); #endif