From 921c459d2d3bd0259d21d2af624f0401a3a42635 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Tue, 18 Feb 2014 22:23:01 +0100 Subject: [PATCH] Added missing class PackageDhtBootstrapTagFilter and config entry. Signed-off-by: Roland Haeder --- application/hub/config.php | 3 + .../class_PackageDhtBootstrapTagFilter.php | 93 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 application/hub/main/filter/tags/class_PackageDhtBootstrapTagFilter.php diff --git a/application/hub/config.php b/application/hub/config.php index 95c46d653..d297bcca6 100644 --- a/application/hub/config.php +++ b/application/hub/config.php @@ -207,6 +207,9 @@ $cfg->setConfigEntry('package_tag_request_node_list_filter', 'PackageRequestNode // CFG: PACKAGE-TAG-REQUEST-NODE-LIST-ANSWER-FILTER $cfg->setConfigEntry('package_tag_request_node_list_answer_filter', 'PackageRequestNodeListAnswerTagFilter'); +// CFG: PACKAGE-TAG-DHT-BOOTSTRAP-FILTER +$cfg->setConfigEntry('package_tag_announcement_filter', 'PackageDhtBootstrapTagFilter'); + // CFG: MESSAGE-TYPE-ANNOUNCEMENT-HANDLER-CLASS $cfg->setConfigEntry('message_type_announcement_handler_class', 'NodeMessageAnnouncementHandler'); diff --git a/application/hub/main/filter/tags/class_PackageDhtBootstrapTagFilter.php b/application/hub/main/filter/tags/class_PackageDhtBootstrapTagFilter.php new file mode 100644 index 000000000..dfe211210 --- /dev/null +++ b/application/hub/main/filter/tags/class_PackageDhtBootstrapTagFilter.php @@ -0,0 +1,93 @@ + + * @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.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 . + */ +class PackageDhtBootstrapTagFilter extends BaseNodeFilter implements FilterablePackage { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + + // Init array + $this->dataXmlNodes = array( + XmlDhtBootstrapTemplateEngine::DHT_BOOTSTRAP_DATA_EXTERNAL_IP => '', + XmlDhtBootstrapTemplateEngine::DHT_BOOTSTRAP_DATA_INTERNAL_IP => '', + XmlDhtBootstrapTemplateEngine::DHT_BOOTSTRAP_DATA_NODE_STATUS => '', + XmlDhtBootstrapTemplateEngine::DHT_BOOTSTRAP_DATA_NODE_MODE => '', + XmlDhtBootstrapTemplateEngine::DHT_BOOTSTRAP_DATA_SESSION_ID => '', + XmlDhtBootstrapTemplateEngine::DHT_BOOTSTRAP_DATA_LISTEN_PORT => 9060, + ); + } + + /** + * Creates an instance of this filter class + * + * @return $filterInstance An instance of this filter class + */ + public final static function createPackageDhtBootstrapTagFilter () { + // Get a new instance + $filterInstance = new PackageDhtBootstrapTagFilter(); + + // Return the instance + return $filterInstance; + } + + /** + * Executes the filter with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @throws UnsupportedOperationException If this method is called, please use processMessage() instead! + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Please don't call this method + throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + } + + /** + * Processes the given raw message content. The method renderXmlContent + * may throw (not the method itself) several exceptions: + * + * InvalidXmlNodeException - If an invalid XML node has been found (e.g. + * wrong/out-dated template used) + * XmlNodeMismatchException - Again might be caused by invalid XML node + * usage + * XmlParserException - If the XML message is damaged or not + * well-formed + * + * @param $messageContent Raw message content + * @param $packageInstance An instance of a Receivable class + * @return void + */ + public function processMessage ($messageContent, Receivable $packageInstance) { + // Process message generic + $this->genericProcessMessage('announcement', $messageContent, $packageInstance); + } +} + +// [EOF] +?> -- 2.39.5