view src/main/java/suikwasha/distributedalgorithm/framework/MessageChain.java @ 0:38a110b13db1

added SimpleDistributedAlgorithmFramework. added NaiveAlgorithm added ChangRobertsAlgorithm added PertersonAlgorithm
author suikwasha
date Fri, 19 Oct 2012 00:05:41 +0900
parents
children
line wrap: on
line source

package suikwasha.distributedalgorithm.framework;

import java.util.Iterator;

import fj.data.List;

public class MessageChain implements Iterable<Message>
{
	private static final List<Message> NIL_LIST = List.nil();
	private final List<Message> list;
	public static final MessageChain NIL_MESSAGECHAIN = new MessageChain();
	
	private MessageChain()
	{
		list = NIL_LIST;
	}
	
	private MessageChain(List<Message> _list,Message _message)
	{
		list = _list.snoc(_message);
	}
	
	public MessageChain add(Message _message)
	{
		return new MessageChain(list,_message);
	}
	
	public long getMessageCount()
	{
		return list.length();
	}

	public Iterator<Message> iterator()
	{
		return list.iterator();
	}
}