| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.directory.server.protocol.shared.transport; |
| |
| |
| import org.apache.mina.core.service.IoAcceptor; |
| |
| |
| public abstract class AbstractTransport implements Transport |
| { |
| /** The server address */ |
| private String address; |
| |
| /** The service's port */ |
| private int port = -1; |
| |
| /** A flag set if SSL is enabled */ |
| private boolean sslEnabled = false; |
| |
| /** The number of threads to use for the IoAcceptor executor */ |
| private int nbThreads; |
| |
| /** The backlog for the transport services */ |
| private int backlog; |
| |
| /** The IoAcceptor used to accept requests */ |
| protected IoAcceptor acceptor; |
| |
| /** The default backlog queue size */ |
| protected static final int DEFAULT_BACKLOG_NB = 50; |
| |
| /** The default hostname */ |
| protected static final String LOCAL_HOST = "localhost"; |
| |
| /** The default number of threads */ |
| protected static final int DEFAULT_NB_THREADS = 3; |
| |
| |
| /** |
| * Creates an instance of an Abstract Transport class. |
| */ |
| public AbstractTransport() |
| { |
| address = null; |
| nbThreads = DEFAULT_NB_THREADS; |
| port = -1; |
| backlog = DEFAULT_BACKLOG_NB; |
| } |
| |
| |
| /** |
| * Creates an instance of an Abstract Transport class, using localhost |
| * and port. |
| * |
| * @param port The port |
| */ |
| public AbstractTransport( int port ) |
| { |
| this.address = "localhost"; |
| this.port = port; |
| } |
| |
| |
| /** |
| * Creates an instance of an Abstract Transport class, using localhost |
| * and port. |
| * |
| * @param port The port |
| * @param nbThreads The number of threads to create in the acceptor |
| */ |
| public AbstractTransport( int port, int nbThreads ) |
| { |
| this.address = "localhost"; |
| this.port = port; |
| this.nbThreads = nbThreads; |
| } |
| |
| |
| /** |
| * Creates an instance of an Abstract Transport class, using the given address |
| * and port. |
| * |
| * @param address The address |
| * @param port The port |
| */ |
| public AbstractTransport( String address, int port ) |
| { |
| this.address = address; |
| this.port = port; |
| } |
| |
| |
| /** |
| * Creates an instance of the AbstractTransport class on LocalHost |
| * @param port The port |
| * @param nbThreads The number of threads to create in the acceptor |
| * @param backLog The queue size for incoming messages, waiting for the |
| * acceptor to be ready |
| */ |
| public AbstractTransport( int port, int nbThreads, int backLog ) |
| { |
| this.address = "localHost"; |
| this.port = port; |
| this.nbThreads = nbThreads; |
| this.backlog = backLog; |
| } |
| |
| |
| /** |
| * Creates an instance of the AbstractTransport class |
| * @param address The address |
| * @param port The port |
| * @param nbThreads The number of threads to create in the acceptor |
| * @param backLog The queue size for incoming messages, waiting for the |
| * acceptor to be ready |
| */ |
| public AbstractTransport( String address, int port, int nbThreads, int backLog ) |
| { |
| this.address = address; |
| this.port = port; |
| this.nbThreads = nbThreads; |
| this.backlog = backLog; |
| } |
| |
| |
| /** |
| * Initialize the Acceptor if needed |
| */ |
| public abstract void init(); |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public int getPort() |
| { |
| return port; |
| } |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public void setPort( int port ) |
| { |
| this.port = port; |
| } |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public String getAddress() |
| { |
| return address; |
| } |
| |
| |
| /** |
| * Stores the Address in this transport |
| * |
| * @param address the Address to store |
| */ |
| public void setAddress( String address ) |
| { |
| this.address = address; |
| } |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public abstract IoAcceptor getAcceptor(); |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public int getNbThreads() |
| { |
| return nbThreads; |
| } |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public void setNbThreads( int nbThreads ) |
| { |
| this.nbThreads = nbThreads; |
| } |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public int getBackLog() |
| { |
| return backlog; |
| } |
| |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public void setBackLog( int backLog ) |
| { |
| this.backlog = backLog; |
| } |
| |
| |
| /** |
| * Enable or disable SSL |
| * @param sslEnabled if <code>true</code>, SSL is enabled. |
| */ |
| public void setEnableSSL( boolean sslEnabled ) |
| { |
| this.sslEnabled = sslEnabled; |
| } |
| |
| |
| /** |
| * Enable or disable SSL |
| * @param sslEnabled if <code>true</code>, SSL is enabled. |
| */ |
| public void enableSSL( boolean sslEnabled ) |
| { |
| this.sslEnabled = sslEnabled; |
| } |
| |
| |
| /** |
| * @return <code>true</code> id SSL is enabled for this transport |
| */ |
| public boolean isSSLEnabled() |
| { |
| return sslEnabled; |
| } |
| |
| |
| /** |
| * @return <code>true</code> id SSL is enabled for this transport |
| */ |
| public boolean getEnableSSL() |
| { |
| return sslEnabled; |
| } |
| |
| |
| /** |
| * @see Object#toString() |
| */ |
| public String toString() |
| { |
| StringBuilder sb = new StringBuilder(); |
| sb.append( "[<" ).append( address ).append( ':' ).append( port ); |
| sb.append( ">], backlog=" ).append( backlog ); |
| sb.append( ", nbThreads = " ).append( nbThreads ); |
| |
| if ( sslEnabled ) |
| { |
| sb.append( ", SSL" ); |
| } |
| |
| sb.append( ']' ); |
| |
| return sb.toString(); |
| } |
| } |