<?php
namespace Claromentis\Search;

$GLOBALS["__65da1b1ec2d6653e8a0ab7848e53" . "6215"] = (@$GLOBALS["__65da1b1ec2d6653e8a0ab7848e53621" . "5"] ?: array()) + array("_8b00b2ed1fe72da2de8" . "37c9da056e302" => base64_decode("c2VhcmNoLmFkb" . "WluLmNoZWNrX3" . "N0YXR1cy5lcnJ" . "vcg=="), "_635421990402eb6498" . "db6391d31938dd" => base64_decode("U2VhcmNoIFNlcnZpY2UgcGlu" . "ZyBmYWlsZWQ6IHJlY2VpdmVk" . "IGFuIHVuZXhwZWN0ZWQgcmVz" . "cG9uc2Uu"), "exce" . "ptio" . "n" => base64_decode("ZXh" . "jZX" . "B0a" . "W9u"));
use Claromentis\Core\Localization\Lmsg;
use Claromentis\Core\Services;
use Claromentis\Search\Client\ClientInterface;
use Claromentis\Search\Exception\SearchConfigException;
use Exception;
use Psr\Log\LoggerAwareTrait;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;








class DaemonControl
{
    use LoggerAwareTrait;
    protected ClientInterface $client;
    protected Lmsg $lmsg;
    
    
    
    
    public function __construct(ClientInterface $client, ?Lmsg $lmsg = null, ?LoggerInterface $logger = null)
    {
        $this->client = $client;
        $this->lmsg = $lmsg ?? Services::I()->{Lmsg::class};
        $this->setLogger($logger ?? new NullLogger());
    }
    
    
    
    
    
    
    public function GetStatus()
    {
        try {
            return $this->client->Ping();
        } catch (Exception $e) {
            $this->logger->error($GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"]["_6354219" . "90402eb6" . "498db639" . "1d31938d" . "d"], [$GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["exceptio" . "n"] => $e]);
            return new Exception(($this->lmsg)($GLOBALS["__65da1b1ec2d6653e8a0ab7" . "848e536215"]["_8b00b2ed1fe72d" . "a2de837c9da056e" . "302"]), $e->getCode(), $e);
        }
    }
    
    
    
    
    
    
    
    public function GetStats(array $_2e5fd271fda00a16d3201b16d65f393d = [])
    {
        try {
            return $this->client->GetStats($_2e5fd271fda00a16d3201b16d65f393d);
        } catch (Exception $e) {
            return $e;
        }
    }
    
    
    
    
    
    
    private function GetVersion()
    {
        try {
            return $this->client->GetVersion();
        } catch (Exception $e) {
            return $e;
        }
    }
}