﻿???????????????????????????????   
>>>>>>>>>>>>>/>>>>>>>>>>>>>>>>><

?????????????????

>>>>>>>>>>>>>/>>>>>>>>>>>>>>>>><
.........................../...
>>>>>>>>>>>>>/>>>>>>>>>>>>>>>>><

???????????????????????????????!!!!!!
>>>>>>>>>>/>>>>>>>>>>>>>>>>><
//---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ 
1!%)+//
ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+
+//.383,7(-.+
                  Øÿà JFIF      ÿÛ                                                                                  

-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú383,7(-.+
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV  +//.383,7(-.+
?>
                                              
???????????????????????????????!!!!!!

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

>>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>>

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<br />
<b>Warning</b>:  Undefined variable $auth in <b>/home/pixetcsf/ghansu.org/a03a22/index.php</b> on line <b>588</b><br />
<br />
<b>Warning</b>:  Trying to access array offset on value of type null in <b>/home/pixetcsf/ghansu.org/a03a22/index.php</b> on line <b>588</b><br />
<?php

/** ******************************************
 * LiteSpeed Web Server Cache Manager
 *
 * @author    Michael Alegre
 * @copyright 2018-2025  LiteSpeed Technologies, Inc.
 * ******************************************* */

namespace Lsc\Wp\Context;

class ContextOption
{

    const FROM_CONTROL_PANEL = 'panel';
    const FROM_CLI           = 'cli';
    const LOG_FILE_NAME = 'webcachemgr.log';
    const IS_NOT_ROOT         = 0;

    /**
     * IS_ROOT_ESCALATABLE depends on panel implemented escalation.
     */
    const IS_ROOT_ESCALATABLE = 1;
    const IS_ROOT             = 2;

    /**
     * @var string
     */
    protected $invokerName;

    /**
     * @var string
     */
    protected $invokerType;

    /**
     * @var int
     */
    protected $isRoot;

    /**
     * @var int
     */
    protected $expectedPermissions;

    /**
     * @var string  Logger class name used during initialization. Child classes
     *              that need escalation should override this class name.
     */
    protected $loggerClass;

    /**
     * @var string  If set, must be writable.
     */
    protected $logFile;

    /**
     * @var int  Log to file level.
     */
    protected $logFileLvl;

    /**
     * @var int  Echo to user interface level.
     */
    protected $logEchoLvl;

    /**
     * @var bool
     */
    protected $bufferedWrite;

    /**
     * @var bool
     */
    protected $bufferedEcho;

    /**
     * @var string  PluginVersion class name used during initialization. Child
     *              classes that need escalation should override this class
     *              name.
     */
    protected $lscwpVerClass;

    /**
     * @var int
     */
    protected $scanDepth = 2;

    /**
     * @var int
     */
    protected $batchTimeout = 0;

    /**
     * @var int
     */
    protected $batchSize = 0;

    /**
     * @var string
     */
    protected $iconDir = '';

    /**
     * @var string
     */
    protected $sharedTplDir = '';

    /**
     *
     * @param string $invokerName
     * @param string $invokerType
     * @param int    $isRoot
     * @param int    $logFileLvl
     * @param int    $logEchoLvl
     * @param bool   $bufferedWrite
     * @param bool   $bufferedEcho
     */
    protected function __construct(
        $invokerName,
        $invokerType,
        $isRoot,
        $logFileLvl,
        $logEchoLvl,
        $bufferedWrite,
        $bufferedEcho
    )
    {
        $this->invokerName = $invokerName;
        $this->invokerType = $invokerType;
        $this->isRoot = $isRoot;
        $this->expectedPermissions = self::IS_ROOT;

        if ( $isRoot == self::IS_ROOT ) {
            $this->logFile = realpath(__DIR__ . '/../../../..') . '/logs/'
                    . self::LOG_FILE_NAME;
        }

        $this->loggerClass = '\Lsc\Wp\Logger';
        $this->lscwpVerClass ='\Lsc\Wp\PluginVersion';
        $this->logFileLvl = $logFileLvl;
        $this->logEchoLvl = $logEchoLvl;
        $this->bufferedWrite = $bufferedWrite;
        $this->bufferedEcho = $bufferedEcho;
    }

    /**
     *
     * @return int
     */
    public function isRoot()
    {
        return $this->isRoot;
    }

    /**
     *
     * @return int
     */
    public function getExpectedPermissions()
    {
        return $this->expectedPermissions;
    }

    /**
     *
     * @return string
     */
    public function getLoggerClass()
    {
        return $this->loggerClass;
    }

    /**
     * Returns the default log file path for this ContextOption. This can be
     * changed in the Logger class itself later on.
     *
     * @return string
     */
    public function getDefaultLogFile()
    {
        return $this->logFile;
    }

    /**
     *
     * @return int
     */
    public function getLogFileLvl()
    {
        return $this->logFileLvl;
    }

    /**
     *
     * @return int
     */
    public function getLogEchoLvl()
    {
        return $this->logEchoLvl;
    }

    /**
     *
     * @return bool
     */
    public function isBufferedWrite()
    {
        return $this->bufferedWrite;
    }

    /**
     *
     * @return bool
     */
    public function isBufferedEcho()
    {
        return $this->bufferedEcho;
    }

    /**
     *
     * @return string
     */
    public function getLscwpVerClass()
    {
        return $this->lscwpVerClass;
    }

    /**
     *
     * @return int
     */
    public function getScanDepth()
    {
        return $this->scanDepth;
    }

    /**
     *
     * @return string
     */
    public function getInvokerType()
    {
        return $this->invokerType;
    }

    /**
     *
     * @return string
     */
    public function getInvokerName()
    {
        return $this->invokerName;
    }

    /**
     *
     * @return int
     */
    public function getBatchSize()
    {
        return $this->batchSize;
    }

    /**
     *
     * @return int
     */
    public function getBatchTimeout()
    {
        return $this->batchTimeout;
    }

    /**
     *
     * @param int $timeout
     *
     * @return int
     */
    public function setBatchTimeout( $timeout )
    {
        if ( is_int($timeout) ) {
            $this->batchTimeout = $timeout;
        }

        return $this->batchTimeout;
    }

    /**
     *
     * @param string $iconDir
     */
    public function setIconDir( $iconDir )
    {
        $this->iconDir = $iconDir;
    }

    /**
     *
     * @return string
     */
    public function getIconDir()
    {
        return $this->iconDir;
    }

    /**
     *
     * @return string
     */
    public function getSharedTplDir()
    {
        return $this->sharedTplDir;
    }

}
