* @revision 03 * @license http://creativecommons.org/licenses/by-sa/2.0/de/ Creative Commons Attribution-Share Alike 2.0 Germany * @homepage http://oss.tiggerswelt.net/oscar/ * @copyright Copyright © 2008 tiggersWelt.net */ require_once ("oscar/tlv/helper/tlv.php"); class Oscar_TLV_Rendezvous extends Oscar_TLV_Helper_TLV { /* Type of this TLV */ const TYPE = 0x0005; /* Types of this SNAC */ const STATE_PROPOSE = 0x0000; const STATE_CANCEL = 0x0001; const STATE_ACCEPT = 0x0002; public $State = Oscar_TLV_Rendezvous::STATE_PROPOSE; public $Cookie = ""; public $Service = ""; // {{{ getTLVClasses /** * Retrive a list of prefered TLV-Types for this TLV * * @access protected * @return array */ protected function getTLVClasses () { return array ( "Oscar_TLV_Rendezvous_Channel", "Oscar_TLV_Rendezvous_IP", "Oscar_TLV_Rendezvous_Proposed_IP", "Oscar_TLV_Rendezvous_Seen_IP", "Oscar_TLV_Rendezvous_Port", "Oscar_TLV_Rendezvous_URL", "Oscar_TLV_Rendezvous_Verfied_URL", "Oscar_TLV_Rendezvous_Sequence", "Oscar_TLV_Rendezvous_Cancel", "Oscar_TLV_Rendezvous_Request_Check", "Oscar_TLV_Rendezvous_IP_XOR", "Oscar_TLV_Rendezvous_Port_XOR", "Oscar_TLV_Rendezvous_MaxVersion", ); } // }}} // {{{ parse /** * Parse this TLV * * @access public * @return void */ public function parse () { $this->State = Oscar_Common::str2int16 ($this->Data, 0, true); $this->Cookie = substr ($this->Data, 0, 8); $this->Service = substr ($this->Data, 8, 16); $this->Data = substr ($this->Data, 24); parent::parse (); } // }}} // {{{ generate /** * Generate a binary string from this TLV * * @access public * @return string **/ public function generate () { $this->Prepend = Oscar_Common::int16toStr ($this->State) . substr ($this->Cookie, 0, 8) . substr ($this->Service, 0, 16); return parent::generate (); } // }}} } ?>