view rep/SessionManagerList.java @ 38:de8638eb0edd

*** empty log message ***
author pin
date Sat, 10 Nov 2007 18:51:09 +0900
parents 593f915dd6ff
children c873ee0318f8
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;
	}

	public void sendSessionList(SessionList sessionlist, REPCommand command) {
		String xml = sessionlist.getXML();
		command.setString(xml);
		
		for(SocketChannel channel : list){
			REPPacketSend send = new REPPacketSend(channel);
			send.send(command);
		}
	}

	public void send(SocketChannel channel, REPCommand repCmd) {
		
	}

}