// Constants for database table names
const DB_TABLE_NODE_DHT = 'node_dht';
+ // Constants for database column names
+ const DB_COLUMN_NODE_ID = 'node_id';
+ const DB_COLUMN_SESSION_ID = 'session_id';
+ const DB_COLUMN_IP_PORT = 'ip_port';
+
/**
* Protected constructor
*
// Return the instance
return $wrapperInstance;
}
+
+ /**
+ * 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
+ */
+ public function isLocalNodeRegistered () {
+ // Is there cache?
+ if (!isset($GLOBALS[__METHOD__])) {
+ // Get a search criteria instance
+ $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class');
+
+ // Get node instance
+ $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+ // Add ip:port as criteria
+ $searchInstance->addCriteria(self::DB_COLUMN_IP_PORT, $nodeInstance->getAddressPort());
+ $searchInstance->setLimit(1);
+
+ // Query database and get a result instance back
+ $resultInstance = $this->doSelectByCriteria($searchInstance);
+
+ // Cache result of if there is an entry, next() will tell us if the next entry is valid
+ $GLOBALS[__METHOD__] = $resultInstance->next();
+ } // END - if
+
+ // Return result
+ return $GLOBALS[__METHOD__];
+ }
+
+ /**
+ * Registeres the local (*this*) node with its data in the DHT.
+ *
+ * @return void
+ */
+ public function registerLocalNode () {
+ $this->partialStub('Not implemented yet.');
+ }
+
+ /**
+ * 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
+ */
+ public function updateLocalNode () {
+ $this->partialStub('Not implemented yet.');
+ }
}
// [EOF]