comparison rep/Editor.java @ 308:c5be84d53c7f channel-simulator-update **INVALID**

*** empty log message ***
author kono
date Sat, 04 Oct 2008 22:12:34 +0900
parents 75192c844a8d
children 0585fd2410b8
comparison
equal deleted inserted replaced
307:e4b7af3fdf99 308:c5be84d53c7f
20 private List<REPCommand> sentMergedList; 20 private List<REPCommand> sentMergedList;
21 private REPCommandOptimizer optimizer; 21 private REPCommandOptimizer optimizer;
22 private List<REPCommand> writeQueue; 22 private List<REPCommand> writeQueue;
23 private REPCommand quit2 = null; 23 private REPCommand quit2 = null;
24 private REPLogger ns = REPLogger.singleton(); 24 private REPLogger ns = REPLogger.singleton();
25 private final int limit=100;
25 26
26 public Editor(){ 27 public Editor(){
27 this(true); 28 this(true);
28 } 29 }
29 public Editor(boolean doOptimize){ 30 public Editor(boolean doOptimize){
69 sendMergedCommand(cmds); 70 sendMergedCommand(cmds);
70 return list; 71 return list;
71 }else{ 72 }else{
72 //エディタからの新たな編集コマンド 73 //エディタからの新たな編集コマンド
73 sentList.add(command); 74 sentList.add(command);
75 assert(sentList.size()<limit);
74 translater.transSendCmd(command); 76 translater.transSendCmd(command);
75 list.add(command); 77 list.add(command);
76 } 78 }
77 }else if(eid == REP.MERGE_EID.id){ 79 }else if(eid == REP.MERGE_EID.id){
78 //マージコマンドが返ってきた 80 //マージコマンドが返ってきた
80 //マージ中にエディタからの割り込みがあった場合 82 //マージ中にエディタからの割り込みがあった場合
81 List<REPCommand> mergeAgainList = translater.getMergeAgain(); 83 List<REPCommand> mergeAgainList = translater.getMergeAgain();
82 84
83 mergeAgainList = optimizer.optimize(mergeAgainList); 85 mergeAgainList = optimizer.optimize(mergeAgainList);
84 writeQueue.addAll(mergeAgainList); 86 writeQueue.addAll(mergeAgainList);
87 assert(writeQueue.size()<limit);
85 } 88 }
86 }else{ 89 }else{
87 //他のエディタからの編集コマンド 90 //他のエディタからの編集コマンド
88 REPCommand[] cmds = translater.transReceiveCmd(command); 91 REPCommand[] cmds = translater.transReceiveCmd(command);
89 for(REPCommand cmd : cmds){ 92 for(REPCommand cmd : cmds){
95 98
96 private void sendMergedCommand(ArrayList<REPCommand> cmds) { 99 private void sendMergedCommand(ArrayList<REPCommand> cmds) {
97 for(REPCommand mergeCommand : cmds){ 100 for(REPCommand mergeCommand : cmds){
98 mergeCommand.setEID(REP.MERGE_EID.id); 101 mergeCommand.setEID(REP.MERGE_EID.id);
99 writeQueue.add(mergeCommand); 102 writeQueue.add(mergeCommand);
103 assert(writeQueue.size()<limit);
100 } 104 }
101 } 105 }
102 106
103 private boolean checkReturnedCommand(REPCommand command) { 107 private boolean checkReturnedCommand(REPCommand command) {
104 if(sentList.size() > 0){ 108 if(sentList.size() > 0){
177 file = string; 181 file = string;
178 } 182 }
179 183
180 public void send(REPCommand command) { 184 public void send(REPCommand command) {
181 writeQueue.add(command); 185 writeQueue.add(command);
186 assert(writeQueue.size()<limit);
182 } 187 }
183 188
184 public void setChannel(REPSocketChannel<REPCommand> channel) { 189 public void setChannel(REPSocketChannel<REPCommand> channel) {
185 myChannel = channel; 190 myChannel = channel;
186 } 191 }