mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 17:59:48 +00:00
Absorb pocketmine/log-pthreads into PM core
this was previously part of the abandoned package pocketmine/spl. It had to be separated in the PM3 days, because RakLib depended on it. Since RakLib 0.13, RakLib stopped being dependent on or aware of pthreads, so it no longer depends on any thread-related packages. It's also possible to absorb pocketmine/snooze and pocketmine/classloader back into the core with this in mind.
This commit is contained in:
64
src/thread/log/AttachableThreadSafeLogger.php
Normal file
64
src/thread/log/AttachableThreadSafeLogger.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\thread\log;
|
||||
|
||||
use pmmp\thread\ThreadSafeArray;
|
||||
|
||||
abstract class AttachableThreadSafeLogger extends ThreadSafeLogger{
|
||||
|
||||
/**
|
||||
* @var ThreadSafeArray|ThreadSafeLoggerAttachment[]
|
||||
* @phpstan-var ThreadSafeArray<int, ThreadSafeLoggerAttachment>
|
||||
*/
|
||||
protected ThreadSafeArray $attachments;
|
||||
|
||||
public function __construct(){
|
||||
$this->attachments = new ThreadSafeArray();
|
||||
}
|
||||
|
||||
public function addAttachment(ThreadSafeLoggerAttachment $attachment) : void{
|
||||
$this->attachments[] = $attachment;
|
||||
}
|
||||
|
||||
public function removeAttachment(ThreadSafeLoggerAttachment $attachment) : void{
|
||||
foreach($this->attachments as $i => $a){
|
||||
if($attachment === $a){
|
||||
unset($this->attachments[$i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function removeAttachments() : void{
|
||||
foreach($this->attachments as $i => $a){
|
||||
unset($this->attachments[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ThreadSafeLoggerAttachment[]
|
||||
*/
|
||||
public function getAttachments() : array{
|
||||
return (array) $this->attachments;
|
||||
}
|
||||
}
|
30
src/thread/log/ThreadSafeLogger.php
Normal file
30
src/thread/log/ThreadSafeLogger.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\thread\log;
|
||||
|
||||
use pmmp\thread\ThreadSafe;
|
||||
|
||||
abstract class ThreadSafeLogger extends ThreadSafe implements \Logger{
|
||||
|
||||
}
|
30
src/thread/log/ThreadSafeLoggerAttachment.php
Normal file
30
src/thread/log/ThreadSafeLoggerAttachment.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\thread\log;
|
||||
|
||||
use pmmp\thread\ThreadSafe;
|
||||
|
||||
abstract class ThreadSafeLoggerAttachment extends ThreadSafe{
|
||||
abstract public function log(string $level, string $message) : void;
|
||||
}
|
Reference in New Issue
Block a user