view src/main/java/alice/jungle/persistent/PersistentChangeListReader.java @ 135:2e8034524259

Added NetworkJournal and SingletonMessageFromAlice class
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Sun, 12 Jan 2014 06:18:37 +0900
parents f64ff5bd66f5
children
line wrap: on
line source

package alice.jungle.persistent;

import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;

import org.msgpack.MessagePack;

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

public class PersistentChangeListReader  implements ChangeListReader {
	
	private InputStream in;
	MessagePack msgpack = SingletonMessageFromAlice.getInstance();

	public PersistentChangeListReader(InputStream _in) {
		in = _in;
	}
 	
	@Override
	public ChangeListReader newReader()
	{
		return null;
	}
	
	@Override 
	public ChangeList read()
	{
		try {
			final NetworkTreeOperationLog readLog = msgpack.read(in, NetworkTreeOperationLog.class);
			PersistentChangeList cl = new PersistentChangeList(readLog); 
			return cl;
		} catch (EOFException e){

		} catch (IOException e) {
		}
		return null;
	}

	@Override
	public Iterator<ChangeList> iterator() {
		return new Iterator<ChangeList>() {

			@Override
			public boolean hasNext() {
				try {
					return in.available() != 0;
				} catch (IOException e) {
					return false;
				}
			}

			@Override
			public ChangeList next() {
				return read();
			}

			@Override
			public void remove() {
				
			}
		};
	}
}