/**
* A NetworkPackageReader task
*
- * @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 - 2014 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
}
/**
- * Accepts the visitor to process the visit "request"
+ * Accepts the visitor to process the visitor
*
* @param $visitorInstance An instance of a Visitor class
* @return void
* @return void
*/
public function executeTask () {
+ // "Cache" package instance
+ $packageInstance = $this->getPackageInstance();
+
// Do we have something to handle?
- if ($this->getPackageInstance()->isProcessedMessagePending()) {
+ if ($packageInstance->isProcessedMessagePending()) {
/*
* A previously proccessed message is waiting for being
* "interpreted". This is done by trying to find a configuration
* entry based on 'message_type' element.
*/
- $this->getPackageInstance()->handleProcessedMessage();
- } elseif ($this->getPackageInstance()->isNewMessageArrived()) {
+ $packageInstance->handleProcessedMessage();
+ } elseif ($packageInstance->isNewMessageArrived()) {
/*
* A fully "decoded" message has been received and added for being
* processed. Processing a message should not take long, so mostly
* as "XML variables" from the content (which must be a well-formed
* XML) and then pushing it on the next stack "processed messages".
*/
- $this->getPackageInstance()->handleNewlyArrivedMessage();
- } elseif ($this->getPackageInstance()->isIncomingDecodedDataHandled()) {
+ $packageInstance->handleNewlyArrivedMessage();
+ } elseif ($packageInstance->isIncomingRawDataHandled()) {
/*
* Incoming decoded data has been handled (see below) so it needs to
* be assembled back to a "package array". Please see NetworkPackage
* for further details (what array elements are required et cetera).
*/
- $this->getPackageInstance()->assembleDecodedDataToPackage();
- } elseif ($this->getPackageInstance()->isNewRawDataPending($this->getListenerPoolInstance())) {
+ $packageInstance->assembleDecodedDataToPackage();
+ } elseif ($packageInstance->ifMultipleMessagesPending()) {
+ /*
+ * Some raw data contained multiple messages which where now splitted.
+ */
+ $packageInstance->handleMultipleMessages();
+ } elseif ($packageInstance->isNewRawDataPending($this->getListenerPoolInstance())) {
// Raw, decoded data has been received
- $this->getPackageInstance()->handleIncomingDecodedData();
- } elseif ($this->getPackageInstance()->ifAssemblerHasPendingDataLeft()) {
+ $packageInstance->handleIncomingDecodedData();
+ } elseif ($packageInstance->ifAssemblerHasPendingDataLeft()) {
// Handle any pending data from the package assembler
- $this->getPackageInstance()->handleAssemblerPendingData();
+ $packageInstance->handleAssemblerPendingData();
} // END - if
}
}