Mercurial > hg > Database > Alice
annotate src/alice/datasegment/RemoteDataSegmentManager.java @ 20:0bb03861b5cd
set name to Thread
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 15 Jan 2012 18:44:25 +0900 |
parents | 72dd27d952b0 |
children | 54bf607118ae |
rev | line source |
---|---|
12 | 1 package alice.datasegment; |
2 | |
3 import org.msgpack.type.Value; | |
4 | |
5 import alice.codesegment.CodeSegment; | |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
6 import alice.daemon.Connection; |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
7 import alice.daemon.IncomingTcpConnection; |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
8 import alice.daemon.OutboundTcpConnection; |
12 | 9 |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
10 public class RemoteDataSegmentManager extends DataSegmentManager { |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
11 |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
12 Connection connection; |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
13 |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
14 public RemoteDataSegmentManager(Connection connection) { |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
15 this.connection = connection; |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
16 new IncomingTcpConnection(connection, this).start(); |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
17 new OutboundTcpConnection(connection).start(); |
20 | 18 new Thread(replyThread, "RemoteDataSegmentManager-" |
19 + connection.socket.getInetAddress().getHostName() | |
20 + ":" + connection.socket.getPort()).start(); | |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
21 } |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
22 |
12 | 23 @Override |
24 public void put(String key, Value val) { | |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
25 connection.sendCommand(new Command(CommandType.PUT, null, key, val, 0, 0, null, null)); |
12 | 26 } |
27 | |
28 @Override | |
29 public void update(String key, Value val) { | |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
30 connection.sendCommand(new Command(CommandType.UPDATE, null, key, val, 0, 0, null, null)); |
12 | 31 } |
32 | |
33 @Override | |
18
72dd27d952b0
change InputDataSegment API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
34 public void take(DataSegmentReceiver receiver, String key, int index, CodeSegment cs) { |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
35 int seq = this.seq.getAndIncrement(); |
18
72dd27d952b0
change InputDataSegment API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
36 Command cmd = new Command(CommandType.TAKE, receiver, key, null, index, seq, replyQueue, cs); |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
37 seqHash.put(seq, cmd); |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
38 connection.sendCommand(cmd); |
12 | 39 } |
40 | |
41 @Override | |
18
72dd27d952b0
change InputDataSegment API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
42 public void peek(DataSegmentReceiver receiver, String key, int index, CodeSegment cs) { |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
43 int seq = this.seq.getAndIncrement(); |
18
72dd27d952b0
change InputDataSegment API
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
44 Command cmd = new Command(CommandType.PEEK, receiver, key, null, index, seq, replyQueue, cs); |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
45 seqHash.put(seq, cmd); |
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
46 connection.sendCommand(cmd); |
12 | 47 } |
48 | |
49 @Override | |
50 public void remove(String key) { | |
14
e3f1b21718b0
implements RemoteDataSegment
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
51 connection.sendCommand(new Command(CommandType.REMOVE, null, key, null, 0, 0, null, null)); |
12 | 52 } |
13 | 53 |
12 | 54 } |