Phalcon\Db\Adapter\MongoDB\GridFS\ReadableStream::advanceChunks PHP Method

advanceChunks() private method

private advanceChunks ( )
    private function advanceChunks()
    {
        if ($this->chunkOffset >= $this->numChunks) {
            $this->iteratorEmpty = true;
            return false;
        }
        if ($this->firstCheck) {
            $this->chunksIterator->rewind();
            $this->firstCheck = false;
        } else {
            $this->chunksIterator->next();
        }
        if (!$this->chunksIterator->valid()) {
            throw CorruptFileException::missingChunk($this->chunkOffset);
        }
        if ($this->chunksIterator->current()->n != $this->chunkOffset) {
            throw CorruptFileException::unexpectedIndex($this->chunksIterator->current()->n, $this->chunkOffset);
        }
        $actualChunkSize = strlen($this->chunksIterator->current()->data->getData());
        $expectedChunkSize = $this->chunkOffset == $this->numChunks - 1 ? $this->file->length - $this->bytesSeen : $this->file->chunkSize;
        if ($actualChunkSize != $expectedChunkSize) {
            throw CorruptFileException::unexpectedSize($actualChunkSize, $expectedChunkSize);
        }
        $this->bytesSeen += $actualChunkSize;
        $this->chunkOffset++;
        return true;
    }