/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: XAcceptor.idl,v $
 *
 *  $Revision: 1.12 $
 *
 *  last change: $Author: rt $ $Date: 2005-12-14 11:32:31 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library 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 library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/
#ifndef _COM_SUN_STAR_CONNECTION_XACCEPTOR_IDL_
#define _COM_SUN_STAR_CONNECTION_XACCEPTOR_IDL_

#include <com/sun/star/connection/ConnectionSetupException.idl>
#include <com/sun/star/connection/AlreadyAcceptingException.idl>
#include <com/sun/star/lang/IllegalArgumentException.idl>
#include <com/sun/star/connection/XConnection.idl>


module com {  module sun {  module star {  module connection {

/** allows to passively accept connection attempts from other processes.

    <p>
    This is the counterpart to the XConnector interface.
 */
published interface XAcceptor: com::sun::star::uno::XInterface
{
    // DocMerge from xml: method com::sun::star::connection::XAcceptor::accept
    /** accepts an interprocess connection. Waits until someone connects to the resource.
        <p>
        After a successful return, the method may be called again to accept
        further connections, but the parameter string MUST be left unchanged.


       @param sConnectionDescription
                contains the kind of the connection plus a
              comma seperated list of attributes,
               e.g., <em>socket,host=localhost,port=2345</em> for a tcpip connection.

       @return null reference,
            stopAccepting was called.
            Otherwise a valid XConnection reference.

       @throws AlreadyAcceptingException
                Only one acceptor-thread per instance allowed.
       @throws ConnectionSetupException
            Problems during setting up the acceptor.
          (e.g., Security-reasons, socket already busy, etc.)
       @throws com::sun::star::lang::IllegalArgumentException
                  sConnectionDescription could not be interpreted

     */
    XConnection accept( [in] string sConnectionDescription )
        raises( AlreadyAcceptingException,
                ConnectionSetupException,
                com::sun::star::lang::IllegalArgumentException);


    /** pushes acceptor out of the accept-call.
     */
    void stopAccepting();
};

};};};};

#endif
