12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package com.acdp.transceivr;
- import com.eclipsesource.json.JsonArray;
- import org.slf4j.LoggerFactory;
- import java.util.concurrent.ConcurrentHashMap;
- import static spark.Spark.*;
- public class WebServer {
- private final static org.slf4j.Logger logger = LoggerFactory.getLogger(WebServer.class);
- private final int port;
- private int nextID = 1;
- private ConcurrentHashMap<Integer, Transfer> uploads = new ConcurrentHashMap<>();
- public WebServer(int port, boolean debug) {
- this.port = port;
- }
- public void start() {
- port(port);
- staticFiles.location("/webroot");
- get("/zero", (req, res) -> {
- var os = res.raw().getOutputStream();
- var ba = new byte[1024];
- while (true)
- os.write(ba);
- });
- post("/null", (req, res) -> {
- var is = req.raw().getInputStream();
- var ba = new byte[1024];
- while (true)
- is.read(ba);
- });
- get("/status", (req, res) -> {
- JsonArray ja = new JsonArray();
- for (Transfer t : uploads.values())
- ja.add(t.toJSON());
- res.header("Content-Type", "application/json");
- return ja.toString();
- });
- post("/xfer", (req, res) -> {
- try {
- Transfer t = new Transfer(nextID++);
- t.from = req.queryParams("from");
- t.to = req.queryParams("to");
- LoadTools.startTransfer(t);
- uploads.put(t.id, t);
- return "OK: " + t.id;
- }
- catch (Exception e) {
- return "FAILED: " + e.toString();
- }
- });
- }
- }
|