<?php
/**
- * A decorator for the TcpListener to communicate to clients
+ * A decorator for the TcpListener to communicate to peers
*
- * @author Roland Haeder <webmaster@ship-simu.org>
+ * @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Client Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2014 Hub Developer Team
* @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
+ * @link http://www.shipsimu.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
+
+ // Set listener type and protocol name
+ $this->setListenerType('peer');
+ $this->setProtocolName('tcp');
}
/**
* @param $listenerInstance A Listener instance
* @return $decoratorInstance An instance a prepared listener decorator class
*/
- public final static function createClientTcpListenerDecorator (Listenable $listenerInstance) {
+ public static final function createClientTcpListenerDecorator (Listenable $listenerInstance) {
// Get new instance
$decoratorInstance = new ClientTcpListenerDecorator();
*
* @return void
*/
- public function initListener() {
+ public function initListener () {
$this->partialStub('WARNING: This method should not be called.');
}
*
* @return void
*/
- public function doListen() {
+ public function doListen () {
// Handle generic TCP package
$this->getListenerInstance()->doListen();
- // Handle client TCP package
- $this->partialStub('Need to handle client TCP package.');
+ // Handle peer TCP package
+ $this->partialStub('Need to handle peer TCP package.');
+ }
+
+ /**
+ * Checks whether the listener would accept the given package data array
+ *
+ * @param $packageData Raw package data
+ * @return $accepts Whether this listener does accept
+ */
+ public function ifListenerAcceptsPackageData (array $packageData) {
+ // Get a tags instance
+ $tagsInstance = PackageTagsFactory::createPackageTagsInstance();
+
+ // So is the package accepted with this listener?
+ $accepts = $tagsInstance->ifPackageDataIsAcceptedByListener($packageData, $this);
+
+ // Return the result
+ return $accepts;
}
}