Mercurial > hg > Members > nobuyasu > jungle-network
diff src/alice/jungle/codesegment/LogUpdateCodeSegment.java @ 52:61b2de3f7730
add HashSetDataSegment and HashLogUpdateCodeSegment.
fix bugs
author | one |
---|---|
date | Sat, 13 Jul 2013 17:10:14 +0900 |
parents | 9e782b4eb06e |
children | ccfe9b5e8f11 |
line wrap: on
line diff
--- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java Sat Jul 13 15:59:47 2013 +0900 +++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java Sat Jul 13 17:10:14 2013 +0900 @@ -11,30 +11,37 @@ import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; +import alice.jungle.datasegment.HashSetDataSegment; import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer; import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; public class LogUpdateCodeSegment extends CodeSegment { - public Receiver arg1 = ids.create(CommandType.PEEK); - public Receiver host = ids.create(CommandType.PEEK); + Receiver parentLog = ids.create(CommandType.PEEK); + Receiver host = ids.create(CommandType.PEEK); + Receiver hashLog = ids.create(CommandType.PEEK); public LogUpdateCodeSegment() { - arg1.setKey("parent", "log"); + parentLog.setKey("parent", "log"); host.setKey("host"); + hashLog.setKey("hashLog"); } public LogUpdateCodeSegment(int index) { - arg1.setKey("parent", "log", index); + parentLog.setKey("parent", "log", index); host.setKey("host"); + hashLog.setKey("hashLog"); } public void run() { System.out.println("--LogUpdateCodeSegment--"); - int index = arg1.index; + int index = parentLog.index; String h = host.asString(); - DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class); - if(updaterIsMe(h, container)) { + DefaultTreeOperationLogContainer container = parentLog.asClass(DefaultTreeOperationLogContainer.class); + HashSetDataSegment ds = hashLog.asClass(HashSetDataSegment.class); + System.out.println(container.getHashLogString()); + if(ds.hash.contains(container.getHashLogString())) { + ods.update("hashLog", ds); new LogUpdateCodeSegment(index); return; } @@ -61,6 +68,9 @@ if(either.isA()) { throw new IllegalStateException(); } + ds.hash.add(container.getHashLogString()); + ods.update("hashLog", ds); + System.out.println("ods.put log container"); ods.put("log", container); new LogUpdateCodeSegment(index); }