Save This Page
Home » jakarta-jmeter-2.3.4_src » org.apache.jmeter.protocol.http.util » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *   http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    *
   17    */
   18   
   19   package org.apache.jmeter.protocol.http.util;
   20   
   21   import java.io.IOException;
   22   import java.net.InetAddress;
   23   import java.net.Socket;
   24   import java.net.UnknownHostException;
   25   
   26   import org.apache.commons.httpclient.ConnectTimeoutException;
   27   import org.apache.commons.httpclient.params.HttpConnectionParams;
   28   import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
   29   import org.apache.jmeter.util.SlowSocket;
   30   
   31   /**
   32    * HttpClient protocol factory to generate "slow" sockets for emulating dial-up modems
   33    */
   34   
   35   public class SlowHttpClientSocketFactory implements ProtocolSocketFactory {
   36   
   37       private final int CPS; // Characters per second to emulate
   38   
   39       /**
   40        *
   41        * @param cps - characters per second
   42        */
   43       public SlowHttpClientSocketFactory(final int cps) {
   44           super();
   45           CPS = cps;
   46       }
   47   
   48       public Socket createSocket(String host, int port, InetAddress clientHost,
   49               int clientPort) throws IOException, UnknownHostException {
   50           return new SlowSocket(CPS,host,port,clientHost,clientPort);
   51       }
   52   
   53       public Socket createSocket(String host, int port) throws IOException,
   54               UnknownHostException {
   55           return new SlowSocket(CPS,host,port);
   56       }
   57   
   58       public Socket createSocket(String host, int port, InetAddress localAddress, int localPort,
   59               HttpConnectionParams params)
   60       throws IOException, UnknownHostException, ConnectTimeoutException {
   61           int timeout = params.getConnectionTimeout();
   62           if (timeout == 0) {
   63               return new SlowSocket(CPS,host,port,localAddress,localPort);
   64           } else {
   65               return new SlowSocket(CPS,host,port,localAddress,localPort, timeout);
   66           }
   67       }
   68   }

Save This Page
Home » jakarta-jmeter-2.3.4_src » org.apache.jmeter.protocol.http.util » [javadoc | source]