Browse Source

Merge pull request #45375 from nextcloud/fix/move-eventsource-to-oc

Move EventSource to `OC` namespace
pull/45415/head
Côme Chilliet 3 weeks ago
parent
commit
9b0e4832bd
No account linked to committer's email address

+ 1
- 1
lib/composer/composer/autoload_classmap.php View File

@@ -1382,6 +1382,7 @@ return array(
'OC\\Encryption\\Util' => $baseDir . '/lib/private/Encryption/Util.php',
'OC\\EventDispatcher\\EventDispatcher' => $baseDir . '/lib/private/EventDispatcher/EventDispatcher.php',
'OC\\EventDispatcher\\ServiceEventListener' => $baseDir . '/lib/private/EventDispatcher/ServiceEventListener.php',
'OC\\EventSource' => $baseDir . '/lib/private/EventSource.php',
'OC\\EventSourceFactory' => $baseDir . '/lib/private/EventSourceFactory.php',
'OC\\Federation\\CloudFederationFactory' => $baseDir . '/lib/private/Federation/CloudFederationFactory.php',
'OC\\Federation\\CloudFederationNotification' => $baseDir . '/lib/private/Federation/CloudFederationNotification.php',
@@ -1905,7 +1906,6 @@ return array(
'OC_API' => $baseDir . '/lib/private/legacy/OC_API.php',
'OC_App' => $baseDir . '/lib/private/legacy/OC_App.php',
'OC_Defaults' => $baseDir . '/lib/private/legacy/OC_Defaults.php',
'OC_EventSource' => $baseDir . '/lib/private/legacy/OC_EventSource.php',
'OC_FileChunking' => $baseDir . '/lib/private/legacy/OC_FileChunking.php',
'OC_Files' => $baseDir . '/lib/private/legacy/OC_Files.php',
'OC_Helper' => $baseDir . '/lib/private/legacy/OC_Helper.php',

+ 1
- 1
lib/composer/composer/autoload_static.php View File

@@ -1423,6 +1423,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OC\\Encryption\\Util' => __DIR__ . '/../../..' . '/lib/private/Encryption/Util.php',
'OC\\EventDispatcher\\EventDispatcher' => __DIR__ . '/../../..' . '/lib/private/EventDispatcher/EventDispatcher.php',
'OC\\EventDispatcher\\ServiceEventListener' => __DIR__ . '/../../..' . '/lib/private/EventDispatcher/ServiceEventListener.php',
'OC\\EventSource' => __DIR__ . '/../../..' . '/lib/private/EventSource.php',
'OC\\EventSourceFactory' => __DIR__ . '/../../..' . '/lib/private/EventSourceFactory.php',
'OC\\Federation\\CloudFederationFactory' => __DIR__ . '/../../..' . '/lib/private/Federation/CloudFederationFactory.php',
'OC\\Federation\\CloudFederationNotification' => __DIR__ . '/../../..' . '/lib/private/Federation/CloudFederationNotification.php',
@@ -1946,7 +1947,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OC_API' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_API.php',
'OC_App' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_App.php',
'OC_Defaults' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Defaults.php',
'OC_EventSource' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_EventSource.php',
'OC_FileChunking' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_FileChunking.php',
'OC_Files' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Files.php',
'OC_Helper' => __DIR__ . '/../../..' . '/lib/private/legacy/OC_Helper.php',

lib/private/legacy/OC_EventSource.php → lib/private/EventSource.php View File

@@ -1,6 +1,6 @@
<?php

use OCP\IRequest;
declare(strict_types=1);

/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
@@ -29,36 +29,30 @@ use OCP\IRequest;
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
class OC_EventSource implements \OCP\IEventSource {
/**
* @var bool
*/
private $fallback;

/**
* @var int
*/
private $fallBackId = 0;
namespace OC;

/**
* @var bool
*/
private $started = false;
use OCP\IEventSource;
use OCP\IRequest;

private IRequest $request;
class EventSource implements IEventSource {
private bool $fallback = false;
private int $fallBackId = 0;
private bool $started = false;

public function __construct(IRequest $request) {
$this->request = $request;
public function __construct(
private IRequest $request,
) {
}

protected function init() {
protected function init(): void {
if ($this->started) {
return;
}
$this->started = true;

// prevent php output buffering, caching and nginx buffering
OC_Util::obEnd();
\OC_Util::obEnd();
header('Cache-Control: no-cache');
header('X-Accel-Buffering: no');
$this->fallback = isset($_GET['fallback']) and $_GET['fallback'] == 'true';
@@ -104,7 +98,7 @@ class OC_EventSource implements \OCP\IEventSource {
*/
public function send($type, $data = null) {
if ($data and !preg_match('/^[A-Za-z0-9_]+$/', $type)) {
throw new BadMethodCallException('Type needs to be alphanumeric ('. $type .')');
throw new \BadMethodCallException('Type needs to be alphanumeric ('. $type .')');
}
$this->init();
if (is_null($data)) {

+ 7
- 12
lib/private/EventSourceFactory.php View File

@@ -1,4 +1,7 @@
<?php

declare(strict_types=1);

/**
* @copyright Copyright (c) 2023 Daniel Kesselberg <mail@danielkesselberg.de>
*
@@ -27,20 +30,12 @@ use OCP\IEventSourceFactory;
use OCP\IRequest;

class EventSourceFactory implements IEventSourceFactory {
private IRequest $request;


public function __construct(IRequest $request) {
$this->request = $request;
public function __construct(
private IRequest $request,
) {
}

/**
* Create a new event source
*
* @return IEventSource
* @since 28.0.0
*/
public function create(): IEventSource {
return new \OC_EventSource($this->request);
return new EventSource($this->request);
}
}

+ 2
- 0
lib/public/IEventSource.php View File

@@ -37,6 +37,7 @@ interface IEventSource {
*
* @param string $type One of success, notice, error, failure and done. Used in core/js/update.js
* @param mixed $data
* @return void
*
* if only one parameter is given, a typeless message will be send with that parameter as data
* @since 8.0.0
@@ -45,6 +46,7 @@ interface IEventSource {

/**
* close the connection of the event source
* @return void
* @since 8.0.0
*/
public function close();

Loading…
Cancel
Save