+
+ function onCheckSchema()
+ {
+ $schema = Schema::get();
+ $schema->ensureTable('realtime_channel', Realtime_channel::schemaDef());
+ return true;
+ }
+
+ function onAutoload($cls)
+ {
+ $dir = dirname(__FILE__);
+
+ switch ($cls)
+ {
+ case 'KeepalivechannelAction':
+ case 'ClosechannelAction':
+ include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
+ return false;
+ case 'Realtime_channel':
+ include_once $dir.'/'.$cls.'.php';
+ return false;
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * Hook for RouterInitialized event.
+ *
+ * @param Net_URL_Mapper $m path-to-action mapper
+ * @return boolean hook return
+ */
+ function onRouterInitialized($m)
+ {
+ $m->connect('main/channel/:channelkey/keepalive',
+ array('action' => 'keepalivechannel'),
+ array('channelkey' => '[a-z0-9]{32}'));
+ $m->connect('main/channel/:channelkey/close',
+ array('action' => 'closechannel'),
+ array('channelkey' => '[a-z0-9]{32}'));
+ return true;
+ }