NamedList& NamedList::setParam(NamedString* param) { XDebug(DebugInfo,"NamedList::setParam(%p) [\"%s\",\"%s\"]", param,(param ? param->name().c_str() : ""),TelEngine::c_safe(param)); if (!param) return *this; ObjList* p = m_params.find(param->name()); if (p) p->set(param); else m_params.append(param); return *this; }
ObjList* ObjList::append(const GenObject* obj, bool compact) { #ifdef XDEBUG Debugger debug("ObjList::append","(%p,%d) [%p]",obj,compact,this); #endif ObjList *n = last(); if (n->get() || !compact) { n->m_next = new ObjList(); n = n->m_next; } else n->m_delete = true; n->set(obj); return n; }
ObjList* ObjList::insert(const GenObject* obj, bool compact) { #ifdef XDEBUG Debugger debug("ObjList::insert","(%p,%d) [%p]",obj,compact,this); #endif if (m_obj || !compact) { ObjList *n = new ObjList(); n->set(m_obj); set(obj,false); n->m_delete = m_delete; n->m_next = m_next; m_delete = true; m_next = n; } else m_obj = const_cast<GenObject*>(obj); return this; }
bool ExpEvaluator::runAllFields(ObjList& stack, GenObject* context) const { DDebug(this,DebugAll,"runAllFields(%p,%p)",&stack,context); bool ok = true; for (ObjList* l = stack.skipNull(); l; l = l->skipNext()) { const ExpOperation* o = static_cast<const ExpOperation*>(l->get()); if (o->barrier()) break; if (o->opcode() != OpcField) continue; ObjList tmp; if (runField(tmp,*o,context)) { ExpOperation* val = popOne(tmp); if (val) l->set(val); else ok = false; } else ok = false; } return ok; }