1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.channel.local;
17
18 import static org.jboss.netty.channel.Channels.*;
19
20 import java.util.concurrent.atomic.AtomicBoolean;
21
22 import org.jboss.netty.channel.AbstractServerChannel;
23 import org.jboss.netty.channel.ChannelConfig;
24 import org.jboss.netty.channel.ChannelFactory;
25 import org.jboss.netty.channel.ChannelPipeline;
26 import org.jboss.netty.channel.ChannelSink;
27 import org.jboss.netty.channel.DefaultServerChannelConfig;
28
29
30
31
32
33
34
35 final class DefaultLocalServerChannel extends AbstractServerChannel
36 implements LocalServerChannel {
37
38 final ChannelConfig channelConfig;
39 final AtomicBoolean bound = new AtomicBoolean();
40 volatile LocalAddress localAddress;
41
42 DefaultLocalServerChannel(ChannelFactory factory, ChannelPipeline pipeline, ChannelSink sink) {
43 super(factory, pipeline, sink);
44 channelConfig = new DefaultServerChannelConfig();
45 fireChannelOpen(this);
46 }
47
48 public ChannelConfig getConfig() {
49 return channelConfig;
50 }
51
52 public boolean isBound() {
53 return isOpen() && bound.get();
54 }
55
56 public LocalAddress getLocalAddress() {
57 return isBound()? localAddress : null;
58 }
59
60 public LocalAddress getRemoteAddress() {
61 return null;
62 }
63
64 @Override
65 protected boolean setClosed() {
66 return super.setClosed();
67 }
68 }