$sink) { $this->sinks[] = new Sink($index, $sink); } } public function createSink($name) { } public function createRecorder($name) { } public function destroySink($id) { } public function getIterator() { return new ArrayIterator($this->sinks); } public function offsetGet($key) { if (!array_key_exist($key, $this->sinks)) { throw new InvalidArgumentException("No such sink: {$key}"); } return $this->sinks[$key]; } public function offsetSet($key, $value) {} public function offsetUnset($key) {} public function offsetExists($key) { return array_key_exists($key, $this->sinks); } public function count() { return count($this->sinks); } }