Documentation is available at docsis_common.php
- <?php
- /**
- * DOCSIS Common Encoders
- *
- * @author David Eder <david@eder.us>
- * @copyright 2004 David Eder
- * @package docsis_config
- * @version .3
- */
- /**
- */
- require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . '../phpsnmp/snmp.php');
- /**
- * DOCSIS Base Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder
- {
- var $code = NULL;
- var $value = NULL;
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param mixed $value
- */
- function docsis_encoder($code, $value)
- {
- $this->code = $code;
- $this->value = $value;
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- return chr($this->code) . chr(strlen($this->value)) . $this->value;
- }
- }
- /**
- * DOCSIS Unsigned Integer Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_uint extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param int $value
- */
- function docsis_encoder_uint($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- return chr($this->code) . chr(4) . pack('N', $this->value);
- }
- }
- /**
- * DOCSIS Signed Integer Encoder
- *
- * HUGE ENDIAN BUG HERE, SO WATCH OUT!!!!!
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_int extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param int $value
- */
- function docsis_encoder_int($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- $z = pack('l', $this->value);
- return chr($this->code) . chr(4) . $z{3} . $z{2} . $z{1} . $z{0};
- }
- }
- /**
- * DOCSIS Unsigned Short Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_ushort extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param int $value
- */
- function docsis_encoder_ushort($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- return chr($this->code) . chr(2) . pack('n', $this->value);
- }
- }
- /**
- * DOCSIS Unsigned Char Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_uchar extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param int $value
- */
- function docsis_encoder_uchar($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- return chr($this->code) . chr(1) . chr($this->value);
- }
- }
- /**
- * DOCSIS IP Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_ip extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param string $value ip address
- */
- function docsis_encoder_ip($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- $ip = explode('.', $this->value);
- return chr($this->code) . chr(4) . chr($ip[0]) . chr($ip[1]) . chr($ip[2]) . chr($ip[3]);
- }
- }
- /**
- * DOCSIS OID Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_oid extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param string $value OID
- */
- function docsis_encoder_oid($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- $oid = new rfc1155_ObjectID($this->value);
- $encoded = $oid->encodeContents();
- return chr($this->code) . chr(strlen($encoded)) . $encoded;
- }
- }
- /**
- * DOCSIS MAC Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_mac extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param string $value mac address
- */
- function docsis_encoder_mac($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- $value = '';
- foreach(explode(':', $this->value) as $hex)
- $value .= chr(hexdec($hex));
- return chr($this->code) . chr(6) . $value;
- }
- }
- /**
- * DOCSIS String Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_string extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param string $value
- */
- function docsis_encoder_string($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- }
- /**
- * DOCSIS Hex String Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_hex_string extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param string $value
- */
- function docsis_encoder_hex_string($code, $value)
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- $string = pack('H*', $this->value);
- return chr($this->code) . chr(strlen($string)) . $string;
- }
- }
- /**
- * DOCSIS Complex (multipart) Encoder
- *
- * @package docsis_config
- * @subpackage docsis_encoder
- */
- class docsis_encoder_complex extends docsis_encoder
- {
- /**
- * Constructor
- *
- * @param int $code docsis code
- * @param array $value
- */
- function docis_encoder_complex($code, $value=array())
- {
- parent::docsis_encoder($code, $value);
- }
- /**
- * Encode value
- *
- * @return string encoded value
- */
- function encode()
- {
- $content = '';
- foreach($this->value as $tlv)
- {
- if(is_array($tlv))
- {
- foreach($tlv as $t)
- $content .= $t->encode();
- }
- else
- $content .= $tlv->encode();
- }
- return chr($this->code) . chr(strlen($content)) . $content;
- }
- }
- ?>
Documentation generated on Mon, 14 Nov 2005 17:59:53 -0700 by phpDocumentor 1.3.0RC3