Mercurial > hg > RemoteEditor > Eclipse
changeset 19:cc68a00f9850
*** empty log message ***
author | pin |
---|---|
date | Tue, 31 Oct 2006 16:30:54 +0900 |
parents | e87cae12907e |
children | e5472194938a |
files | bin/remoteeditor/editors/RemoteEditor.class bin/remoteeditor/network/REP.class src/remoteeditor/editors/RemoteEditor.java src/remoteeditor/network/REP.java src/sample/merge/Merge.java src/sample/merge/MergeSample.java |
diffstat | 6 files changed, 92 insertions(+), 41 deletions(-) [+] |
line wrap: on
line diff
--- a/src/remoteeditor/editors/RemoteEditor.java Tue Oct 31 12:11:11 2006 +0900 +++ b/src/remoteeditor/editors/RemoteEditor.java Tue Oct 31 16:30:54 2006 +0900 @@ -85,7 +85,7 @@ } }else { try { - rep.delete(line, length, lineText); + rep.delete(line+1, length, "\n"); } catch (IOException e) { e.printStackTrace(); }
--- a/src/remoteeditor/network/REP.java Tue Oct 31 12:11:11 2006 +0900 +++ b/src/remoteeditor/network/REP.java Tue Oct 31 16:30:54 2006 +0900 @@ -49,6 +49,7 @@ List myCmdList = new LinkedList(); List othersCmdList = new LinkedList(); + private String filename; public REP() throws Exception { String host = "localhost"; @@ -79,6 +80,7 @@ dialog = new InputDialog(shell, "repput", "read packet:" + cmd +", "+ sid +", "+ eid +", "+ seqid +", "+ lineno +", "+ textsiz +", "+ string, "hugo", null); if(dialog.open() == Window.OK){ + filename = dialog.getValue(); put(); } @@ -99,7 +101,7 @@ } public void put() throws Exception { - sc.write(pack(REP_PUT_CMD, sid, eid, seqid, lineno, "filename")); + sc.write(pack(REP_PUT_CMD, sid, eid, seqid, lineno, filename)); unpack(); System.out.println("read packet:" + cmd +", "+ sid +", "+ eid +", "+ seqid +", "+ lineno +", "+ textsiz +", "+ string); }
--- a/src/sample/merge/Merge.java Tue Oct 31 12:11:11 2006 +0900 +++ b/src/sample/merge/Merge.java Tue Oct 31 16:30:54 2006 +0900 @@ -1,52 +1,49 @@ package sample.merge; import java.util.LinkedList; +import java.util.List; + +import remoteeditor.network.REP; public class Merge { - static final int REP_INSERT_CMD = 6; - static final int REP_INSERT_ACK_CMD = 7; - static final int REP_JOIN_CMD = 41; - static final int REP_JOIN_ACK_CMD = 42; - static final int REP_PUT_CMD = 45; - static final int REP_PUT_ACK_CMD = 46; - static final int REP_SELECT_CMD = 47; - static final int REP_SELECT_ACK_CMD = 48; - static final int REP_QUIT_CMD = 53; - static final int REP_QUIT_ACK_CMD = 54; + + public static void main(String[] args) throws Exception{ + List userCmdList = new LinkedList(); + List tokenCmdList = new LinkedList(); + + System.out.println("---------- パターン2 ----------"); + userCmdList.add(new Rep_Cmd(REP.REP_INSERT_CMD, 1, 1, 0, 10, 4, "test")); + System.out.println("UserList : " + userCmdList.toString()); + tokenCmdList.add(new Rep_Cmd(REP.REP_INSERT_CMD, 1, 2, 0, 12, 5, "test3")); + tokenCmdList.add(new Rep_Cmd(REP.REP_INSERT_CMD, 1, 2, 0, 15, 5, "test4")); + System.out.println("TokenList : " + tokenCmdList.toString()); + new MergeSample(userCmdList, tokenCmdList); + System.out.println(); + System.out.println("NewUserList : " + userCmdList.toString()); + System.out.println("NewTokenList : " + tokenCmdList.toString()); - private static LinkedList inUserList; - private LinkedList inTokenList; - - private LinkedList outUserList; - private LinkedList outTokenList; - - protected Merge() { - } - - public Merge(LinkedList inUserList, LinkedList inTokenList) { - this.inUserList = inUserList; - this.inTokenList = inTokenList; - } - - public byte[] mergeRepCommand() { + System.out.println(""); - return null; - } - public int addList(int i, int j) { + System.out.println("---------- パターン2 ----------"); + userCmdList = new LinkedList(); + tokenCmdList = new LinkedList(); + userCmdList.add(new Rep_Cmd(REP.REP_INSERT_CMD, 1, 1, 0, 10, 4, "test")); + System.out.println("UserList : " + userCmdList.toString()); + tokenCmdList.add(new Rep_Cmd(REP.REP_INSERT_CMD, 1, 2, 0, 5, 5, "test3")); + tokenCmdList.add(new Rep_Cmd(REP.REP_INSERT_CMD, 1, 2, 0, 15, 5, "test4")); + System.out.println("TokenList : " + tokenCmdList.toString()); + new MergeSample(userCmdList, tokenCmdList); + System.out.println(); + System.out.println("NewUserList : " + userCmdList.toString()); + System.out.println("NewTokenList : " + tokenCmdList.toString()); - return i+j; - } - - public static void main(String[] args) throws Exception { - Merge merge = new Merge(); - LinkedList inList = new LinkedList(); - inList.add(new Rep_Cmd(47,1,0,0,0,0,"test")); - inList.add(new Rep_Cmd(41,1,0,0,0,0,"tesu")); - inList.add(new Rep_Cmd(41,1,0,0,0,0,"tesu")); - inList.add(new Rep_Cmd(41,1,0,0,0,0,"tesu")); - inUserList.add(new Rep_Cmd(41,1,0,0,0,0,"tesu")); } + + public Merge(){ + + } + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/sample/merge/MergeSample.java Tue Oct 31 16:30:54 2006 +0900 @@ -0,0 +1,52 @@ +package sample.merge; + +import java.util.Iterator; +import java.util.List; + +import remoteeditor.network.REP; + +public class MergeSample { + List userList; + List tokenList; + private int REP_IGNORE = -1; + public MergeSample(List userList, List tokenList){ + this.userList = userList; + this.tokenList = tokenList; + merge(); + } + + + void merge(){ + Iterator userListIterator = userList.iterator(); + while(userListIterator.hasNext()){ + Iterator tokenListIterator = tokenList.iterator(); + Rep_Cmd userCmd = (Rep_Cmd)userListIterator.next(); + if(userCmd.stat == REP_IGNORE) continue; /* 削除される(予定)のREPコマンドの比較は無視 */ + while(tokenListIterator.hasNext()){ + Rep_Cmd tokenCmd =(Rep_Cmd)tokenListIterator.next(); + if(tokenCmd.stat == REP_IGNORE) continue; /* 削除される(予定)のREPコマンドの比較は無視 */ + if(userCmd.stat == REP_IGNORE) break; + if(userCmd.lineno < tokenCmd.lineno) { /* UsersLineNumber < TokensLineNumber */ + if(userCmd.cmd == REP.REP_INSERT_CMD){ + tokenCmd.lineno++; + }else if(userCmd.cmd == REP.REP_DELETE_CMD){ + tokenCmd.lineno--; + } + }else if(userCmd.lineno > tokenCmd.lineno){ /* UsersLineNumber > TokensLineNumber */ + if(tokenCmd.cmd == REP.REP_INSERT_CMD){ + userCmd.lineno++; + }else if(tokenCmd.cmd == REP.REP_DELETE_CMD){ + userCmd.lineno--; + } + }else if(userCmd.lineno == tokenCmd.lineno){ /* UsersLineNumber == TokensLineNumber */ + /* + * 行番号が重なるとREPコマンドの競合が起こるので、 + * どちらかが譲らないといけない。 + * uid が小さい方を優先(h_pricmdに)し、 + * uid が大きい方(l_pricmd)を変更する。 + */ + } + } + } + } +}