package com.codecademy.eventhub.storage;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import org.fusesource.hawtjournal.api.Journal;
import org.fusesource.hawtjournal.api.Location;
import java.io.File;
import java.io.IOException;
public class JournalUtil {
public static byte[] locationToBytes(Location location) throws IOException {
ByteArrayDataOutput dos = ByteStreams.newDataOutput();
location.writeExternal(dos);
return dos.toByteArray();
}
public static Journal createJournal(String dirPath, int fileSize, int writeBatchSize) {
Journal journal = new Journal();
File directory = new File(dirPath);
//noinspection ResultOfMethodCallIgnored
directory.mkdirs();
journal.setDirectory(directory);
journal.setMaxFileLength(fileSize);
journal.setMaxWriteBatchSize(writeBatchSize);
try {
journal.open();
} catch (IOException e) {
throw new RuntimeException(e);
}
return journal;
}
}