diff options
Diffstat (limited to 'model/StreamList.php')
-rw-r--r-- | model/StreamList.php | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/model/StreamList.php b/model/StreamList.php index 531a787..d203a52 100644 --- a/model/StreamList.php +++ b/model/StreamList.php @@ -1,9 +1,35 @@ <?php -class StreamList implements AggregateIterator +class StreamList extends ModelBase implements IteratorAggregate { private $streams = array(); + public function __construct($slug) + { + if(! $this->has('ROOMS.'.$slug)) + throw new NotFoundException('Room '.$slug); + + $this->slug = $slug; + $this->streams = array(); + + $streams = $this->get("ROOMS.$slug.STREAMS"); + foreach((array)$streams as $stream) { + $this->streams[$stream] = explode('-', $stream); + } + } + + public function getRoomSlug() { + return $this->slug; + } + + public function getRoom() { + return new Room($this->getRoomSlug()); + } + + public function getStreams() { + return array_keys($this->streams); + } + public function getIterator() { return new ArrayIterator($this->streams); } |