You are here

Quota.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php

Namespace

org\bovigo\vfs

File

vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php
View source
<?php

/**
 * This file is part of vfsStream.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package  org\bovigo\vfs
 */
namespace org\bovigo\vfs;


/**
 * Represents a quota for disk space.
 *
 * @since     1.1.0
 * @internal
 */
class Quota {

  /**
   * unlimited quota
   */
  const UNLIMITED = -1;

  /**
   * quota in bytes
   *
   * A value of -1 is treated as unlimited.
   *
   * @type  int
   */
  private $amount;

  /**
   * constructor
   *
   * @param  int  $amount  quota in bytes
   */
  public function __construct($amount) {
    $this->amount = $amount;
  }

  /**
   * create with unlimited space
   *
   * @return  Quota
   */
  public static function unlimited() {
    return new self(self::UNLIMITED);
  }

  /**
   * checks if a quota is set
   *
   * @return  bool
   */
  public function isLimited() {
    return self::UNLIMITED < $this->amount;
  }

  /**
   * checks if given used space exceeda quota limit
   *
   *
   * @param     int   $usedSpace
   * @return    int
   */
  public function spaceLeft($usedSpace) {
    if (self::UNLIMITED === $this->amount) {
      return $usedSpace;
    }
    if ($usedSpace >= $this->amount) {
      return 0;
    }
    $spaceLeft = $this->amount - $usedSpace;
    if (0 >= $spaceLeft) {
      return 0;
    }
    return $spaceLeft;
  }

}

Classes

Namesort descending Description
Quota Represents a quota for disk space.