view src/main/java/alice/jungle/persistent/PersistentChangeListReader.java @ 118:f64ff5bd66f5

Implements persistent for bbs app and Fixed bug JungleUpdater
author one
date Wed, 25 Dec 2013 20:02:26 +0900
parents 895ab2907db3
children 2e8034524259
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 = PersistentJournal.getMsgPackInstance();

	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() {
				
			}
		};
	}
}