view src/alice/jungle/persistence/PersistentJournal.java @ 85:e641f559559c

Added some files for persistent
author one
date Mon, 28 Oct 2013 17:21:56 +0900
parents
children bcaf28f8244d
line wrap: on
line source

package alice.jungle.persistence;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.msgpack.MessagePack;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal;

public class PersistentJournal implements Journal {
	
	private static PersistentChangeListWriter WRITER;
	private static PersistentChangeListReader READER;
	private static MessagePack msgpack;
	private static OutputStream out;
	private static InputStream in;
	
	public PersistentJournal(File file) throws FileNotFoundException {
		out = new FileOutputStream(file, true);
		in = new FileInputStream(file);
		WRITER = new PersistentChangeListWriter(out);
		READER = new PersistentChangeListReader(in);
     	msgpack = new MessagePack();		
	}
	
	@Override
	public ChangeListReader getReader() {
		return READER;
	}

	@Override
	public ChangeListWriter getWriter() {
		return WRITER;
	}
	
	public void close() throws IOException {
		out.close();
		in.close();
	}
	
	public void setOutputStream(OutputStream _out) {
		out = _out;
	}
	
	public OutputStream getOutputStream() {
		return out;
	}
	
	public void setInputStream(InputStream _in) {
		in = _in;
	}
	
	public InputStream getInputStream() {
		return in;
	}
	
	public static MessagePack getMessagePack() {
		return msgpack;
	}

}