view rep/SessionManagerList.java @ 25:2b4863af8804

*** empty log message ***
author pin
date Fri, 09 Nov 2007 16:58:42 +0900
parents 2d4bab638a71
children 593f915dd6ff
line wrap: on
line source

package rep;

import java.nio.channels.SocketChannel;
import java.util.LinkedList;
import java.util.List;

public class SessionManagerList {

	private List<SocketChannel> list = new LinkedList<SocketChannel>();
	private int mySMID;
	private SocketChannel master;

	public void add(SocketChannel channel) {
		list.add(channel);
	}

	public void sendUpdate(int sessionID, String string) {
		for(SocketChannel channel : list){
			REPPacketSend send = new REPPacketSend(channel);
			send.send(new REPCommand(REP.SMCMD_UPDATE, 0, mySMID, 0, 0, string.length(), string));
		}
	}

	public void sendJoin(REPCommand command) {
		for(SocketChannel channel : list){
			REPPacketSend send = new REPPacketSend(channel);
			send.send(command);
		}
	}
	
	public void sendUpdateUp(REPCommand command){
		REPPacketSend send = new REPPacketSend(master);
		command.setCMD(REP.SMCMD_UPDATE_UP);
		send.send(command);
	}
	
	public void sendUpdateDown(REPCommand command){
		command.setCMD(REP.SMCMD_UPDATE_DOWN);
		for(SocketChannel channel : list){
			if(channel == master) continue;
			REPPacketSend send = new REPPacketSend(channel);
			send.send(command);
		}
	}
	
	public void setMaster(SocketChannel channel){
		this.master = channel;
	}

}