X-Git-Url: https://git.mxchange.org/?p=hub.git;a=blobdiff_plain;f=application%2Fhub%2Fclasses%2Fhelper%2Fdht%2Fclass_DhtPublishEntryHelper.php;fp=application%2Fhub%2Fclasses%2Fhelper%2Fdht%2Fclass_DhtPublishEntryHelper.php;h=b4cd7cedf3d2e83a552a98aba5eee780f0dbe4c9;hp=0000000000000000000000000000000000000000;hb=f3400989268a1994de44909e5d968cabf72de5b1;hpb=73aff29b9bc78031853b0b8c0fe0a8e04f66ac29 diff --git a/application/hub/classes/helper/dht/class_DhtPublishEntryHelper.php b/application/hub/classes/helper/dht/class_DhtPublishEntryHelper.php new file mode 100644 index 000000000..b4cd7cedf --- /dev/null +++ b/application/hub/classes/helper/dht/class_DhtPublishEntryHelper.php @@ -0,0 +1,99 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.shipsimu.org + * @todo Find an interface for hub helper + * + * 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 DhtPublishEntryHelper extends BaseHubSystemHelper implements HelpableDht { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + + // Set recipient type + $this->setRecipientType(NetworkPackage::NETWORK_TARGET_DHT); + + // Set package tags + $this->setPackageTags(array('dht_publish_entry')); + } + + /** + * Creates the helper class + * + * @return $helperInstance A prepared instance of this helper + */ + public final static function createDhtPublishEntryHelper () { + // Get new instance + $helperInstance = new DhtPublishEntryHelper(); + + // Return the prepared instance + return $helperInstance; + } + + /** + * Loads the announcement descriptor for parsing + * + * @param $dhtInstance An instance of a Distributable class + * @return void + */ + public function loadDescriptorXml (Distributable $dhtInstance) { + // Debug message + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('HELPER[' . __METHOD__ . ':' . __LINE__ . ']: Starting with publishing an entry ...'); + + // Get a XML template instance + $templateInstance = XmlTemplateEngineFactory::createXmlTemplateEngineInstance('dht_publish_entry_template_class'); + + // Set stacker + + // Set it for later use + $this->setTemplateInstance($templateInstance); + + // Read the XML descriptor + $templateInstance->loadXmlTemplate(); + + // Render the XML content + $templateInstance->renderXmlContent(); + } + + /** + * Do the helped attempt by delivering a package to ourselfs + * + * @param $dhtInstance An instance of a Distributable class + * @return void + */ + public function sendPackage (Distributable $dhtInstance) { + // Compile the template, this inserts the loaded dht data into the gaps. + $this->getTemplateInstance()->compileTemplate(); + + // Get a singleton network package instance + $packageInstance = NetworkPackageFactory::createNetworkPackageInstance(); + + // Next, feed the content in. The network package class is a pipe-through class. + $packageInstance->enqueueRawDataFromTemplate($this); + } +} + +// [EOF] +?>