aboutsummaryrefslogtreecommitdiff
path: root/model/StreamList.php
diff options
context:
space:
mode:
Diffstat (limited to 'model/StreamList.php')
-rw-r--r--model/StreamList.php28
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);
}