Padding Object is a dummy object that is used to pad the size of * the Header Object. This object enables the size of any object stored * in the Header Object to grow or shrink without having to rewrite the * entire Data Object and Index Object sections of the ASF file. * For instance, if entries in the Content Description Object or * Extended Content Description Object need to be removed or shortened, * the size of the Padding Object can be increased to compensate for the * reduction in size of the Content Description Object. The ASF file can * then be updated by overwriting the previous Header Object with the * edited Header Object of identical size, without having to move or * rewrite the data contained in the Data Object. * * @package php-reader * @subpackage ASF * @author Sven Vollbehr * @copyright Copyright (c) 2008-2009 The PHP Reader Project Workgroup * @license http://code.google.com/p/php-reader/wiki/License New BSD License * @version $Rev$ */ final class ASF_Object_Padding extends ASF_Object { /** * Constructs the class with given parameters and reads object related data * from the ASF file. * * @param Reader $reader The reader object. * @param Array $options The options array. */ public function __construct($reader = null, &$options = array()) { parent::__construct($reader, $options); } /** * Returns the whether the object is required to be present, or whether * minimum cardinality is 1. * * @return boolean */ public function isMandatory() { return false; } /** * Returns whether multiple instances of this object can be present, or * whether maximum cardinality is greater than 1. * * @return boolean */ public function isMultiple() { return true; } /** * Returns the object data with headers. * * @return string */ public function __toString() { if ($this->getSize() == 0) $this->setSize(24); return Transform::toGUID($this->getIdentifier()) . Transform::toInt64LE($this->getSize()) . str_pad("", $this->getSize() - 24 /* header */, "\0"); } }