* @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 . */ interface Receivable extends FrameworkInterface { /** * Checks whether new raw data from the socket has arrived * * @param $poolInstance An instance of a PoolableListener class * @return $hasArrived Whether raw package data has arrived at a socket */ function isNewRawDataPending (PoolableListener $poolInstance); /** * Handles the incoming decoded raw data. This method does not "convert" the * decoded data back into a package array, it just "handles" it and pushs it * on the next stack. * * @return void */ function handleIncomingDecodedData (); /** * Checks whether incoming decoded data is handled. * * @return $isHandled Whether incoming decoded data is handled */ function isIncomingRawDataHandled (); /** * Assembles incoming decoded data so it will become an abstract network * package again. * * @return void */ function assembleDecodedDataToPackage (); /** * Checks whether a new message has arrived * * @return $hasArrived Whether a new message has arrived for processing */ function isNewMessageArrived (); /** * Handle newly arrived message * * @return void */ function handleNewlyArrivedMessage (); /** * Checks whether a processed message is pending for "interpretation" * * @return $isPending Whether a processed message is pending */ function isProcessedMessagePending (); /** * Handle processed messages by "interpreting" the 'message_type' element * * @return void */ function handleProcessedMessage (); /** * Adds raw decoded data from the given handler instance to this receiver * * @param $handlerInstance An instance of a Networkable class * @return void */ function addRawDataToIncomingStack (Networkable $handlerInstance); /** * "Decode" the package content. This method does also verify the attached hash * against the real raw package data (that what the sender has sent). * * @param $rawPackageContent The raw package content to be "decoded" * @return $decodedData The real package data that the sender has sent */ function decodeRawContent ($rawPackageContent); /** * Checks whether the assembler has pending data left * * @return $isHandled Whether the assembler has pending data left */ function ifAssemblerHasPendingDataLeft (); /** * Handles the attached assemler's pending data queue to be finally * assembled to the raw package data back. * * @return void */ function handleAssemblerPendingData (); /** * Handles decoded data for this node * * @param $decodedData An array with decoded raw package data * @return void */ function handleRawData (array $decodedData); } // [EOF] ?>