/***************************************************************************** * Sun Public License Notice * * The contents of this file are subject to the Sun Public License Version * 1.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is available at http://www.sun.com/ * The Original Code is the CVS Client Library. * The Initial Developer of the Original Code is Robert Greig. * Portions created by Robert Greig are Copyright (C) 2000. * All Rights Reserved. * Contributor(s): Robert Greig. *****************************************************************************/ package org.netbeans.lib.cvsclient.connection; import org.netbeans.lib.cvsclient.io.IStreamLogger; import java.io.Closeable; import java.io.InputStream; import java.io.OutputStream; /** * Provides a method for accessing a connection, in order to be able to * communicate using the CVS Protocol. Instances of this interface are used * by the Client class to communicate with the server without being too * concerned with how the communication is taking place or how it was * set up. * @author Robert Greig */ public interface IConnection extends Closeable { InputStream getInputStream(); OutputStream getOutputStream(); String getRepository(); void verify(IStreamLogger streamLogger) throws AuthenticationException; /** * Open a connection with the server. Until this method is called, no * communication with the server can take place. This Client will * call this method before interacting with the server. It is up to * implementing classes to ensure that they are configured to * talk to the server (e.g. port number etc.) * @throws AuthenticationException if the connection with the server * cannot be established */ void open(IStreamLogger streamLogger) throws AuthenticationException; }