dynamicRouting.kt
src/jvmMain/kotlin/afield/app/server/dynamicRouting.kt · 41 lines
package afield.app.server
import afield.data.table.div
import afield.data.table.get
import afield.data.table.minus
import afield.data.table.plus
import afield.data.table.rem
import afield.data.table.times
import afield.runtime.execution.plus
import afield.runtime.lifecycle.plus
import afield.runtime.lifecycle.rem
import afield.audio.synth.*
import afield.graphics.vulkan.*
import afield.media.stream.*
import afield.media.video.*
import java.io.File
import java.util.concurrent.ConcurrentHashMap
A registry that maps URI prefixes to directories, so the server can serve files from folders chosen at runtime.
The /local route in Server.kt looks up a request path in dynamicRoutes, longest matching
prefix first, and serves the file from the directory registered for that prefix.
class DynamicDirectoryRoutes
Prefix-to-directory table consulted by the server's /local route.
class DynamicDirectoryRoutes {
private val routes = ConcurrentHashMap<String, File>()
fun addRoute(prefix: String, directory: File)
Add a mapping from a URI prefix (e.g. "/files/") to a directory
fun addRoute(prefix: String, directory: File) {
routes[prefix] = directory
}
fun getRoutes(): Map<String, File> = routes.toMap()
Get a copy of current mappings