Add method to clear parameter(s) to JS Message API.

git-svn-id: http://yate.null.ro/svn/yate/trunk@6298 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
oana 2018-02-12 14:42:45 +00:00
parent e6a765dc35
commit 65bc140298
1 changed files with 29 additions and 0 deletions

View File

@ -393,6 +393,7 @@ public:
params().addParam(new ExpFunction("getRow"));
params().addParam(new ExpFunction("getResult"));
params().addParam(new ExpFunction("copyParams"));
params().addParam(new ExpFunction("clearParam"));
}
inline JsMessage(Message* message, Mutex* mtx, bool disp, bool owned = false)
: JsObject(mtx,"[object Message]"),
@ -2239,6 +2240,34 @@ bool JsMessage::runNative(ObjList& stack, const ExpOperation& oper, GenObject* c
copyObjParams(*m_message,fromNative);
}
}
else if (oper.name() == YSTRING("clearParam")) {
if (!m_message)
return true;
ObjList args;
char sep = 0;
switch (extractArgs(stack,oper,context,args)) {
case 2:
{
ExpOperation* op = static_cast<ExpOperation*>(args[1]);
if (JsParser::isFilled(op)) {
if (op->length() > 1)
return false;
sep = (*op)[0];
}
// intentional
}
case 1:
{
String* name = static_cast<String*>(args[0]);
if (TelEngine::null(name))
return true;
m_message->clearParam(*name,sep);
break;
}
default:
return false;
}
}
else
return JsObject::runNative(stack,oper,context);
return true;