view src/main/java/alice/jungle/persistent/PersistentChangeListReader.java @ 195:82698be06c6c default tip

change index TreeMap
author tatsuki
date Tue, 28 Apr 2015 07:51:41 +0900
parents 2e8034524259
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() {
				
			}
		};
	}
}