always return array type (also if empty)

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1457 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 17 years ago
parent 8fc7d2baaa
commit c49259bb9c

@ -254,6 +254,7 @@ void Monitor::clearFinished() {
void Monitor::get(const AmArg& args, AmArg& ret) {
assertArgCStr(args[0]);
ret.assertArray();
LogBucket& bucket = getLogBucket(args[0].asCStr());
bucket.log_lock.lock();
std::map<string, LogInfo>::iterator it=bucket.log.find(args[0].asCStr());
@ -282,6 +283,7 @@ void Monitor::getAttribute(const AmArg& args, AmArg& ret) {
#define DEF_GET_ATTRIB_FUNC(func_name, cond) \
void Monitor::func_name(const AmArg& args, AmArg& ret) { \
assertArgCStr(args[0]); \
ret.assertArray(); \
string attr_name = args[0].asCStr(); \
time_t now = time(0); \
for (int i=0;i<NUM_LOG_BUCKETS;i++) { \
@ -306,7 +308,8 @@ DEF_GET_ATTRIB_FUNC(getAttributeFinished,(it->second.finished &&
#undef DEF_GET_ATTRIB_FUNC
void Monitor::listAll(const AmArg& args, AmArg& ret) {
for (int i=0;i<NUM_LOG_BUCKETS;i++) {
ret.assertArray();
for (int i=0;i<NUM_LOG_BUCKETS;i++) {
logs[i].log_lock.lock();
for (std::map<string, LogInfo>::iterator it=
logs[i].log.begin(); it != logs[i].log.end(); it++) {
@ -317,6 +320,7 @@ void Monitor::listAll(const AmArg& args, AmArg& ret) {
}
void Monitor::listByFilter(const AmArg& args, AmArg& ret) {
ret.assertArray();
for (int i=0;i<NUM_LOG_BUCKETS;i++) {
logs[i].log_lock.lock();
try {
@ -348,6 +352,7 @@ void Monitor::listByRegex(const AmArg& args, AmArg& ret) {
assertArgCStr(args[0]);
assertArgCStr(args[1]);
ret.assertArray();
regex_t attr_reg;
if(regcomp(&attr_reg,args[1].asCStr(),REG_NOSUB)){
ERROR("could not compile regex '%s'\n", args[1].asCStr());

Loading…
Cancel
Save