aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/BlockingQueueRequestLog.java
blob: 594af0c28f5b25e16e66d5d0b547435655d4a739 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.jdisc.http.server.jetty;

import com.yahoo.container.logging.RequestLog;
import com.yahoo.container.logging.RequestLogEntry;

import java.time.Duration;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.TimeUnit;

/**
 * @author bjorncs
 */
class BlockingQueueRequestLog implements RequestLog {

    private final BlockingQueue<RequestLogEntry> entries = new LinkedBlockingDeque<>();

    @Override public void log(RequestLogEntry entry) { entries.offer(entry); }

    RequestLogEntry poll(Duration timeout) throws InterruptedException {
        return entries.poll(timeout.toMillis(), TimeUnit.MILLISECONDS);
    }
}