41 lines
924 B
Java
41 lines
924 B
Java
package it.cavallium.filequeue;
|
|
|
|
import com.squareup.tape2.QueueFile;
|
|
import java.io.IOException;
|
|
import java.nio.file.Path;
|
|
|
|
public final class DiskQueueToConsumer<T> implements IQueueToConsumer<T> {
|
|
|
|
private final QueueToConsumer<T> queue;
|
|
private final QueueFile queueFile;
|
|
|
|
public DiskQueueToConsumer(Path file,
|
|
Serializer<T> serializer,
|
|
Deserializer<T> deserializer,
|
|
QueueConsumer<T> consumer) throws IOException {
|
|
QueueFile queueFile = new QueueFile.Builder(file.toFile()).build();
|
|
this.queueFile = queueFile;
|
|
this.queue = new QueueToConsumer<>(new SimpleQueueFile<>(queueFile, serializer, deserializer), consumer);
|
|
}
|
|
|
|
@Override
|
|
public void add(T value) {
|
|
queue.add(value);
|
|
}
|
|
|
|
@Override
|
|
public void close() {
|
|
queue.close();
|
|
try {
|
|
queueFile.close();
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void startQueue() {
|
|
queue.startQueue();
|
|
}
|
|
}
|