X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=application%2Fhub%2Finterfaces%2Fdistributable%2Fclass_Distributable.php;h=8adbc8d64b822eef96c3b40e86a24a9f7aacf22e;hb=52eda188511e59e5852d2321243e12bafcbe5be7;hp=4b1053ccdbbf25ebc7f70b381b21e248e8d2254f;hpb=4fb0a9cb42950c86303f83288f7c7a90cddcf684;p=hub.git diff --git a/application/hub/interfaces/distributable/class_Distributable.php b/application/hub/interfaces/distributable/class_Distributable.php index 4b1053ccd..8adbc8d64 100644 --- a/application/hub/interfaces/distributable/class_Distributable.php +++ b/application/hub/interfaces/distributable/class_Distributable.php @@ -2,11 +2,11 @@ /** * An interface for DHTs * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 * @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 + * @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 @@ -30,12 +30,73 @@ interface Distributable extends FrameworkInterface { function initDht (); /** - * Finds a node by given session id + * Bootstraps the DHT by sending out a message to all available nodes + * (including itself). This step helps the node to get to know more nodes + * which can be queried later for object distribution. * - * @param $sessionId Session id to lookup - * @return $nodeData Node data array + * @return void + */ + function bootstrapDht (); + + /** + * Updates/refreshes DHT data (e.g. status). + * + * @return void + */ + function updateDhtData (); + + /** + * Checks whether there are unpublished entries + * + * @return $hasUnpublished Whether there are unpublished entries + */ + function hasUnpublishedEntries (); + + /** + * Initializes publication of DHT entries. This does only prepare + * publication. The next step is to pickup such prepared entries and publish + * them by uploading to other (recently appeared) DHT members. + * + * @return void + */ + function initEntryPublication (); + + /** + * Checks whether there are entries pending publication + * + * @return $isPending Whether there are entries pending publication + */ + function hasEntriesPendingPublication (); + + /** + * Publishes next entry found in stack. This method shall also update the + * corresponding dabase entry. + * + * @return void + */ + function publishEntry (); + + /** + * Find recipients for given package data + * + * @param $packageData An array of valid package data + * @return $recipients An indexed array with DHT recipients + */ + function findRecipientsByPackageData (array $packageData); + + /** + * Whether the DHT has fully bootstrapped (after state 'booting') + * + * @return $isFullyBooted Whether the DHT is fully booted + */ + function hasFullyBootstrapped (); + + /** + * Whether this DHT's state is 'booting' + * + * @return $isBooting Whether this DHT is currently booting */ - function findNodeBySessionId ($sessionId); + function ifDhtIsBooting (); } // [EOF]