Add event source to the public api

This commit is contained in:
Robin Appelman 2014-08-29 17:19:38 +02:00
parent 54c918fe48
commit dad53180bc
4 changed files with 49 additions and 1 deletions

View File

@ -12,7 +12,7 @@
* *
* use server side events with caution, to many open requests can hang the server * use server side events with caution, to many open requests can hang the server
*/ */
class OC_EventSource { class OC_EventSource implements \OCP\IEventSource {
/** /**
* @var bool * @var bool
*/ */

View File

@ -492,4 +492,13 @@ class Server extends SimpleContainer implements IServerContainer {
} }
return new CertificateManager($user); return new CertificateManager($user);
} }
/**
* Returns a search instance
*
* @return \OCP\IEventSource
*/
function getEventSource() {
return new \OC_EventSource();
}
} }

View File

@ -0,0 +1,32 @@
<?php
/**
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OCP;
/**
* wrapper for server side events (http://en.wikipedia.org/wiki/Server-sent_events)
* includes a fallback for older browsers and IE
*
* use server side events with caution, to many open requests can hang the server
*/
interface IEventSource {
/**
* send a message to the client
*
* @param string $type
* @param mixed $data
*
* if only one parameter is given, a typeless message will be send with that parameter as data
*/
public function send($type, $data = null);
/**
* close the connection of the event source
*/
public function close();
}

View File

@ -235,4 +235,11 @@ interface IServerContainer {
* @return \OCP\ICertificateManager * @return \OCP\ICertificateManager
*/ */
function getCertificateManager($user = null); function getCertificateManager($user = null);
/**
* Returns a search instance
*
* @return \OCP\IEventSource
*/
function getEventSource();
} }