X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=application%2Fhub%2Finterfaces%2Fnodes%2Fclass_NodeHelper.php;h=80addaf8144a865b3af0ef82970ee9e410cfd527;hb=837aefc0292c2a37fedd8ce06d3b57b05a112a36;hp=196d1ecaca6b2552079d7f2a5a109665370dcb60;hpb=fcdf2b3bc00500faa2aad3320fa511ef13cac667;p=hub.git diff --git a/application/hub/interfaces/nodes/class_NodeHelper.php b/application/hub/interfaces/nodes/class_NodeHelper.php index 196d1ecac..80addaf81 100644 --- a/application/hub/interfaces/nodes/class_NodeHelper.php +++ b/application/hub/interfaces/nodes/class_NodeHelper.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Hub Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Hub Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @todo We need to find a better name for this interface @@ -47,14 +47,23 @@ interface NodeHelper extends FrameworkInterface { */ function outputConsoleTeaser (); + /** + * Add some node-specific filters + * + * @return void + */ + function addExtraNodeFilters (); + /** * Generic method to acquire a hub-id. On first run this generates a new one * based on many pseudo-random data. On any later run, unless the id * got not removed from database, it will be restored from the database. * + * @param $requestInstance A Requestable class + * @param $responseInstance A Responseable class * @return void */ - function bootstrapAcquireHubId (); + function bootstrapAcquireNodeId (Requestable $requestInstance, Responseable $responseInstance); /** * Activates the hub by doing some final preparation and setting @@ -64,23 +73,21 @@ interface NodeHelper extends FrameworkInterface { * @param $responseInstance A Responseable class * @return void */ - function activateHub (Requestable $requestInstance, Responseable $responseInstance); + function activateNode (Requestable $requestInstance, Responseable $responseInstance); /** - * Adds some node-specific filters to the filter chains + * Generates a session id which will be sent to the other hubs and peers * - * @param $requestInstance A Requestable class - * @param $responseInstance A Responseable class * @return void */ - function addExtraFilters (Requestable $requestInstance, Responseable $responseInstance); + function bootstrapGenerateSessionId (); /** - * Generates a session id which will be sent to the other hubs and clients + * Generates a private key for en-/decryption * * @return void */ - function bootstrapGenerateSessionId (); + function bootstrapGeneratePrivateKey (); /** * Initializes the listener pool (class) @@ -95,7 +102,50 @@ interface NodeHelper extends FrameworkInterface { * @return void */ function bootstrapRestoreNodeList (); + + /** + * Announces this hub to the upper (bootstrap or list) hubs. After this is + * successfully done the given task is unregistered from the handler. + * + * @param $taskInstance The task instance running this announcement + * @return void + * @throws HubAlreadyAnnouncedException If this hub is already announced + */ + function announceSelfToUpperNodes (Taskable $taskInstance); + + /** + * Does a self-connect attempt on the public IP address. This should make + * it sure, we are reachable from outside world. + * + * @param $taskInstance The task instance running this announcement + * @return void + */ + function doSelfConnection (Taskable $taskInstance); + + /** + * "Getter for address:port combination + * + * @param $handlerInstance A valid Networkable instance + * @return $addressPort A address:port combination for this node + */ + function getAddressPort (Networkable $handlerInstance); + + /** + * Adds hub data elements to a given dataset instance + * + * @param $criteriaInstance An instance of a storeable criteria + * @param $requestInstance An instance of a Requestable class + * @return void + */ + function addElementsToDataSet (StoreableCriteria $criteriaInstance, Requestable $requestInstance); + + /** + * Updates/refreshes node data (e.g. state). + * + * @return void + */ + function updateNodeData (); } -// +// [EOF] ?>