DSM: clearArray action

sayer/1.4-spce2.6
Stefan Sayer 16 years ago
parent 45cb45ec0b
commit 4155f83bec

@ -84,6 +84,7 @@ DSMAction* DSMCoreModule::getAction(const string& from_str) {
DEF_CMD("inc", SCIncAction);
DEF_CMD("log", SCLogAction);
DEF_CMD("clear", SCClearAction);
DEF_CMD("clearArray", SCClearArrayAction);
DEF_CMD("logVars", SCLogVarsAction);
DEF_CMD("logParams", SCLogParamsAction);
DEF_CMD("logSelects", SCLogSelectsAction);
@ -634,6 +635,25 @@ EXEC_ACTION_START(SCClearAction) {
sc_sess->var.erase(var_name);
} EXEC_ACTION_END;
EXEC_ACTION_START(SCClearArrayAction) {
string varprefix = (arg.length() && arg[0] == '$')?
arg.substr(1) : arg;
DBG("clear variable array '%s.*'\n", varprefix.c_str());
varprefix+=".";
map<string, string>::iterator lb = sc_sess->var.lower_bound(varprefix);
while (lb != sc_sess->var.end()) {
if ((lb->first.length() < varprefix.length()) ||
strncmp(lb->first.c_str(), varprefix.c_str(),varprefix.length()))
break;
map<string, string>::iterator lb_d = lb;
lb++;
sc_sess->var.erase(lb_d);
}
} EXEC_ACTION_END;
CONST_ACTION_2P(SCAppendAction,',', false);
EXEC_ACTION_START(SCAppendAction) {

@ -83,6 +83,7 @@ DEF_ACTION_2P(SCAppendAction);
DEF_ACTION_2P(SCSubStrAction);
DEF_ACTION_1P(SCIncAction);
DEF_ACTION_1P(SCClearAction);
DEF_ACTION_1P(SCClearArrayAction);
DEF_ACTION_2P(SCSetTimerAction);
DEF_ACTION_1P(SCRemoveTimerAction);
DEF_ACTION_1P(SCRemoveTimersAction);

@ -144,6 +144,8 @@ sendDTMFSequence(sequence [, duration_ms])
inc($var)
clear($var)
clearArray($var)
clears all var.* variables
log(level, text)
e.g. log(1, $var1)

Loading…
Cancel
Save