fun writeChunks()

in plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/ChunksListForWrite.kt [108:124]


    fun writeChunks(os: OutputPngStream, currentGroup: Int): Int {
        var cont = 0
        val it: MutableIterator<PngChunk> = queuedChunks.iterator()
        while (it.hasNext()) {
            val c: PngChunk = it.next()
            if (!shouldWrite(c, currentGroup)) continue
            if (ChunkHelper.isCritical(c.id) && c.id != ChunkHelper.PLTE) throw PngjOutputException("bad chunk queued: $c")
            if (alreadyWrittenKeys.containsKey(c.id) && !c.allowsMultiple()) throw PngjOutputException("duplicated chunk does not allow multiple: $c")
            c.write(os)
            chunks.add(c)
            alreadyWrittenKeys[c.id] = if (alreadyWrittenKeys.containsKey(c.id)) alreadyWrittenKeys[c.id]!! + 1 else 1
            c.chunkGroup = currentGroup
            it.remove()
            cont++
        }
        return cont
    }