view rep/SessionList.java @ 357:6ae9dcb30a12

*** empty log message ***
author kono
date Sat, 18 Oct 2008 21:28:17 +0900
parents 5ba5b7a9761b
children 034acadc0cdc
line wrap: on
line source

package rep;

import java.util.LinkedList;

import rep.channel.REPSocketChannel;
import rep.xml.SessionXMLEncoder;

public class SessionList extends LinkedList<Session>{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	LinkedList<String> stringlist = new LinkedList<String>();
	private String maxHost;
	private int sid_root = 0;
	


	public void sendSelect(int sid) {
		REPSocketChannel<REPCommand> channel = get(sid-1).getOwner().getChannel();
		channel.write(new REPCommand(REP.SMCMD_SELECT, sid, 0, 0, 0, ""));
	}

//	public String getXML() {
///* SessionListをXMLに書き出す。ときの形式
// * 	<Session>
// * 		<editor>
// * 			<sid/>
// * 			<host/>
// * 			<port/>
// * 			<filename/>
// * 		</editor>
// * 		<editor>
// * 			<sid/>
// * 			<host/>
// * 			<port/>
// * 		</editor>
// * 	</Session>
// * 	<SessionManager>
// * 		<host/>
// * 		<port/>
// * 	</SessionManager>
// * <Session>
// * </Session>
// *
//		StringWriter str = null;
//		try {
//			str = new StringWriter();
//			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//			DocumentBuilder builder = factory.newDocumentBuilder();
//			Document doc = builder.newDocument();
//			Element root = doc.getDocumentElement();
//			root = doc.createElement("SessionList");
//			for(Session session : session4){
//				Element element = doc.createElement("Session");
//				root.appendChild(element);
//				Element element2 = doc.createElement("editor");
//				element.appendChild(element2);
//				Editor editor = session.getMaster();
//				Element element3 = doc.createElement(editor.getHost());
//				Element element4 = doc.createElement(editor.getPort());
//				Element element5 = doc.createElement(editor.getName());
//				element5 = doc.createElement(session.getName());
//				element2.appendChild(element3);
//				element2.appendChild(element4);
//				element2.appendChild(element5);
//				
//			}
//			doc.appendChild(root);
//			
//			TransformerFactory tfactory = TransformerFactory.newInstance(); 
//			Transformer transformer = tfactory.newTransformer(); 
//			StreamResult result = new StreamResult(str);
//			//transformer.transform(new DOMSource(doc), new StreamResult(System.out)); 
//			transformer.transform(new DOMSource(doc), result); 
//			System.out.println(str);
////			
////			XMLEncoder e = new XMLEncoder(System.out);
////			e.writeObject(session4);
////			e.writeObject(stringlist);
////			e.close();
//			
//			//System.out.println(doc);
//		}catch (Exception e){
//			e.printStackTrace();
//		}
//		return str.toString();
//	}*/

	public LinkedList<Session> getList() {
		return new LinkedList<Session>(this);
	}

	public String toXML() {
		SessionXMLEncoder encoder = new SessionXMLEncoder(this);
		encoder.sessionListToXML();
		return null;
	}

	public int addSession(Session session) {
		int sid;
		session.setSID(sid=newSessionID());
		add(session);
		return sid;
	}

	public Session getSession(int sid) {
		for(Session session : this){
			if(session.getSID() == sid){
				return session;
			}
		}
		return get(sid - 1);
	}

	public void setMaxHost(String myHost) {
		maxHost = myHost;
	}

	public String getMaxHost() {
		return maxHost;
	}


	public int newSessionID() {
		return ++sid_root ;
	}

}