Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 1&1 Internet AG, http://www.1and1.org
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as published by
   * the Free Software Foundation; either version 2 of the License,
   * or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 package net.sf.beezle.sushi.fs.webdav;
 
 
 
 public class WebdavConnection implements HttpClientConnection {
     public static WebdavConnection open(Socket socketHttpParams paramsthrows IOException {
         int linger;
         int buffersize;
         SocketInputBuffer input;
         SocketOutputBuffer output;
         
         socket.setTcpNoDelay(HttpConnectionParams.getTcpNoDelay(params));
         socket.setSoTimeout(HttpConnectionParams.getSoTimeout(params));
         linger = HttpConnectionParams.getLinger(params);
         if (linger >= 0) {
             socket.setSoLinger(linger > 0, linger);
         }
         buffersize = HttpConnectionParams.getSocketBufferSize(params);
 			input = new LoggingSessionInputBuffer(socketbuffersizeparams.);
             output = new LoggingSessionOutputBuffer(socketbuffersizeparams.);
 		} else {
 	        input = new SocketInputBuffer(socketbuffersizeparams);
             output = new SocketOutputBuffer(socketbuffersizeparams);
 		}
         return new WebdavConnection(socketinputoutputparams);
     }
 
     private final Socket socket;
     private final EntitySerializer entityserializer;
     private final EntityDeserializer entitydeserializer;
     private final SocketInputBuffer input;
     private final SocketOutputBuffer output;
     private final HttpMessageParser responseParser;
     private final HttpMessageWriter requestWriter;
     private final HttpConnectionMetricsImpl metrics;
 	private boolean open;
 
     public WebdavConnection(Socket socketSocketInputBuffer inputSocketOutputBuffer outputHttpParams params) {
     	this. = socket;
         this. = new EntitySerializer(new StrictContentLengthStrategy());
         this. = new EntityDeserializer(new LaxContentLengthStrategy());
         this. = input;
         this. = output;
         this. = new HttpResponseParser(inputnullnew DefaultHttpResponseFactory(), params);
         this. = new HttpRequestWriter(outputnullparams);
         this. = new HttpConnectionMetricsImpl(input.getMetrics(), output.getMetrics());
         this. = true;
     }
 
     //-- HttpClientConnection implementation
     
     public boolean isResponseAvailable(int timeoutthrows IOException {
         return .isDataAvailable(timeout);
     }
 
     public void sendRequestHeader(final HttpRequest requestthrows HttpExceptionIOException {
         .write(request);
    }
    public void sendRequestEntity(final HttpEntityEnclosingRequest requestthrows HttpExceptionIOException {
        if (request.getEntity() != null) {
        	.serialize(requestrequest.getEntity());
        }
    }
        HttpResponse response = (HttpResponse.parse();
        if (response.getStatusLine().getStatusCode() >= 200) {
            .incrementResponseCount();
        }
        return response;
    }
    
    public void receiveResponseEntity(final HttpResponse responsethrows HttpExceptionIOException {
        response.setEntity(.deserialize(response));
    }
    
    public void flush() throws IOException {
        .flush();
    }
    //-- HttpConnection implementation
    
    public void close() throws IOException {
        if (!) {
            return;
        }
         = false;
        .close();
    }
    
    public boolean isOpen() {
        return ;
    }
    
    public boolean isStale() {
        if (!isOpen() || isEof()) {
            return true;
        }
        try {
            .isDataAvailable(1);
            return false;
        } catch (IOException ex) {
            return true;
        }
    }
    
    public void setSocketTimeout(int timeout) {
        try {
            .setSoTimeout(timeout);
        } catch (SocketException e) {
        	throw new RuntimeException("TODO"e);
        }
    }
    
    public int getSocketTimeout() {
        try {
            return .getSoTimeout();
        } catch (SocketException e) {
        	throw new RuntimeException("TODO"e);
        }
    }

    
CAUTION: HttpCore and Java Sockets have a different terminology here
    public void shutdown() throws IOException {
         = false;
        .close();
    }
    
    public HttpConnectionMetrics getMetrics() {
        return ;
    }
    //--
    
    private boolean isEof() {
        return .isEof();
    }
    
    	return ;
    }
    
    public String toString() {
		return "WebdavConnection(" + .getPort() + ')';
    }
New to GrepCode? Check out our FAQ X