*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
* @todo Find an interface for hub helper
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class HubSelfConnectHelper extends BaseHubHelper implements HelpableHub {
+ /**
+ * Package tags
+ */
+ private $packageTags = array('self_connect');
+
/**
* Protected constructor
*
protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
+
+ // Set recipient type
+ $this->setRecipientType(NetworkPackage::NETWORK_TARGET_SELF);
}
/**
* Creates the helper class
*
+ * @param $nodeInstance An instance of a NodeHelper class
* @return $helperInstance A prepared instance of this helper
*/
- public final static function createHubSelfConnectHelper () {
+ public static final function createHubSelfConnectHelper (NodeHelper $nodeInstance) {
// Get new instance
$helperInstance = new HubSelfConnectHelper();
+ // Set the node instance
+ $helperInstance->setNodeInstance($nodeInstance);
+
// Return the prepared instance
return $helperInstance;
}
* @return void
*/
public function loadDescriptorXml () {
- $this->partialStub('Please implement this method.');
+ // Debug message
+ $this->debugOutput('HELPER: Attempting self-connect...');
+
+ // Get the application instance
+ $applicationInstance = Registry::getRegistry()->getInstance('app');
+
+ // Get a XML template instance
+ $templateInstance = ObjectFactory::createObjectByConfiguredName('node_self_connect_template_class');
+
+ // Disable language support
+ $templateInstance->enableLanguageSupport(false);
+
+ /*
+ * Enable compacting/rewriting of the XML to save bandwidth from XML
+ * comments. This is expensive and should be avoided in general.
+ */
+ $templateInstance->enableXmlCompacting();
+
+ // Set it for later use
+ $this->setTemplateInstance($templateInstance);
+
+ // Read the XML descriptor
+ $this->getTemplateInstance()->loadSelfConnectTemplate();
+
+ // Render the XML content
+ $this->getTemplateInstance()->renderXmlContent();
}
/**
// Next, feed the content in. The network package class is a pipe-through class.
$packageInstance->enqueueRawDataFromTemplate($this);
}
+
+ /**
+ * Getter for package tags in a simple array
+ *
+ * @return $tags An array with all tags for the currently handled package
+ */
+ public final function getPackageTags () {
+ return $this->packageTags;
+ }
}
// [EOF]