.htaccess
1 year ago
Sparse.php
1 year ago
SparseRegion.php
1 year ago
index.html
1 year ago
web.config
1 year ago
SparseRegion.php
42 lines
| 1 | <?php |
| 2 | /* |
| 3 | * |
| 4 | * JetBackup @ package |
| 5 | * Created By Idan Ben-Ezra |
| 6 | * |
| 7 | * Copyrights @ JetApps |
| 8 | * https://www.jetapps.com |
| 9 | * |
| 10 | **/ |
| 11 | namespace JetBackup\Archive\Header\Sparse; |
| 12 | |
| 13 | use JetBackup\Archive\Data\SetterGetter; |
| 14 | use JetBackup\Archive\Header\Header; |
| 15 | |
| 16 | class SparseRegion extends SetterGetter { |
| 17 | |
| 18 | const LENGTH_OFFSET = 12; |
| 19 | const LENGTH_NUMBYTES = 12; |
| 20 | const REGION_LENGTH = self::LENGTH_OFFSET + self::LENGTH_NUMBYTES; |
| 21 | |
| 22 | const OFFSET_OFFSET = 0; |
| 23 | const OFFSET_NUMBYTES = 12; |
| 24 | |
| 25 | const |
| 26 | OFFSET = 'offset', |
| 27 | NUMBYTES = 'numbytes'; |
| 28 | |
| 29 | public function setOffset($offset, $octal=true) { $this->set(self::OFFSET, $octal ? octdec(trim($offset)) : (int) $offset); } |
| 30 | public function getOffset($octal=true) { return Header::_getDecOct($this->get(self::OFFSET), $octal, self::LENGTH_OFFSET); } |
| 31 | |
| 32 | public function setNumbytes($bytes, $octal=true) { $this->set(self::NUMBYTES, $octal ? octdec(trim($bytes)) : (int) $bytes); } |
| 33 | public function getNumbytes($octal=true) { return Header::_getDecOct($this->get(self::NUMBYTES), $octal, self::LENGTH_NUMBYTES); } |
| 34 | |
| 35 | public static function fromData($data):?SparseRegion { |
| 36 | if(!trim($data) || strlen($data) != self::REGION_LENGTH) return null; |
| 37 | $part = new SparseRegion(); |
| 38 | $part->setOffset(substr($data, self::OFFSET_OFFSET, self::LENGTH_OFFSET)); |
| 39 | $part->setNumbytes(substr($data, self::OFFSET_NUMBYTES, self::LENGTH_NUMBYTES)); |
| 40 | return $part; |
| 41 | } |
| 42 | } |