* @category Horde * @copyright 2013-2016 Horde LLC * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @package Pack * * @property-read integer $id The single-byte identifier for this driver * (also used as priority). * @property-read boolean $phpob Supports packing PHP objects? */ abstract class Horde_Pack_Driver { /** * Identifer for this driver. Each driver needs a unique priority. * * @var integer */ protected $_id = 0; /** * Does this driver support packing PHP objects? * * @var boolean */ protected $_phpob = false; /** * Is this driver supported on this system? * * @return boolean True if supported. */ public static function supported() { return true; } /** */ public function __get($name) { switch ($name) { case 'id': return $this->_id; case 'phpob': return $this->_phpob; } } /** * Pack a string. * * @param mixed $data The data to pack. * * @return string The packed string. * @throws Horde_Pack_Exception */ abstract public function pack($data); /** * Unpack a string. * * @param string $data The packed string. * * @return mixed The unpacked data. * @throws Horde_Pack_Exception */ abstract public function unpack($data); }