* @return $chunkData Raw data chunk
*/
private function getRawDataFromPackageArray (array $packageData) {
- // Implode the package data array and fragement the resulting string, returns the final hash
- $finalHash = $this->getFragmenterInstance()->fragmentPackageArray($packageData, $this);
- if ($finalHash !== TRUE) {
- // Debug message
- /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-HELPER[' . __METHOD__ . ':' . __LINE__ . ']: Setting finalHash=' . $finalHash . ',currentFinalHash[' . gettype($this->currentFinalHash) . ']=' . $this->currentFinalHash);
-
- // Set final hash
- $this->currentFinalHash = $finalHash;
- } // END - if
-
// Debug message
//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-HELPER[' . __METHOD__ . ':' . __LINE__ . ']: currentFinalHash=' . $this->currentFinalHash);
+ // Make sure the final hash is set
+ assert((is_string($this->currentFinalHash)) && (!empty($this->currentFinalHash)));
+
// Get the next raw data chunk from the fragmenter
$rawDataChunk = $this->getFragmenterInstance()->getNextRawDataChunk($this->currentFinalHash);
+ // Debug message
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-HELPER[' . __METHOD__ . ':' . __LINE__ . ']: rawDataChunk=' . print_r($rawDataChunk, TRUE));
+
// Get chunk hashes and chunk data
$chunkHashes = array_keys($rawDataChunk);
$chunkData = array_values($rawDataChunk);
// The helper's state must be 'connected'
$this->getStateInstance()->validatePeerStateConnected();
+ // Implode the package data array and fragement the resulting string, returns the final hash
+ $finalHash = $this->getFragmenterInstance()->fragmentPackageArray($packageData, $this);
+ if ($finalHash !== TRUE) {
+ // Debug message
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-HELPER[' . __METHOD__ . ':' . __LINE__ . ']: Setting finalHash=' . $finalHash . ',currentFinalHash[' . gettype($this->currentFinalHash) . ']=' . $this->currentFinalHash);
+
+ // Set final hash
+ $this->currentFinalHash = $finalHash;
+ } // END - if
+
// Reset serial number
- $this->getFragmenterInstance()->resetSerialNumber();
+ $this->getFragmenterInstance()->resetSerialNumber($this->currentFinalHash);
// Cache buffer length
$bufferSize = $this->getConfigInstance()->getConfigEntry($this->getProtocol() . '_buffer_length');