/**
* A generic filter for hub project
*
- * @author Roland Haeder <webmaster@ship-simu.org>
+ * @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Hub Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 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
* well-formed
*
* @param $messageType Type of message
- * @param $messageContent Raw message content
+ * @param $messageData Raw message data array
* @param $packageInstance An instance of a Receivable class
* @return void
* @todo Exceptions from renderXmlContent() are currently unhandled
*/
- protected function genericProcessMessage ($messageType, $messageContent, Receivable $packageInstance) {
+ protected function genericProcessMessage ($messageType, array $messageData, Receivable $packageInstance) {
+ // Make sure the wanted element is there
+ assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_MESSAGE]));
+ assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_SENDER]));
+ assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_HASH]));
+ assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_TAGS]));
+
// Get a template instance from the factory
$templateInstance = XmlTemplateEngineFactory::createXmlTemplateEngineInstance('node_' . $messageType . '_template_class');
+ // Get message content
+ $messageContent = $messageData[NetworkPackage::PACKAGE_CONTENT_MESSAGE];
+
// And render the XML content (aka message)
$templateInstance->renderXmlContent($messageContent);
// Construct an array for pushing it on next stack
$messageArray = array(
// Message data itself
- NetworkPackage::MESSAGE_ARRAY_DATA => $this->dataXmlNodes,
+ NetworkPackage::MESSAGE_ARRAY_DATA => $this->dataXmlNodes,
// Message type (which is $messageType)
- NetworkPackage::MESSAGE_ARRAY_TYPE => $messageType
+ NetworkPackage::MESSAGE_ARRAY_TYPE => $messageType,
+ // Message sender
+ NetworkPackage::MESSAGE_ARRAY_SENDER => $messageData[NetworkPackage::PACKAGE_CONTENT_SENDER],
+ // Package hash
+ NetworkPackage::MESSAGE_ARRAY_HASH => $messageData[NetworkPackage::PACKAGE_CONTENT_HASH],
+ // Package tags
+ NetworkPackage::MESSAGE_ARRAY_TAGS => $messageData[NetworkPackage::PACKAGE_CONTENT_TAGS],
);
// Push the processed message back on stack
- $packageInstance->getStackerInstance()->pushNamed(NetworkPackage::STACKER_NAME_PROCESSED_MESSAGE, $messageArray);
+ $packageInstance->getStackInstance()->pushNamed(NetworkPackage::STACKER_NAME_PROCESSED_MESSAGE, $messageArray);
}
}