* @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 * * 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 . */ interface NodeDhtWrapper extends DatabaseWrapper { /** * Checks whether the local (*this*) node is registered in the DHT by * checking if the external ip/port is found. * * @return $isRegistered Whether *this* node is registered in the DHT */ function isLocalNodeRegistered (); /** * Registeres the local (*this*) node with its data in the DHT. * * @return void */ function registerLocalNode (); /** * Updates local (*this*) node data in DHT, this is but not limited to the * session id, ip number (and/or hostname) and port number. * * @return void */ function updateLocalNode (); /** * Finds a node locally by given session id * * @param $sessionId Session id to lookup * @return $nodeData Node data array */ function findNodeLocalBySessionId ($sessionId); /** * Determines whether the given node data is already inserted in the DHT * * @param $nodeData An array with valid node data * @return $isRegistered Whether the given node data is already inserted */ function isNodeRegistered (array $nodeData); /** * Registers a node with given data in the DHT. If the node is already * registered this method shall throw an exception. * * @param $nodeData An array with valid node data * @return void * @throws NodeAlreadyRegisteredException If the node is already registered */ function registerNode (array $nodeData); /** * Updates a node's entry in the DHT with given data. This will enrich or * just update already exsiting data. If the node is not found this method * shall throw an exception. * * @param $nodeData An array with valid node data * @return void * @throws NodeDataMissingException If the node's data is missing */ function updateNode (array $nodeData); } // [EOF] ?>