public function delete(\XPSPL\Process $process)
{
if (XPSPL_DEBUG) {
logger(XPSPL_LOG)->debug(sprintf('%s process delete from db %s (%d)', $process, $this, $this->count()));
}
if ($this->count() === 0) {
return false;
}
// I dont like doing this in PHP ...
// array_search needs to implement a deep search
$this->reset();
foreach ($this as $_key => $_node) {
if ($_node instanceof Processes) {
if ($_node->delete($process)) {
return true;
}
} else {
if ($_node === $process) {
$this->offsetUnset($_key);
if (XPSPL_DEBUG) {
logger(XPSPL_LOG)->debug(sprintf('%s deleted from %s (%d)', $process, $this, $this->count()));
}
return true;
}
}
}
return false;
}