00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00016 final class FileRandomSource implements RandomSource
00017 {
00018 private $handle = null;
00019
00020 public function __construct($filename)
00021 {
00022 Assert::isTrue(file_exists($filename) && is_readable($filename));
00023
00024 $this->handle = fopen($filename, 'rb');
00025 }
00026
00027 public function __destruct()
00028 {
00029 fclose($this->handle);
00030 }
00031
00032 public function getBytes($numberOfBytes)
00033 {
00034 Assert::isPositiveInteger($numberOfBytes);
00035
00036 return fread($this->handle, $numberOfBytes);
00037 }
00038 }
00039 ?>