changeset 600:0564f38e9bfe dispose

change allow using ids only peek from Normal Code Segment
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 16 Feb 2016 19:12:52 +0900
parents 3284428f525e
children 30f2c04571c2
files src/main/java/alice/codesegment/InputDataSegment.java src/main/java/alice/daemon/IncomingTcpConnection.java src/main/java/alice/datasegment/Receiver.java
diffstat 3 files changed, 38 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- 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) {
--- 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");
--- 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) {