Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   * 
   * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
   * 
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License. You can obtain
  * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
  * or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  * 
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
  * Sun designates this particular file as subject to the "Classpath" exception
  * as provided by Sun in the GPL Version 2 section of the License file that
  * accompanied this code.  If applicable, add the following below the License
  * Header, with the fields enclosed by brackets [] replaced by your own
  * identifying information: "Portions Copyrighted [year]
  * [name of copyright owner]"
  * 
  * Contributor(s):
  * 
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 package com.sun.enterprise.web.connector.grizzly.ssl;
 
Specialized SelectorThread that only handle OP_READ over SSL.

Author(s):
Jean-Francois Arcand
 
 public class SSLSelectorReadThread extends SSLSelectorThread 
         implements MultiSelectorThread{

    
List of Channel to process.
 
     ArrayList<SocketChannelchannels = new ArrayList<SocketChannel>();


    
Int used to differenciate thsi instance
 
     public static int countName;

    
    
Add a Channel to be processed by this Selector
 
     public synchronized void addChannel(SocketChannel channel
             throws IOExceptionClosedChannelException {
         .add(channel);
         getSelector().wakeup();
     }


    
Register all Channel with an OP_READ opeation.
 
     private synchronized void registerNewChannels() throws IOException {
         int size = .size();
         for (int i = 0; i < sizei++) {
             SocketChannel sc = .get(i);
             sc.configureBlocking(false);
             try {
                 SelectionKey readKey = 
                         sc.register(getSelector(), .);
                 setSocketOptions(((SocketChannel)readKey.channel()).socket());
             } catch (ClosedChannelException cce) {
             }
         }
         .clear();
     }

    
    
Initialize this SelectorThread
    @Override
    public void initEndpoint() throws IOExceptionInstantiationException { 
        setName("SSLSelectorReaderThread-" + getPort());
        initAlgorithm();
    }
    
    
    
Start and wait for incoming connection
    @Override
    public void startEndpoint() throws IOExceptionInstantiationException {
        setRunning(true);
        while (isRunning()) {
            try{
                if (getSelector() == null){
                    setSelector(Selector.open());
                }              
                
                registerNewChannels();
                doSelect();
            } catch (Throwable t){
                .log(.,"selectorThread.errorOnRequest",t);
            }
        }
    }

    
    
Provides the count of request threads that are currently being processed by the container

Returns:
Count of requests
    @Override
    public int getCurrentBusyProcessorThreads() {
        return (getProcessorPipeline().getCurrentThreadsBusy());
    }
    
New to GrepCode? Check out our FAQ X