annotate src/main/java/alice/daemon/MulticastConnection.java @ 419:aefbe41fcf12 dispose

change tab to space
author sugi
date Tue, 15 Jul 2014 16:00:22 +0900
parents 60eee1fb0fd3
children 2f2623484b77
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
360
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
1 package alice.daemon;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
2
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
3 import java.io.IOException;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
4 import java.net.SocketAddress;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
5 import java.nio.ByteBuffer;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
6 import java.nio.channels.DatagramChannel;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
7
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
8 import alice.codesegment.SingletonMessage;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
9 import alice.datasegment.Command;
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
10
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
11 public class MulticastConnection extends Connection {
419
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
12 private DatagramChannel dc;
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
13 private SocketAddress sAddr;
360
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
14
419
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
15 public MulticastConnection(DatagramChannel d, SocketAddress s) {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
16 dc = d;
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
17 sAddr = s;
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
18 }
360
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
19
419
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
20 // may need to add infomation who send on ds.
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
21 @Override
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
22 public synchronized void write(Command cmd){
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
23 CommandMessage cmdMsg = cmd.convert();
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
24 ByteBuffer buffer;
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
25 try {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
26 buffer = ByteBuffer.wrap(SingletonMessage.getInstance().write(cmdMsg));
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
27 while (buffer.hasRemaining()){
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
28 dc.send(buffer, sAddr);
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
29 }
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
30 } catch (IOException e) {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
31 e.printStackTrace();
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
32 }
360
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
33
419
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
34 }
360
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
35
419
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
36 @Override
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
37 public void close(){
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
38 try {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
39 dc.close();
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
40 } catch (IOException e) {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
41 e.printStackTrace();
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
42 }
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
43 }
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
44
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
45 public void receive(ByteBuffer receiveData){
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
46 try {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
47 dc.receive(receiveData);
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
48 } catch (IOException e) {
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
49 e.printStackTrace();
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
50 }
aefbe41fcf12 change tab to space
sugi
parents: 361
diff changeset
51 }
360
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
52
6cf08aebfc31 add MulticastConnection and DataSegmentManager
sugi
parents:
diff changeset
53 }