Package ucb.util

Class SimpleObjectRegistry


  • public class SimpleObjectRegistry
    extends Object
    A kind of registry that provides a very simple means of exchanging remote objects by name. One can create a registry, allowing the constructor to select an available port. One can find a bound object by name over a sequence of port numbers and hosts.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_HIGH_PORT
      The default values for LOWPORT and HIGHPORT arguments.
      static int DEFAULT_LOW_PORT
      The default values for LOWPORT and HIGHPORT arguments.
      static int DEFAULT_PORTS
      The default values for LOWPORT and HIGHPORT arguments.
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleObjectRegistry()
      Same as SimpleObjectRegistry(DEFAULT_LOW_PORT, DEFAULT_HIGH_PORT).
      SimpleObjectRegistry​(int port)
      Return SimpleObjectRegistry(PORT, PORT).
      SimpleObjectRegistry​(int lowPort, int highPort)
      Create a new SimpleObjectRegistry on one of the ports LOWPORT to HIGHPORT, if possible.
    • Field Detail

      • DEFAULT_PORTS

        public static final int DEFAULT_PORTS
        The default values for LOWPORT and HIGHPORT arguments.
        See Also:
        Constant Field Values
      • DEFAULT_LOW_PORT

        public static final int DEFAULT_LOW_PORT
        The default values for LOWPORT and HIGHPORT arguments.
        See Also:
        Constant Field Values
      • DEFAULT_HIGH_PORT

        public static final int DEFAULT_HIGH_PORT
        The default values for LOWPORT and HIGHPORT arguments.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SimpleObjectRegistry

        public SimpleObjectRegistry​(int lowPort,
                                    int highPort)
                             throws RemoteException
        Create a new SimpleObjectRegistry on one of the ports LOWPORT to HIGHPORT, if possible. Throws RemoteException if no registry can be created on any of these ports.
        Throws:
        RemoteException
      • SimpleObjectRegistry

        public SimpleObjectRegistry​(int port)
                             throws RemoteException
        Return SimpleObjectRegistry(PORT, PORT).
        Throws:
        RemoteException
      • SimpleObjectRegistry

        public SimpleObjectRegistry()
                             throws RemoteException
        Same as SimpleObjectRegistry(DEFAULT_LOW_PORT, DEFAULT_HIGH_PORT).
        Throws:
        RemoteException
    • Method Detail

      • findObject

        public static Remote findObject​(String name,
                                        String host,
                                        int lowPort,
                                        int highPort)
                                 throws NotBoundException
        Return a remote object named NAME in some registry on HOST on some port number between LOWPORT and HIGHPORT. Throws NotBoundException if no such object is found for whatever reason (i.e., either because no registry is found or because NAME is unbound on all such registries.)
        Throws:
        NotBoundException
      • findObject

        public static Remote findObject​(String name,
                                        String[] hosts,
                                        int lowPort,
                                        int highPort)
                                 throws NotBoundException
        Return a remote object named NAME in some registry on one of the hosts in HOSTS on some port number between LOWPORT and HIGHPORT. Throws NotBoundException if no such object is found for whatever reason (i.e., either because no registry is found or because NAME is unbound on all such registries.)
        Throws:
        NotBoundException
      • port

        public int port()
        Return the port number on which this registry is exported.
      • rebind

        public void rebind​(String name,
                           Remote value)
        Bind NAME to VALUE in this registry, replacing any existing binding.
      • unbind

        public void unbind​(String name)
        Remove any binding of NAME in this registry.
      • unbind

        public void unbind()
        Remove all bindings in this registry.
      • close

        public void close()
        Remove all bindings from this registry, and disable it from further use.