PageRenderTime 23ms CodeModel.GetById 19ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/protocols/ss7/m3ua/impl/src/main/java/org/mobicents/protocols/ss7/m3ua/impl/tcp/TcpServerChannel.java

http://mobicents.googlecode.com/
Java | 87 lines | 27 code | 8 blank | 52 comment | 0 complexity | 7c9d3b441652e5fa2e945dd7a1fae9fb MD5 | raw file
 1/*
 2 * JBoss, Home of Professional Open Source
 3 * Copyright 2011, Red Hat, Inc. and individual contributors
 4 * by the @authors tag. See the copyright.txt in the distribution for a
 5 * full listing of individual contributors.
 6 *
 7 * This is free software; you can redistribute it and/or modify it
 8 * under the terms of the GNU Lesser General Public License as
 9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */
22
23package org.mobicents.protocols.ss7.m3ua.impl.tcp;
24
25import java.io.IOException;
26import java.net.SocketAddress;
27import java.nio.channels.ServerSocketChannel;
28import java.nio.channels.spi.AbstractSelectableChannel;
29import org.mobicents.protocols.ss7.m3ua.impl.M3UAChannelImpl;
30import org.mobicents.protocols.ss7.m3ua.impl.M3UAServerChannelImpl;
31
32/**
33 * Implements M3UA server channel over TCP/IP
34 * @author kulikov
35 */
36public class TcpServerChannel extends M3UAServerChannelImpl {
37    private TcpProvider provider;
38    /**
39     * Creates new server channel.
40     * 
41     * @param channel the undelying TCP server socket channel
42     * @throws java.io.IOException
43     */
44    protected TcpServerChannel(TcpProvider provider, AbstractSelectableChannel channel) throws IOException {        
45        super(channel);
46        this.provider = provider;
47    }
48    
49    /**
50     * Opens new M3UA channel.
51     * 
52     * @return the new M3UA channel
53     * @throws java.io.IOException
54     */
55    public static TcpServerChannel open(TcpProvider provider) throws IOException {
56        return new TcpServerChannel(provider, ServerSocketChannel.open());
57    }
58
59    /**
60     * (Non Java-doc.)
61     * 
62     * @see org.mobicents.protocols.ss7.m3ua.M3UAServerChannel#accept() 
63     */
64    public M3UAChannelImpl accept() throws IOException {
65        return new TcpChannel(provider,((ServerSocketChannel)channel).accept());
66    }
67
68    /**
69     * (Non Java-doc.)
70     * 
71     * @see org.mobicents.protocols.ss7.m3ua.M3UAServerChannel#bind(java.net.SocketAddress) 
72     */
73    public void bind(SocketAddress address) throws IOException {
74        ((ServerSocketChannel)channel).socket().bind(address);
75    }
76
77    /**
78     * (Non Java-doc.)
79     * 
80     * @see org.mobicents.protocols.ss7.m3ua.M3UAServerChannel#close() 
81     */
82    public void close() throws IOException {
83        ((ServerSocketChannel)channel).close();
84        ((ServerSocketChannel)channel).socket().close();
85    }
86
87}