All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.http4k.traffic.ReadWriteStream.kt Maven / Gradle / Ivy

package org.http4k.traffic

import org.http4k.core.HttpMessage
import org.http4k.core.Request
import org.http4k.core.Response

/**
 * Combined Read/Write storage models, optimised for replay.
 */
interface ReadWriteStream : Sink, Replay {
    companion object {
        /**
         * Serialise and replay HTTP traffic to/from the FS in order.
         */
        fun Disk(baseDir: String = ".", shouldStore: (HttpMessage) -> Boolean = { true }): ReadWriteStream =
            object : ReadWriteStream, Replay by Replay.DiskStream(baseDir), Sink by Sink.DiskStream(baseDir, shouldStore) {}

        /**
         * Serialise and replay HTTP traffic to/from Memory in order.
         */
        fun Memory(stream: MutableList> = mutableListOf(), shouldStore: (HttpMessage) -> Boolean = { true }): ReadWriteStream =
            object : ReadWriteStream, Replay by Replay.MemoryStream(stream), Sink by Sink.MemoryStream(stream, shouldStore) {}
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy