Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
// $Id: EbatNs_NotificationClient.php 4066 2011-11-03 08:13:59Z tiefland $
3
// $Log: EbatNs_NotificationClient.php,v $
4
// Revision 1.2  2008-05-02 15:04:05  carsten
5
// Initial, PHP5
6
//
7
//
8
require_once 'EbatNs_ResponseParser.php';
9
require_once 'EbatNs_DataConverter.php';
10
 
11
class EbatNs_NotificationClient
12
{
13
	protected $_parser = null;
14
	// callback-methods/functions for data-handling
15
	protected $_hasCallbacks = false;
16
	protected $_callbacks = null;
17
	// EbatNs_DataConverter object
18
	protected $_dataConverter = null;
19
 
20
	protected $_logger = null;
21
 
22
	function __construct($converter = 'EbatNs_DataConverterIso')
23
	{
24
		if ($converter)
25
			$this->_dataConverter = new $converter();
26
		$this->_parser = null;
27
	}
28
 
29
	// should return true if the data should NOT be included to the
30
	// response-object !
31
	function _handleDataType( $typeName, &$value )
32
	{
33
		if ( $this->_hasCallbacks )
34
		{
35
			$callback = $this->_callbacks[strtolower( $typeName )];
36
			if ( $callback )
37
			{
38
				if ( is_object( $callback['object'] ) )
39
				{
40
					return call_user_method( $callback['method'], $callback['object'], $typeName, $value );
41
				}
42
				else
43
				{
44
					return call_user_func( $callback['method'], $typeName, $value );
45
				}
46
			}
47
		}
48
		return false;
49
	}
50
 
51
	// $typeName as defined in Schema
52
	// $method (callback, either string or array with object/method)
53
	function setHandler( $typeName, $method )
54
	{
55
		$this->_hasCallbacks = true;
56
		if ( is_array( $method ) )
57
		{
58
			$callback['object'] = &$method[0];
59
			$callback['method'] = $method[1];
60
		}
61
		else
62
		{
63
			$callback['object'] = null;
64
			$callback['method'] = $method;
65
		}
66
 
67
		$this->_callbacks[strtolower( $typeName )] = $callback;
68
	}
69
 
70
	function getResponse($msg)
71
	{
72
		$this->_parser = new EbatNs_ResponseParser( $this, 'urn:ebay:apis:eBLBaseComponents' );
73
		$this->_parser->setMode(EBATNS_PARSEMODE_NOTIFICATION);
74
 
75
		return $this->_parser->decode( $method . 'Response', $msg, true );
76
	}
77
}
78
 
79
?>