/**
* Constants for message data array
*/
- const MESSAGE_ARRAY_DATA = 'message_data';
- const MESSAGE_ARRAY_TYPE = 'message_type';
+ const MESSAGE_ARRAY_DATA = 'message_data';
+ const MESSAGE_ARRAY_TYPE = 'message_type';
+ const MESSAGE_ARRAY_SENDER = 'message_sender';
+ const MESSAGE_ARRAY_HASH = 'message_hash';
+ const MESSAGE_ARRAY_TAGS = 'message_tags';
/**
* Generic answer status field
* @todo Implement verification of all sent tags here?
*/
public function handleNewlyArrivedMessage () {
+ // Make sure there is at least one message
+ assert($this->isNewMessageArrived());
+
// Get it from the stacker, it is the full array with the decoded message
$decodedContent = $this->getStackInstance()->popNamed(self::STACKER_NAME_NEW_MESSAGE);
* elements from $decodedContent are no longer needed.
*/
$chainInstance->processMessage($decodedContent, $this);
+
+ /*
+ * Post-processing of message data (this won't remote the message from
+ * the stack).
+ */
+ $chainInstance->postProcessMessage();
}
/**
* leads to an endless loop. You may wish to run the miner to get some
* reward ("HubCoins") for "mining" this hash.
*
- * @param $decodedDataArray Array with decoded message
+ * @param $messageData Array with message data
* @return void
* @todo ~10% done?
*/
- public function feedHashToMiner (array $decodedDataArray) {
+ public function feedHashToMiner (array $messageData) {
// Make sure the required elements are there
- assert(isset($decodedDataArray[self::PACKAGE_CONTENT_SENDER]));
- assert(isset($decodedDataArray[self::PACKAGE_CONTENT_HASH]));
- assert(isset($decodedDataArray[self::PACKAGE_CONTENT_TAGS]));
+ assert(isset($messageData[self::MESSAGE_ARRAY_SENDER]));
+ assert(isset($messageData[self::MESSAGE_ARRAY_HASH]));
+ assert(isset($messageData[self::MESSAGE_ARRAY_TAGS]));
+
+ // Debug message
+ /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NETWORK-PACKAGE[' . __METHOD__ . ':' . __LINE__ . ']: messageData=' . print_r($messageData, TRUE));
// Resolve session id ('sender' is a session id) into node id
- $nodeId = HubTools::resolveNodeIdBySessionId($decodedDataArray[self::PACKAGE_CONTENT_SENDER]);
+ $nodeId = HubTools::resolveNodeIdBySessionId($messageData[self::MESSAGE_ARRAY_SENDER]);
// Is 'claim_reward' the message type?
- if (in_array('claim_reward', $decodedDataArray[self::PACKAGE_CONTENT_TAGS])) {
+ if (in_array('claim_reward', $messageData[self::MESSAGE_ARRAY_TAGS])) {
/*
* Then don't feed this message to the miner as this causes an
* endless loop of mining.
return;
} // END - if
- $this->partialStub('@TODO nodeId=' . $nodeId . ',decodedDataArray=' . print_r($decodedDataArray, TRUE));
+ $this->partialStub('@TODO nodeId=' . $nodeId . ',messageData=' . print_r($messageData, TRUE));
}
}