# HG changeset patch # User Nozomi Teruya # Date 1455617572 -32400 # Node ID 0564f38e9bfe1c1accbb9710fc29d52510e97530 # Parent 3284428f525e49c023fee952b2e06abf64778fd3 change allow using ids only peek from Normal Code Segment diff -r 3284428f525e -r 0564f38e9bfe src/main/java/alice/codesegment/InputDataSegment.java --- a/src/main/java/alice/codesegment/InputDataSegment.java Mon Feb 15 01:16:35 2016 +0900 +++ b/src/main/java/alice/codesegment/InputDataSegment.java Tue Feb 16 19:12:52 2016 +0900 @@ -86,7 +86,7 @@ * @return Receiver of DataSegment reply */ public Receiver create(CommandType type) { - return new Receiver(this, type); + return new Receiver(this, type, metaState); }//Receiverを作成 public void recommand(Receiver receiver) { diff -r 3284428f525e -r 0564f38e9bfe src/main/java/alice/daemon/IncomingTcpConnection.java --- a/src/main/java/alice/daemon/IncomingTcpConnection.java Mon Feb 15 01:16:35 2016 +0900 +++ b/src/main/java/alice/daemon/IncomingTcpConnection.java Tue Feb 16 19:12:52 2016 +0900 @@ -77,19 +77,7 @@ cmd = new Command(type, null, null, rData, 0, 0, null, null, reverseKey); cmd.setCompressFlag(msg.compressed); - if (msg.meta){ - if (msg.compressed){ - compressedmetalmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } else { - metalmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } - } else { - if (msg.compressed){ - compressedlmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } else { - lmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } - } + runCommand(msg, cmd); break; case PEEK: @@ -97,19 +85,7 @@ cmd = new Command(type, null, null, null, msg.index, msg.seq, null, null, connection); cmd.setCompressFlag(msg.compressed); - if (msg.meta){ - if (msg.compressed){ - compressedmetalmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } else { - metalmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } - } else { - if (msg.compressed){ - compressedlmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } else { - lmanager.getDataSegmentKey(msg.key).runCommand(cmd); - } - } + runCommand(msg, cmd); break; case REMOVE: @@ -146,6 +122,22 @@ } } + private void runCommand(CommandMessage msg, Command cmd) { + if (msg.meta){ + if (msg.compressed){ + compressedmetalmanager.getDataSegmentKey(msg.key).runCommand(cmd); + } else { + metalmanager.getDataSegmentKey(msg.key).runCommand(cmd); + } + } else { + if (msg.compressed){ + compressedlmanager.getDataSegmentKey(msg.key).runCommand(cmd); + } else { + lmanager.getDataSegmentKey(msg.key).runCommand(cmd); + } + } + } + public void setReverseKey(String name) { this.reverseKey = name; setName(name+"-IncomingTcp"); diff -r 3284428f525e -r 0564f38e9bfe src/main/java/alice/datasegment/Receiver.java --- a/src/main/java/alice/datasegment/Receiver.java Mon Feb 15 01:16:35 2016 +0900 +++ b/src/main/java/alice/datasegment/Receiver.java Tue Feb 16 19:12:52 2016 +0900 @@ -17,11 +17,13 @@ public CommandType type; public String managerKey;//DSMを一意に特定。localかremoteか、どのremoteからか。 public String key; + public String meta = ""; public boolean compressedFlag = false; - public Receiver(InputDataSegment ids, CommandType type) { + public Receiver(InputDataSegment ids, CommandType type, String meta) { this.ids = ids; this.type = type; + this.meta = meta; ids.register(); } @@ -60,16 +62,23 @@ this.managerKey = managerKey; this.key = key; this.index = index; - switch (type) { - case PEEK: + + if (meta == "" && managerKey == "metalocal"){ ids.peek(this); - break; - case TAKE: - ids.take(this); - break; - default: - break; + } else{ + switch (type) { + case PEEK: + ids.peek(this); + break; + case TAKE: + ids.take(this); + + break; + default: + break; + } } + ids.setKey(); } @@ -78,7 +87,7 @@ } public void setKey(String key, int index) { - this.managerKey = "local"; + this.key = key; this.index = index; switch (type) {