DiskStoreZipWriter

class DiskStoreZipWriter(out: ZipOutputStream, prefix: String = "cache/", level: Int = Deflater.BEST_COMPRESSION, timestamp: Instant = Instant.EPOCH, alloc: ByteBufAllocator = ByteBufAllocator.DEFAULT, legacy: Boolean = false) : Store

A specialised Store implementation that writes a cache in the native main_file_cache.dat2/main_file_cache.idx* format to a ZipOutputStream.

The cache is not buffered to disk, though the index entries must be buffered in memory. The memory usage is therefore proportional to the number of groups, but crucially, not the size of the data file.

This implementation only supports the create and write methods. All other methods throw UnsupportedOperationException.

It is only intended for use by the cache archiving service's web interface.

Constructors

Link copied to clipboard
constructor(out: ZipOutputStream, prefix: String = "cache/", level: Int = Deflater.BEST_COMPRESSION, timestamp: Instant = Instant.EPOCH, alloc: ByteBufAllocator = ByteBufAllocator.DEFAULT, legacy: Boolean = false)

Functions

Link copied to clipboard
open override fun close()
Link copied to clipboard
open override fun create(archive: Int)

Creates an archive. Does nothing if the archive already exists.

Link copied to clipboard
open override fun exists(archive: Int): Boolean

Checks whether an archive exists.

open override fun exists(archive: Int, group: Int): Boolean

Checks whether a group exists.

Link copied to clipboard
open override fun flush()
Link copied to clipboard
open override fun list(): List<Int>

Lists all archives in the store.

open override fun list(archive: Int): List<Int>

Lists all groups in an archive.

Link copied to clipboard
open override fun read(archive: Int, group: Int): ByteBuf

Reads a group.

Link copied to clipboard
open override fun remove(archive: Int)

Deletes an archive and all groups contained inside it. Does nothing if the archive does not exist.

open override fun remove(archive: Int, group: Int)

Deletes a group. Does nothing if the archive or group does not exist.

Link copied to clipboard
open override fun write(archive: Int, group: Int, buf: ByteBuf)

Writes a group. If the archive does not exist, it is created first. If a group with the same ID already exists, it is overwritten.