32 Foam::functionObjectList::remove(
const word& key, label& oldIndex)
34 functionObject* ptr = 0;
39 if (fnd != indices_.
end())
44 ptr = this->
set(oldIndex, 0).ptr();
58 Foam::functionObjectList::functionObjectList
69 execution_(execution),
74 Foam::functionObjectList::functionObjectList
85 parentDict_(parentDict),
86 execution_(execution),
117 updated_ = execution_ =
false;
151 ok = iter().execute() && ok;
177 ok = iter().end() && ok;
188 updated_ = execution_;
197 const entry* entryPtr = parentDict_.lookupEntryPtr(
"functions",
false,
false);
217 if (!iter().isDict())
221 const word& key = iter().keyword();
224 newDigs[nFunc] = dict.
digest();
231 if (newDigs[nFunc] != digests_[oldIndex])
233 ok = objPtr->
read(dict) && ok;
240 ok = objPtr->
start() && ok;
243 newPtrs.
set(nFunc, objPtr);
244 newIndices.
insert(key, nFunc);
253 newPtrs.
setSize(functionDicts.size());
254 newDigs.
setSize(functionDicts.size());
259 if (!iter().isDict())
263 const word& key = iter().keyword();
266 newDigs[nFunc] = dict.
digest();
273 if (newDigs[nFunc] != digests_[oldIndex])
275 ok = objPtr->
read(dict) && ok;
282 ok = objPtr->
start() && ok;
285 newPtrs.
set(nFunc, objPtr);
286 newIndices.
insert(key, nFunc);
298 digests_.transfer(newDigs);
299 indices_.transfer(newIndices);