open fun merge()

in blockmap/src/main/kotlin/com/jetbrains/plugin/blockmap/core/ChunkMerger.kt [23:34]


  open fun merge(output: OutputStream, newChunkDataSource: Iterator<ByteArray>) {
    RandomAccessFile(oldFile, "r").use { oldFileRAF ->
      output.buffered().use { bufferedOutput ->
        val oldMap = oldBlockMap.chunks.associateBy { it.hash }
        for (newChunk in newBlockMap.chunks) {
          val oldChunk = oldMap[newChunk.hash]
          if (oldChunk != null) downloadChunkFromOldData(oldChunk, oldFileRAF, bufferedOutput)
          else downloadChunkFromNewData(newChunk, newChunkDataSource, bufferedOutput)
        }
      }
    }
  }