view src/alice/jungle/persistence/PersistentChangeListWriter.java @ 86:bcaf28f8244d

Added PersistentChageList and PersistentJournalTest
author one
date Tue, 29 Oct 2013 16:52:12 +0900
parents e641f559559c
children f142dd4abc74
line wrap: on
line source

package alice.jungle.persistence;

import java.io.IOException;
import java.io.OutputStream;

import org.msgpack.MessagePack;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
import alice.jungle.operations.NetworkTreeOperationLog;

public class PersistentChangeListWriter implements ChangeListWriter {
	
	MessagePack msgpack = NetworkJournal.getMessagePack();
	OutputStream out;
	
	public PersistentChangeListWriter(OutputStream _out) {
		out = _out;
	}
	
	@Override
	public Result write(ChangeList _operations)
	{
		NetworkTreeOperationLog log = new NetworkTreeOperationLog(_operations);
		try {
			msgpack.write(out, log);
			out.flush();
		} catch (IOException e) {
			return null;
		}
		return Result.SUCCESS;
	}

	public Result write(PersistentChangeSet cs)
	{
		NetworkTreeOperationLog log = new NetworkTreeOperationLog(cs.uuid(), cs.getTreeName(),cs.getChangeList());
		try {
			msgpack.write(out, log);
			out.flush();
		} catch (IOException e) {
			return null;
		}
		return Result.SUCCESS;
	}

}