annotate rep/channel/REPSocketChannel.java @ 140:01062be677e9

*** empty log message ***
author kono
date Wed, 27 Aug 2008 20:23:39 +0900
parents 1ea856259add
children 785a3e8ea858
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
123
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
1 package rep.channel;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
2
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
3 import java.io.IOException;
137
1ea856259add *** empty log message ***
pin
parents: 136
diff changeset
4 import java.net.Socket;
136
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
5 import java.nio.ByteBuffer;
123
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
6 import java.nio.channels.ClosedChannelException;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
7 import java.nio.channels.SelectableChannel;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
8 import java.nio.channels.SelectionKey;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
9 import java.nio.channels.Selector;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
10 import java.nio.channels.SocketChannel;
140
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
11 import java.nio.channels.ServerSocketChannel;
123
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
12 import java.nio.channels.spi.SelectorProvider;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
13
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
14 public class REPSocketChannel<P> extends SelectableChannel{
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
15
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
16 private SocketChannel sc;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
17
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
18 public REPSocketChannel(SocketChannel channel) {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
19 sc = channel;
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
20 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
21
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
22 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
23 public Object blockingLock() {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
24 return sc.blockingLock();
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
25 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
26
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
27 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
28 public SelectableChannel configureBlocking(boolean block) throws IOException {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
29 return sc.configureBlocking(block);
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
30 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
31
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
32 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
33 public boolean isBlocking() {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
34 return sc.isBlocking();
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
35 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
36
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
37 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
38 public boolean isRegistered() {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
39 return sc.isRegistered();
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
40 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
41
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
42 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
43 public SelectionKey keyFor(Selector sel) {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
44 return sc.keyFor(sel);
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
45 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
46
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
47 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
48 public SelectorProvider provider() {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
49 return sc.provider();
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
50 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
51
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
52 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
53 public SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
54 return sc.register(sel, ops, att);
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
55 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
56
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
57 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
58 public int validOps() {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
59 return sc.validOps();
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
60 }
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
61
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
62 @Override
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
63 protected void implCloseChannel() throws IOException {
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
64 sc.close();
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
65 }
136
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
66
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
67 public long read(ByteBuffer header) {
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
68 // TODO Auto-generated method stub
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
69 return 0;
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
70 }
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
71
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
72 public void write(ByteBuffer buffer) throws IOException {
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
73 // TODO Auto-generated method stub
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
74
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
75 }
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
76
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
77 public boolean finishConnect() {
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
78 // TODO Auto-generated method stub
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
79 return false;
a4e2bceb9713 *** empty log message ***
pin
parents: 123
diff changeset
80 }
137
1ea856259add *** empty log message ***
pin
parents: 136
diff changeset
81
1ea856259add *** empty log message ***
pin
parents: 136
diff changeset
82 public Socket socket() {
1ea856259add *** empty log message ***
pin
parents: 136
diff changeset
83 // TODO Auto-generated method stub
1ea856259add *** empty log message ***
pin
parents: 136
diff changeset
84 return null;
1ea856259add *** empty log message ***
pin
parents: 136
diff changeset
85 }
140
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
86
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
87 public REPSocketChannel<P> create() throws IOException {
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
88 if (REPServerSocketChannel.isSimulation) {
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
89 return new ChannelSimulator<P>(null);
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
90 } else {
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
91 return new REPSocketChannel<P>(SocketChannel.open());
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
92 }
01062be677e9 *** empty log message ***
kono
parents: 137
diff changeset
93 }
123
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
94
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
95
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
96
5b1a0574b406 *** empty log message ***
pin
parents:
diff changeset
97 }