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 final class DefaultLocalServerChannel extends AbstractServerChannel
32 implements LocalServerChannel {
33
34 final ChannelConfig channelConfig;
35 final AtomicBoolean bound = new AtomicBoolean();
36 volatile LocalAddress localAddress;
37
38 DefaultLocalServerChannel(ChannelFactory factory, ChannelPipeline pipeline, ChannelSink sink) {
39 super(factory, pipeline, sink);
40 channelConfig = new DefaultServerChannelConfig();
41 fireChannelOpen(this);
42 }
43
44 public ChannelConfig getConfig() {
45 return channelConfig;
46 }
47
48 public boolean isBound() {
49 return isOpen() && bound.get();
50 }
51
52 public LocalAddress getLocalAddress() {
53 return isBound()? localAddress : null;
54 }
55
56 public LocalAddress getRemoteAddress() {
57 return null;
58 }
59
60 @Override
61 protected boolean setClosed() {
62 return super.setClosed();
63 }
64 }