2010-11-21 23:48:11 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Abstract class that implements the basic api for any client.
|
|
|
|
* @author jpt
|
|
|
|
* @abstract
|
|
|
|
* @package Client
|
|
|
|
*/
|
|
|
|
abstract class Client_AbstractClient {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var int
|
|
|
|
*/
|
|
|
|
protected $ID;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $group;
|
|
|
|
|
2010-11-28 01:04:35 +01:00
|
|
|
/**
|
|
|
|
* @var mixed Instance of Protocol_AbstractProtocolHandler
|
|
|
|
*/
|
|
|
|
protected $protocolHandler;
|
|
|
|
|
2010-11-21 23:48:11 +01:00
|
|
|
/**
|
|
|
|
* Contains a reference to the ClientManager in order to change stuff on the fly.
|
|
|
|
* @var Client_ClientManager
|
|
|
|
*/
|
|
|
|
protected $clientManager;
|
|
|
|
|
2010-11-28 01:04:35 +01:00
|
|
|
/**
|
|
|
|
* Injects ProtocolHandler
|
2010-11-28 02:15:20 +01:00
|
|
|
* @param mixed $protocolHandler instance of Protocol_AbstractProtocolHandler
|
2010-11-28 01:04:35 +01:00
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function injectProtocolHandler($protocolHandler) {
|
|
|
|
$this->protocolHandler = $protocolHandler;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Forwards incoming data to the ProtocolParser.
|
|
|
|
* Calls protected processData()
|
|
|
|
* @param string $rawData
|
2010-11-28 02:24:16 +01:00
|
|
|
* @return string
|
2010-11-28 01:04:35 +01:00
|
|
|
*/
|
2010-11-28 02:15:20 +01:00
|
|
|
public function processRawData($rawData) {
|
2010-11-28 01:04:35 +01:00
|
|
|
$contentObject = $this->protocolHandler->parse($rawData);
|
2010-11-28 02:24:16 +01:00
|
|
|
return $this->processContentObject($contentObject);
|
2010-11-28 01:04:35 +01:00
|
|
|
}
|
|
|
|
|
2010-11-21 23:48:11 +01:00
|
|
|
/**
|
|
|
|
* This function will be the main entry point of any client.
|
|
|
|
* @param string $data
|
|
|
|
* @return string
|
|
|
|
*/
|
2010-11-28 01:04:35 +01:00
|
|
|
abstract protected function processContentObject($contentObject);
|
2010-11-21 23:48:11 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This function will load the given config.
|
|
|
|
* @param array $config
|
|
|
|
*/
|
|
|
|
abstract public function loadConfig($config);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param int $id
|
|
|
|
*/
|
|
|
|
public function setID($id) {
|
|
|
|
$this->ID = $id;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param string $group
|
|
|
|
*/
|
|
|
|
public function setGroup($group) {
|
|
|
|
$this->group = $group;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Injects ClientManager
|
|
|
|
* @param Client_ClientManager $clientManager
|
|
|
|
*/
|
|
|
|
public function injectClientManager($clientManager) {
|
|
|
|
$this->clientManager = $clientManager;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|