コード例 #1
0
ファイル: Stream.php プロジェクト: rafsalvioni/zeus-stream
 /**
  *
  * @param resource $stream Stream
  * @throws \InvalidArgumentException
  */
 public function __construct($stream)
 {
     if (!\is_resource($stream)) {
         throw new \InvalidArgumentException('Argument should be a resource');
     }
     $resType = \get_resource_type($stream);
     if (\preg_match('/stream/i', $resType)) {
         $this->stream = $stream;
         $metadata = $this->getMetaData();
         \preg_match('/^([rwax])(\\+?)/', $metadata['mode'], $match);
         $this->flags = new BitMask();
         if ($match[2] == '+') {
             $this->flags->add(self::READABLE)->add(self::WRITABLE);
         } else {
             if ($match[1] == 'r') {
                 $this->flags->add(self::READABLE);
             } else {
                 $this->flags->add(self::WRITABLE);
             }
         }
         if (\preg_match('/persistent/i', $resType)) {
             $this->flags->add(self::PERSISTENT);
         }
         if ($this->getMetaData('seekable', false)) {
             $this->flags->add(self::SEEKABLE);
         }
     } else {
         throw new \InvalidArgumentException('Invalid stream resource');
     }
 }
コード例 #2
0
ファイル: BitMaskTest.php プロジェクト: rafsalvioni/zeus-core
 /**
  * @test
  */
 public function bindTest()
 {
     $binded = 128;
     $this->bitmask->bind($binded);
     $this->assertTrue($this->bitmask->add(64) === $this->bitmask && $binded === 192);
 }
コード例 #3
0
ファイル: Level.php プロジェクト: rafsalvioni/zeus-log
 /**
  * Returns a bitmask with all log levels registered.
  * 
  * @return BitMask
  */
 public static function maskAll()
 {
     static $mask = null;
     if (\is_null($mask)) {
         $mask = new BitMask();
         foreach (static::listLevels() as $level) {
             $mask->add($level);
         }
     }
     return clone $mask;
 }