From 8ad5c6a586ff9c604a12eb9339c7e8c1ee674f3f Mon Sep 17 00:00:00 2001
From: Roland Haeder <roland@mxchange.org>
Date: Mon, 29 Jun 2015 02:45:08 +0200
Subject: [PATCH] Also moved this away to 'core'.

Signed-off-by: Roland Haeder <roland@mxchange.org>
---
 application/hub/main/decorators/.htaccess     |   1 -
 .../main/decorators/class_BaseDecorator.php   |  38 ---
 application/hub/main/listener/class_          |  74 -----
 .../hub/main/listener/class_BaseListener.php  | 292 ------------------
 core                                          |   2 +-
 5 files changed, 1 insertion(+), 406 deletions(-)
 delete mode 100644 application/hub/main/decorators/.htaccess
 delete mode 100644 application/hub/main/decorators/class_BaseDecorator.php
 delete mode 100644 application/hub/main/listener/class_
 delete mode 100644 application/hub/main/listener/class_BaseListener.php

diff --git a/application/hub/main/decorators/.htaccess b/application/hub/main/decorators/.htaccess
deleted file mode 100644
index 3a4288278..000000000
--- a/application/hub/main/decorators/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
diff --git a/application/hub/main/decorators/class_BaseDecorator.php b/application/hub/main/decorators/class_BaseDecorator.php
deleted file mode 100644
index da0465041..000000000
--- a/application/hub/main/decorators/class_BaseDecorator.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * A general Decorator
- *
- * @author		Roland Haeder <webmaster@shipsimu.org>
- * @version		0.0.0
- * @copyright	Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team
- * @license		GNU GPL 3.0 or any newer version
- * @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
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-class BaseDecorator extends BaseHubSystem {
-	/**
-	 * Protected constructor
-	 *
-	 * @param	$className	Name of the class
-	 * @return	void
-	 */
-	protected function __construct ($className) {
-		// Call parent constructor
-		parent::__construct($className);
-	}
-}
-
-// [EOF]
-?>
diff --git a/application/hub/main/listener/class_ b/application/hub/main/listener/class_
deleted file mode 100644
index 13cc72b43..000000000
--- a/application/hub/main/listener/class_
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * A ??? listener
- *
- * @author		Roland Haeder <webmaster@ship-simu.org>
- * @version		0.0.0
- * @copyright	Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team
- * @license		GNU GPL 3.0 or any newer version
- * @link		http://www.ship-simu.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
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class ???Listener extends BaseListener implements Listenable {
-	/**
-	 * Protected constructor
-	 *
-	 * @return	void
-	 */
-	protected function __construct () {
-		// Call parent constructor
-		parent::__construct(__CLASS__);
-	}
-
-	/**
-	 * Creates an instance of this class
-	 *
-	 * @param	$nodeInstance		A NodeHelper instance
-	 * @return	$listenerInstance	An instance a prepared listener class
-	 */
-	public final static function create???Listener (NodeHelper $nodeInstance) {
-		// Get new instance
-		$listenerInstance = new ???Listener();
-
-		// Set the application instance
-		$listenerInstance->setNodeInstance($nodeInstance);
-
-		// Return the prepared instance
-		return $listenerInstance;
-	}
-
-	/**
-	 * Initializes the listener by setting up the required socket server
-	 *
-	 * @return	void
-	 * @todo	0% done
-	 */
-	public function initListener() {
-		$this->partialStub('Need to implement this method.');
-	}
-
-	/**
-	 * "Listens" for incoming network packages
-	 *
-	 * @return	void
-	 * @todo	0% done
-	 */
-	public function doListen() {
-		$this->partialStub('Need to implement this method.');
-	}
-}
-
-// [EOF]
-?>
diff --git a/application/hub/main/listener/class_BaseListener.php b/application/hub/main/listener/class_BaseListener.php
deleted file mode 100644
index 5a5721353..000000000
--- a/application/hub/main/listener/class_BaseListener.php
+++ /dev/null
@@ -1,292 +0,0 @@
-<?php
-/**
- * A general listener class
- *
- * @author		Roland Haeder <webmaster@shipsimu.org>
- * @version		0.0.0
- * @copyright	Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team
- * @license		GNU GPL 3.0 or any newer version
- * @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
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-class BaseListener extends BaseFrameworkSystem implements Visitable {
-	// Exception code constants
-	const EXCEPTION_INVALID_SOCKET                   = 0xa00;
-	const EXCEPTION_SOCKET_ALREADY_REGISTERED        = 0xa01;
-	const EXCEPTION_SOCKET_CREATION_FAILED           = 0xa02;
-	const EXCEPTION_NO_SOCKET_ERROR                  = 0xa03;
-	const EXCEPTION_CONNECTION_ALREADY_REGISTERED    = 0xa04;
-	const EXCEPTION_UNEXPECTED_PACKAGE_STATUS        = 0xa05;
-	const EXCEPTION_UNSUPPORTED_PACKAGE_CODE_HANDLER = 0xa06;
-	const EXCEPTION_FINAL_CHUNK_VERIFICATION         = 0xa07;
-	const EXCEPTION_INVALID_DATA_CHECKSUM            = 0xa08;
-
-	/**
-	 * Address (IP mostly) we shall listen on
-	 */
-	private $listenAddress = '0.0.0.0'; // This is the default and listens on all interfaces
-
-	/**
-	 * Port we shall listen on (or wait for incoming data)
-	 */
-	private $listenPort = 0; // This port MUST be changed by your application
-
-	/**
-	 * Whether we are in blocking or non-blocking mode (default: non-blocking
-	 */
-	private $blockingMode = FALSE;
-
-	/**
-	 * A peer pool instance
-	 */
-	private $poolInstance = NULL;
-
-	/**
-	 * Protected constructor
-	 *
-	 * @param	$className	Name of the class
-	 * @return	void
-	 */
-	protected function __construct ($className) {
-		// Call parent constructor
-		parent::__construct($className);
-	}
-
-	/**
-	 * Checks whether the given socket resource is a server socket
-	 *
-	 * @param	$socketResource		A valid socket resource
-	 * @return	$isServerSocket		Whether the socket resource is a server socket
-	 */
-	protected function isServerSocketResource ($socketResource) {
-		// Check it
-		$isServerSocket = ((is_resource($socketResource)) && (!@socket_getpeername($socketResource, $peerName)));
-
-		// We need to clear the error here if it is a resource
-		if ($isServerSocket === TRUE) {
-			// Clear the error
-			//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('socketResource[]=' . gettype($socketResource));
-			socket_clear_error($socketResource);
-		} // END - if
-
-		// Check peer name, it must be empty
-		$isServerSocket = (($isServerSocket) && (empty($peerName)));
-
-		// Return result
-		return $isServerSocket;
-	}
-
-	/**
-	 * Setter for listen address
-	 *
-	 * @param	$listenAddress	The address this listener should listen on
-	 * @return	void
-	 */
-	protected final function setListenAddress ($listenAddress) {
-		$this->listenAddress = (string) $listenAddress;
-	}
-
-	/**
-	 * Getter for listen address
-	 *
-	 * @return	$listenAddress	The address this listener should listen on
-	 */
-	public final function getListenAddress () {
-		return $this->listenAddress;
-	}
-
-	/**
-	 * Setter for listen port
-	 *
-	 * @param	$listenPort		The port this listener should listen on
-	 * @return	void
-	 */
-	protected final function setListenPort ($listenPort) {
-		$this->listenPort = (int) $listenPort;
-	}
-
-	/**
-	 * Getter for listen port
-	 *
-	 * @return	$listenPort		The port this listener should listen on
-	 */
-	public final function getListenPort () {
-		return $this->listenPort;
-	}
-
-	/**
-	 * "Setter" to set listen address from configuration entry
-	 *
-	 * @param	$configEntry	The configuration entry holding our listen address
-	 * @return	void
-	 */
-	public final function setListenAddressByConfiguration ($configEntry) {
-		$this->setListenAddress($this->getConfigInstance()->getConfigEntry($configEntry));
-	}
-
-	/**
-	 * "Setter" to set listen port from configuration entry
-	 *
-	 * @param	$configEntry	The configuration entry holding our listen port
-	 * @return	void
-	 */
-	public final function setListenPortByConfiguration ($configEntry) {
-		$this->setListenPort($this->getConfigInstance()->getConfigEntry($configEntry));
-	}
-
-	/**
-	 * Setter for blocking-mode
-	 *
-	 * @param	$blockingMode	Whether blocking-mode is disabled (default) or enabled
-	 * @return	void
-	 */
-	protected final function setBlockingMode ($blockingMode) {
-		$this->blockingMode = (boolean) $blockingMode;
-	}
-
-	/**
-	 * Checks whether blocking-mode is enabled or disabled
-	 *
-	 * @return	$blockingMode	Whether blocking mode is disabled or enabled
-	 */
-	public final function isBlockingModeEnabled () {
-		return $this->blockingMode;
-	}
-
-	/**
-	 * Setter for peer pool instance
-	 *
-	 * @param	$poolInstance	The peer pool instance we shall set
-	 * @return	void
-	 */
-	protected final function setPoolInstance (PoolablePeer $poolInstance) {
-		$this->poolInstance = $poolInstance;
-	}
-
-	/**
-	 * Getter for peer pool instance
-	 *
-	 * @return	$poolInstance	The peer pool instance we shall set
-	 */
-	public final function getPoolInstance () {
-		return $this->poolInstance;
-	}
-
-	/**
-	 * Getter for connection type
-	 *
-	 * @return	$connectionType		Connection type for this listener
-	 */
-	public final function getConnectionType () {
-		// Wrap the real getter
-		return $this->getProtocolName();
-	}
-
-	/**
-	 * Registeres the given socket resource for "this" listener instance. This
-	 * will be done in a seperate class to allow package writers to use it
-	 * again.
-	 *
-	 * @param	$socketResource		A valid server socket resource
-	 * @return	void
-	 * @throws	InvalidServerSocketException		If the given resource is no server socket
-	 * @throws	SocketAlreadyRegisteredException	If the given resource is already registered
-	 */
-	protected function registerServerSocketResource ($socketResource) {
-		// First check if it is valid
-		if (!$this->isServerSocketResource($socketResource)) {
-			// No server socket
-			throw new InvalidServerSocketException(array($this, $socketResource), self::EXCEPTION_INVALID_SOCKET);
-		} elseif ($this->isServerSocketRegistered($socketResource)) {
-			// Already registered
-			throw new SocketAlreadyRegisteredException($this, self::EXCEPTION_SOCKET_ALREADY_REGISTERED);
-		}
-
-		// Get a socket registry instance (singleton)
-		$registryInstance = SocketRegistryFactory::createSocketRegistryInstance();
-
-		// Get a connection info instance
-		$infoInstance = ConnectionInfoFactory::createConnectionInfoInstance($this->getProtocolName(), 'listener');
-
-		// Will the info instance with listener data
-		$infoInstance->fillWithListenerInformation($this);
-
-		// Register the socket
-		$registryInstance->registerSocket($infoInstance, $socketResource);
-
-		// And set it here
-		$this->setSocketResource($socketResource);
-	}
-
-	/**
-	 * Checks whether given socket resource is registered in socket registry
-	 *
-	 * @param	$socketResource		A valid server socket resource
-	 * @return	$isRegistered		Whether given server socket is registered
-	 */
-	protected function isServerSocketRegistered ($socketResource) {
-		// Get a socket registry instance (singleton)
-		$registryInstance = SocketRegistryFactory::createSocketRegistryInstance();
-
-		// Get a connection info instance
-		$infoInstance = ConnectionInfoFactory::createConnectionInfoInstance($this->getProtocolName(), 'listener');
-
-		// Will the info instance with listener data
-		$infoInstance->fillWithListenerInformation($this);
-
-		// Check it
-		$isRegistered = $registryInstance->isSocketRegistered($infoInstance, $socketResource);
-
-		// Return result
-		return $isRegistered;
-	}
-
-	/**
-	 * Accepts the visitor to process the visit "request"
-	 *
-	 * @param	$visitorInstance	An instance of a Visitor class
-	 * @return	void
-	 */
-	public function accept (Visitor $visitorInstance) {
-		// Debug message
-		//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($this->getProtocolName()) . '-LISTENER[' . __METHOD__ . ':' . __LINE__ . ']: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - CALLED!');
-
-		// Visit this listener
-		$visitorInstance->visitListener($this);
-
-		// Visit the pool if set
-		if ($this->getPoolInstance() instanceof Poolable) {
-			$this->getPoolInstance()->accept($visitorInstance);
-		} // END - if
-
-		// Debug message
-		//* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($this->getProtocolName()) . '-LISTENER[' . __METHOD__ . ':' . __LINE__ . ']: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - EXIT!');
-	}
-
-	/**
-	 * Monitors incoming raw data from the handler and transfers it to the
-	 * given receiver instance. This method should not be called, please call
-	 * the decorator's version instead to separator node/client traffic.
-	 *
-	 * @return	void
-	 * @throws	UnsupportedOperatorException	If this method is called by a mistake
-	 */
-	public function monitorIncomingRawData () {
-		throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION);
-	}
-}
-
-// [EOF]
-?>
diff --git a/core b/core
index e18cb1a84..15bab1114 160000
--- a/core
+++ b/core
@@ -1 +1 @@
-Subproject commit e18cb1a8484d0cfe82812f4446738aa31d669f1e
+Subproject commit 15bab1114f3d4e33c67d035a7d3c20a8babeee81
-- 
2.39.5