annotate rep/EditorList.java @ 148:6a5fe529b192

*** empty log message ***
author pin
date Thu, 28 Aug 2008 00:11:30 +0900
parents 1ea856259add
children 3a2c6c2f9761
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
1 package rep;
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
2
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
3 import java.nio.channels.SocketChannel;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
4 import java.util.LinkedList;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
5
131
617a47cb0150 *** empty log message ***
pin
parents: 122
diff changeset
6 import rep.channel.REPSocketChannel;
617a47cb0150 *** empty log message ***
pin
parents: 122
diff changeset
7
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
8 public class EditorList {
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
9
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
10 private int numberOfEditor;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
11 private LinkedList<Editor> editorList = new LinkedList<Editor>();
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
12
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
13 public void sendJoinAck(REPCommand repCmd) {
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
14 Editor editor = null;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
15 for(Editor editor2 : editorList){
24
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
16 error(String.valueOf(editor2.getEID()), String.valueOf(repCmd.eid));
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
17 if(editor2.getEID() == repCmd.eid){
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
18 editor = editor2;
24
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
19 break;
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
20 }
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
21 }
24
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
22 error(editor);
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
23 REPPacketSend send = new REPPacketSend(editor.getChannel());
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
24 send.send(repCmd);
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
25 }
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
26
24
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
27
137
1ea856259add *** empty log message ***
pin
parents: 132
diff changeset
28 public void sendJoinAck(REPSocketChannel channel, REPCommand repCmd) {
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
29 REPCommand command = repCmd;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
30 command.setCMD(REP.SMCMD_JOIN_ACK);
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
31
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
32 REPPacketSend send = new REPPacketSend(channel);
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
33 send.send(command);
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
34 }
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
35
132
70fc1e70652c *** empty log message ***
kent
parents: 131
diff changeset
36 public int addEditor(REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
37 numberOfEditor++;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
38 editorList.add(new Editor(numberOfEditor, channel));
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
39 return numberOfEditor;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
40 }
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
41
132
70fc1e70652c *** empty log message ***
kent
parents: 131
diff changeset
42 public void addEditor(REPSocketChannel<REPCommand> channel) {
23
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
43 editorList.add(new Editor(0, channel));
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
44 }
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
45
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
46 public void setEID(REPCommand repCmd) {
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
47 for(Editor editor : editorList){
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
48 if(editor.getEID() == 0){
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
49 editor.setEID(repCmd.eid);
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
50 break;
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
51 }
01657c033761 *** empty log message ***
pin
parents: 22
diff changeset
52 }
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
53 }
24
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
54
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
55 private void error(Object obj) {
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
56 if(obj == null){
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
57 System.out.println("null!");
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
58 }
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
59 }
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
60 private void error(String str1, String str2){
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
61 if(str1.equals(str2)){
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
62 return;
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
63 }else{
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
64 System.out.println("Not equals! str1:str2");
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
65 }
7012a944e58f *** empty log message ***
pin
parents: 23
diff changeset
66 }
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
67
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
68
132
70fc1e70652c *** empty log message ***
kent
parents: 131
diff changeset
69 public void sendPutAck(REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
70 REPPacketSend send = new REPPacketSend(channel);
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
71 send.send(repCmd);
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
72 }
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
73
132
70fc1e70652c *** empty log message ***
kent
parents: 131
diff changeset
74 public void send(REPSocketChannel<REPCommand> channel, REPCommand command){
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
75 REPPacketSend send = new REPPacketSend(channel);
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
76 send.send(command);
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
77 }
593f915dd6ff for JOIN and PUT Testing
pin
parents: 24
diff changeset
78
76
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
79
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
80 public void setHost(String myHost) {
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
81 // TODO Auto-generated method stub
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
82 for(Editor editor : editorList) {
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
83 editor.setHost(myHost);
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
84 }
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
85 }
97ca5f5447cd *** empty log message ***
pin
parents: 31
diff changeset
86
85
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
87
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
88 public Editor getEditor(String hostport) {
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
89 // TODO Auto-generated method stub
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
90 for(Editor editor : editorList){
86
cd2b4d8fff9b *** empty log message ***
pin
parents: 85
diff changeset
91 String[] splited = hostport.split(":");
87
705d4b4baf70 *** empty log message ***
pin
parents: 86
diff changeset
92 System.out.println(splited[0] + "," + editor.getHost());
86
cd2b4d8fff9b *** empty log message ***
pin
parents: 85
diff changeset
93 if(splited[0].equals(editor.getHost())){
92
ec0b37884758 *** empty log message ***
pin
parents: 91
diff changeset
94 return editor;
85
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
95 }
92
ec0b37884758 *** empty log message ***
pin
parents: 91
diff changeset
96
86
cd2b4d8fff9b *** empty log message ***
pin
parents: 85
diff changeset
97 //String hostandport = editor.getHost() + ":" + editor.getPort();
cd2b4d8fff9b *** empty log message ***
pin
parents: 85
diff changeset
98 //if(hostport.equals(hostandport)){
cd2b4d8fff9b *** empty log message ***
pin
parents: 85
diff changeset
99 // return editor;
cd2b4d8fff9b *** empty log message ***
pin
parents: 85
diff changeset
100 //}
85
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
101 }
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
102 return null;
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
103 }
d5cd4d103eea *** empty log message ***
pin
parents: 76
diff changeset
104
91
b299e82cc05f *** empty log message ***
pin
parents: 87
diff changeset
105
106
eded5012be89 *** empty log message ***
pin
parents: 92
diff changeset
106 public int addEditor(Editor editor) {
eded5012be89 *** empty log message ***
pin
parents: 92
diff changeset
107 numberOfEditor++;
91
b299e82cc05f *** empty log message ***
pin
parents: 87
diff changeset
108 editorList.add(editor);
106
eded5012be89 *** empty log message ***
pin
parents: 92
diff changeset
109 return numberOfEditor;
91
b299e82cc05f *** empty log message ***
pin
parents: 87
diff changeset
110 }
b299e82cc05f *** empty log message ***
pin
parents: 87
diff changeset
111
122
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
112
137
1ea856259add *** empty log message ***
pin
parents: 132
diff changeset
113 public Editor getEditor(REPSocketChannel channel) {
122
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
114 // TODO Auto-generated method stub
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
115 Editor editor1 = null;
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
116 for(Editor editor: editorList){
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
117 if(channel == editor.getChannel()){
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
118 editor1 = editor;
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
119 }
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
120 }
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
121 return editor1;
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
122 }
790c8dd42a7b *** empty log message ***
kono
parents: 106
diff changeset
123
22
850a9cc4963a *** empty log message ***
pin
parents:
diff changeset
124 }