View Javadoc

1   /*
2    * Copyright (c) 1998-2005 The Jgroup Team.
3    *
4    * This program is free software; you can redistribute it and/or modify
5    * it under the terms of the GNU Lesser General Public License version 2 as
6    * published by the Free Software Foundation.
7    *
8    * This program is distributed in the hope that it will be useful,
9    * but WITHOUT ANY WARRANTY; without even the implied warranty of
10   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11   * GNU Lesser General Public License for more details.
12   *
13   * You should have received a copy of the GNU Lesser General Public License
14   * along with this program; if not, write to the Free Software
15   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16   *
17   */
18  package jgroup.core.registry;
19  
20  import java.rmi.AccessException;
21  import java.rmi.NotBoundException;
22  import java.rmi.Remote;
23  import java.rmi.RemoteException;
24  
25  import jgroup.core.ExternalGMIListener;
26  
27  /**
28   * Interface used by clients to lookup proxy in 
29   * registry.
30   * 
31   * @author Rohnny Moland
32   */
33  public interface LookupRegistry
34    extends ExternalGMIListener
35  {
36    /**
37     * Returns a proxy for the remote object group associated with the specified name in the
38     * registry. When LeaseLayer is used, it checks to see if any servers have expired
39     * leasetimes.
40     *
41     * @param name      the name associated with the remote object group
42     * @return          a proxy for the remote object group
43     *
44     * @exception RemoteException If remote operation failed.
45     * @exception NotBoundException if there is no object group with this name in the
46     *              registry.
47     * @exception AccessException If this operation is not permitted.
48     */
49    public Remote lookup(String name)
50      throws RemoteException, NotBoundException, AccessException;
51    
52    /**
53     * Returns an array containing the remote object group names registered in the
54     * registry. When LeaseLayer is used, it checks to see if any servers have expired
55     * leasetimes.
56     *
57     * @exception RemoteException If remote operation failed.
58     * @exception AccessException If this operation is not permitted.
59     */
60    public String[] list()
61      throws RemoteException, AccessException;
62  
63  } // END LookupRegistry
64