View Javadoc

1   /*
2    *   @(#) $Id: DatagramSessionConfig.java 210062 2005-07-11 03:52:38Z trustin $
3    *
4    *   Copyright 2004 The Apache Software Foundation
5    *
6    *   Licensed under the Apache License, Version 2.0 (the "License");
7    *   you may not use this file except in compliance with the License.
8    *   You may obtain a copy of the License at
9    *
10   *       http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *   Unless required by applicable law or agreed to in writing, software
13   *   distributed under the License is distributed on an "AS IS" BASIS,
14   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   *   See the License for the specific language governing permissions and
16   *   limitations under the License.
17   *
18   */
19  package org.apache.mina.io.datagram;
20  
21  import java.net.SocketException;
22  import java.nio.channels.DatagramChannel;
23  
24  import org.apache.mina.common.BaseSessionConfig;
25  import org.apache.mina.common.SessionConfig;
26  import org.apache.mina.io.IoSession;
27  import org.apache.mina.protocol.ProtocolSession;
28  
29  /***
30   * A {@link SessionConfig} for datagram transport (UDP/IP).
31   * You can downcast {@link SessionConfig} instance returned by
32   * {@link IoSession#getConfig()} or {@link ProtocolSession#getConfig()}
33   * if you've created datagram session using {@link DatagramAcceptor} or 
34   * {@link DatagramConnector}.
35   * 
36   * @author Trustin Lee (trustin@apache.org)
37   * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $,
38   */
39  public class DatagramSessionConfig extends BaseSessionConfig
40  {
41      private final DatagramChannel ch;
42  
43      DatagramSessionConfig( DatagramChannel ch )
44      {
45          this.ch = ch;
46      }
47  
48      public boolean getReuseAddress() throws SocketException
49      {
50          return ch.socket().getReuseAddress();
51      }
52  
53      public void setReuseAddress( boolean on ) throws SocketException
54      {
55          ch.socket().setReuseAddress( on );
56      }
57  
58      public int getTrafficClass() throws SocketException
59      {
60          return ch.socket().getTrafficClass();
61      }
62  
63      public void setTrafficClass( int tc ) throws SocketException
64      {
65          ch.socket().setTrafficClass( tc );
66      }
67  }