| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- <?php
- /**
- * AMFObject is a datatype representing the parsed representation of the binary AMF data.
- *
- * This object contains 2 major sections, headers and bodys. Headers contain all of the
- * header keys along with their associated data and body elements which include the target
- * URI, the response URI and the data to pass to the method.
- *
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @copyright (c) 2003 amfphp.org
- * @package flashservices
- * @subpackage util
- * @version $Id: AMFObject.php,v 1.14 2005/07/05 07:40:53 pmineault Exp $
- */
- class AMFObject {
- /**
- * The place to keep the headers data
- *
- * @access private
- * @var array
- */
- var $_incomingHeaders;
- /**
- * The variable to store outgoing headers
- *
- * @access private
- * @var array
- */
- var $_outgoingHeaders;
- /**
- * The header table is a quick lookup table for
- * a header by it's key
- */
- var $_headerTable;
- /**
- * The place to keep the body elements
- *
- * @access private
- * @var array
- */
- var $_bodys;
-
- var $outputStream;
- /**
- * The constructor function for a new amf object.
- *
- * All the constructor does is initialize the headers and bodys containers
- */
- function AMFObject($rawData = NULL) {
- $this->rawData = $rawData;
- $this->outputStream = "";
- $this->_incomingHeaders = array();
- $this->_outgoingHeaders = array();
- $this->_bodys = array();
- $this->_headerTable = array();
- }
- /**
- * addHeader places a new header into the pool of headers.
- *
- * Each header has 3 properties, they header key, the required flag
- * and the data associated with the header.
- *
- * @param object $header The AMFHeader object to add to the list
- */
- function addHeader(&$header) {
- //$len = array_push($this->_incomingHeaders, $header);
- $this->_incomingHeaders[] = $header;
- $name = $header->name;
- $this->_headerTable[$name] = $header;
- }
- /**
- * addOutgoingHeader places a new header into the pool of outbound headers.
- *
- * Each header has 3 properties, they header key, the required flag
- * and the data associated with the header.
- *
- * @param object $header The AMFHeader object to add to the list
- */
- function addOutgoingHeader(&$header) {
- //$len = array_push($this->_outgoingHeaders, $header);
- $this->_outgoingHeaders[] = $header;
- }
- /**
- * getHeader returns a header record for a given key
- *
- * @param string $key The header key
- * @return mixed The header record
- */
- function getHeader ($key) {
- if (isset($this->_headerTable[$key])) {
- return $this->_headerTable[$key];
- }
- return false;
- }
- /**
- * Gets the number of headers for this amf packet
- *
- * @return int The header count
- */
- function numHeader() {
- return count($this->_incomingHeaders);
- }
- /**
- * Gets the number of outgoing headers for this amf packet
- *
- * @return int The header count
- */
- function numOutgoingHeader() {
- return count($this->_outgoingHeaders);
- }
- /**
- * Get the header at the specified position.
- *
- * If you pass an id this method will return the header
- * located at that id, otherwise it will return the first header
- *
- * @param int $id Optional id field
- * @return array The header object
- */
- function &getHeaderAt($id = 0) {
- return $this->_incomingHeaders[$id];
- }
- /**
- * Get the header at the specified position from the outgoing header queue.
- *
- * If you pass an id this method will return the header
- * located at that id, otherwise it will return the first header
- *
- * @param int $id Optional id field
- * @return array The header object
- */
- function &getOutgoingHeaderAt($id = 0) {
- return $this->_outgoingHeaders[$id];
- }
- /**
- * addBody has the job of adding a new body element to the bodys array.
- *
- * @param string $t The target URI
- * @param string $r The response URI
- * @param mixed $v The value of the object
- * @param string $ty The type of the results
- * @param int $ps The pagesize of a recordset
- */
- function addBody($body) {
- $this->_bodys[] = $body;
- }
- /**
- * addBodyAt provides an interface to push a body element to a desired
- * position in the array.
- *
- * @param int $pos The position to add the body element
- * @param AMFBody $body The body element to add
- */
- function addBodyAt($pos, $body) {
- array_splice($this->_bodys, $pos, 0, array($body)); // splice the new body into the array
- }
-
- /**
- * removeBodyAt provides an interface to remove a body element to a desired
- * position in the array.
- *
- * @param int $pos The position to add the body element
- * @param AMFBody $body The body element to add
- */
- function removeBodyAt($pos) {
- array_splice($this->_bodys, $pos, 1); // splice the new body into the array
- }
- /**
- * numBody returns the total number of body elements. There is one body
- * element for each method call.
- *
- * @return int The number of body elements
- */
- function numBody() {
- return count($this->_bodys);
- }
- /**
- * getBodyAt returns the current body element the specified position.
- *
- * If a integer is passed this method will return the element at the given position.
- * Otherwise the first element will be returned.
- *
- * @param int $id The id of the body element desired
- * @return array The body element
- */
- function &getBodyAt($id = 0) {
- return $this->_bodys[$id];
- }
- }
- ?>
|