comparison src/main/java/christie/daemon/IncomingTcpConnection.java @ 32:307ac87ddcf7

add TakeFrom annotation
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Thu, 15 Feb 2018 15:48:23 +0900
parents bf8ac57409af
children 671246274719
comparison
equal deleted inserted replaced
31:e29900328fff 32:307ac87ddcf7
5 import christie.datagear.*; 5 import christie.datagear.*;
6 6
7 import christie.datagear.command.Command; 7 import christie.datagear.command.Command;
8 import christie.datagear.command.CommandType; 8 import christie.datagear.command.CommandType;
9 import christie.datagear.RemoteMessage; 9 import christie.datagear.RemoteMessage;
10 import christie.datagear.command.RemotePeekCommand;
10 import christie.datagear.command.RemoteTakeCommand; 11 import christie.datagear.command.RemoteTakeCommand;
11 import christie.datagear.dg.MessagePackDataGear; 12 import christie.datagear.dg.MessagePackDataGear;
12 import org.msgpack.MessagePack; 13 import org.msgpack.MessagePack;
13 import org.msgpack.unpacker.Unpacker; 14 import org.msgpack.unpacker.Unpacker;
14 15
59 } 60 }
60 61
61 break; 62 break;
62 63
63 case REMOTEPEEK: 64 case REMOTEPEEK:
65 cgm.getLocalDGM().runCommand(new RemotePeekCommand(msg, connection));
66 break;
64 case REMOTETAKE: 67 case REMOTETAKE:
65 68 cgm.getLocalDGM().runCommand(new RemoteTakeCommand(msg, connection));
66 RemoteTakeCommand cmd = null;
67 try {
68 cmd = new RemoteTakeCommand(msg.fromDgmName, msg.key, Class.forName(msg.clazz), connection);
69 } catch (ClassNotFoundException e) {
70 e.printStackTrace();
71 }
72
73 cgm.getLocalDGM().take(cmd);
74 69
75 break; 70 break;
76 case REPLY://待っていたwaitListに渡してcsにセット 71 case REPLY://待っていたwaitListに渡してcsにセット
77 data = new byte[unpacker.readInt()]; 72 data = new byte[unpacker.readInt()];
78 connection.socket.getInputStream().read(data); 73 connection.socket.getInputStream().read(data);
74
79 try { 75 try {
80 MessagePackDataGear dg = new MessagePackDataGear(data, Class.forName(msg.clazz)); 76 MessagePackDataGear dg = new MessagePackDataGear(data, Class.forName(msg.clazz));
81 77 cgm.getDGM(msg.fromDgmName).resolveWaitCommand(msg.key, dg);
82 DataGearManager dgm = cgm.getDGM(msg.fromDgmName);
83 Command cm = dgm.waitList.getAndRemoveCommand(msg.key);
84 cm.dg = dg;
85 dgm.runCommand(cm);
86
87 } catch (ClassNotFoundException e) { 78 } catch (ClassNotFoundException e) {
88 e.printStackTrace(); 79 e.printStackTrace();
89 } 80 }
90 81
91 break; 82 break;