[TASK] Moved the project to namespaces.
[TASK] Removed all the protocol handlers. [TASK] Clients are no longer part of the SocketFramework itself. [TASK] The Framework provides an "interface" to external clients - the ClientDispatcher. [TASK] Added the Core package and added a better ClassLoader. [TASK] Created a bootstrap module to include in other projects. [TASK] Cleaned up comments, reformatted them.
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
namespace JPT\SocketFramework\Client;
|
||||
|
||||
/**
|
||||
* Abstract class that implements the basic api for the client dispatcher.
|
||||
* If you want to write your own client dispatcher (which should be very normal),
|
||||
* you have to extend this class, so you're able to use it in this socket framework.
|
||||
*
|
||||
* @author jpt
|
||||
* @abstract
|
||||
* @package Client
|
||||
*/
|
||||
abstract class AbstractClientDispatcher implements \JPT\SocketFramework\Client\ClientDispatcherInterface {
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $ID;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $group;
|
||||
|
||||
/**
|
||||
* Contains a reference to the ClientManager in order to change stuff on the fly.
|
||||
*
|
||||
* @var \JPT\SocketFramework\Client\ClientManager
|
||||
*/
|
||||
protected $clientManager;
|
||||
|
||||
/**
|
||||
* Forwards incoming data to the ProtocolHandler
|
||||
* Let's the ProtocolHandler do all the work and forward its results to the Clients.
|
||||
* Return resulting raw data.
|
||||
*
|
||||
* @param string $rawData
|
||||
* @return string
|
||||
*/
|
||||
public function processRawData($rawData) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This function will load the given config.
|
||||
*
|
||||
* @param array $config
|
||||
* @return void
|
||||
*/
|
||||
abstract public function loadConfig($config);
|
||||
|
||||
/**
|
||||
* Will reset the connectionStatus of the client.
|
||||
* Implementation is optional and depends on the client.
|
||||
* Should be used to reset internal variables.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function resetConnectionStatus() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This function gets called every time, the connection is established.
|
||||
* This allows the client to send initial data.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function initializeConnection() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ID.
|
||||
*
|
||||
* @param int $id
|
||||
* @return void
|
||||
*/
|
||||
public function setID($id) {
|
||||
$this->ID = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the group.
|
||||
*
|
||||
* @param string $group
|
||||
* @return void
|
||||
*/
|
||||
public function setGroup($group) {
|
||||
$this->group = $group;
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects ClientManager
|
||||
*
|
||||
* @param \JPT\SocketFramework\Client\ClientManager $clientManager
|
||||
* @return void
|
||||
* @throws \JPT\SocketFramework\Exception\WrongDatatypeException
|
||||
*/
|
||||
public function injectClientManager($clientManager) {
|
||||
if(!$clientManager instanceof \JPT\SocketFramework\Client\ClientManager) {
|
||||
throw new Exception_WrongDatatypeException("Cannot inject ClientManager! Expected an instance of \JPT\SocketFramework\Client\ClientManager, '" . get_type($clientManager) . "' given.", 1291156565);
|
||||
}
|
||||
$this->clientManager = $clientManager;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user