Mercurial > hg > RemoteEditor > REPSessionManager
annotate rep/SessionList.java @ 359:fa041bae35f1
all code written for distributed session except gather.
author | kono |
---|---|
date | Sun, 19 Oct 2008 19:24:38 +0900 |
parents | 034acadc0cdc |
children | 1d5b608f39da |
rev | line source |
---|---|
0 | 1 package rep; |
2 | |
358 | 3 |
130 | 4 |
358 | 5 import java.util.HashMap; |
130 | 6 import rep.channel.REPSocketChannel; |
39 | 7 |
358 | 8 public class SessionList extends HashMap<Integer,Session>{ |
357 | 9 /** |
10 * | |
11 */ | |
12 private static final long serialVersionUID = 1L; | |
13 private int sid_root = 0; | |
3 | 14 |
8 | 15 public void sendSelect(int sid) { |
357 | 16 REPSocketChannel<REPCommand> channel = get(sid-1).getOwner().getChannel(); |
284 | 17 channel.write(new REPCommand(REP.SMCMD_SELECT, sid, 0, 0, 0, "")); |
8 | 18 } |
19 | |
39 | 20 // public String getXML() { |
122 | 21 ///* SessionListをXMLに書き出す。ときの形式 |
39 | 22 // * <Session> |
23 // * <editor> | |
24 // * <sid/> | |
25 // * <host/> | |
26 // * <port/> | |
27 // * <filename/> | |
28 // * </editor> | |
29 // * <editor> | |
30 // * <sid/> | |
31 // * <host/> | |
32 // * <port/> | |
33 // * </editor> | |
34 // * </Session> | |
35 // * <SessionManager> | |
36 // * <host/> | |
37 // * <port/> | |
38 // * </SessionManager> | |
39 // * <Session> | |
40 // * </Session> | |
41 | 41 // * |
39 | 42 // StringWriter str = null; |
43 // try { | |
44 // str = new StringWriter(); | |
45 // DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); | |
46 // DocumentBuilder builder = factory.newDocumentBuilder(); | |
47 // Document doc = builder.newDocument(); | |
48 // Element root = doc.getDocumentElement(); | |
49 // root = doc.createElement("SessionList"); | |
50 // for(Session session : session4){ | |
51 // Element element = doc.createElement("Session"); | |
52 // root.appendChild(element); | |
53 // Element element2 = doc.createElement("editor"); | |
54 // element.appendChild(element2); | |
55 // Editor editor = session.getMaster(); | |
56 // Element element3 = doc.createElement(editor.getHost()); | |
57 // Element element4 = doc.createElement(editor.getPort()); | |
58 // Element element5 = doc.createElement(editor.getName()); | |
59 // element5 = doc.createElement(session.getName()); | |
60 // element2.appendChild(element3); | |
61 // element2.appendChild(element4); | |
62 // element2.appendChild(element5); | |
63 // | |
64 // } | |
65 // doc.appendChild(root); | |
38 | 66 // |
39 | 67 // TransformerFactory tfactory = TransformerFactory.newInstance(); |
68 // Transformer transformer = tfactory.newTransformer(); | |
69 // StreamResult result = new StreamResult(str); | |
70 // //transformer.transform(new DOMSource(doc), new StreamResult(System.out)); | |
71 // transformer.transform(new DOMSource(doc), result); | |
72 // System.out.println(str); | |
73 //// | |
74 //// XMLEncoder e = new XMLEncoder(System.out); | |
75 //// e.writeObject(session4); | |
76 //// e.writeObject(stringlist); | |
77 //// e.close(); | |
78 // | |
79 // //System.out.println(doc); | |
80 // }catch (Exception e){ | |
81 // e.printStackTrace(); | |
82 // } | |
83 // return str.toString(); | |
41 | 84 // }*/ |
39 | 85 |
358 | 86 |
66 | 87 public Session getSession(int sid) { |
358 | 88 return get(sid); |
66 | 89 } |
90 | |
357 | 91 public int newSessionID() { |
92 return ++sid_root ; | |
77 | 93 } |
94 | |
358 | 95 public void merge(SessionList receivedSessionList) { |
359
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
96 for(Session s:receivedSessionList.values()) { |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
97 int sid = s.getSID(); |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
98 if (containsKey(sid)) { |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
99 get(sid).merge(s); |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
100 } else { |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
101 put(sid,s); |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
102 } |
fa041bae35f1
all code written for distributed session except gather.
kono
parents:
358
diff
changeset
|
103 } |
358 | 104 } |
105 | |
106 | |
0 | 107 } |