01: /*
02: * JBoss, Home of Professional Open Source.
03: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
04: * as indicated by the @author tags. See the copyright.txt file in the
05: * distribution for a full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * published by the Free Software Foundation; either version 2.1 of
10: * the License, or (at your option) any later version.
11: *
12: * This software is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this software; if not, write to the Free
19: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21: */
22: package org.jboss.invocation.iiop;
23:
24: import org.omg.CORBA.Policy;
25: import org.omg.PortableServer.Servant;
26:
27: /**
28: * Interface of a registry for CORBA servants.
29: *
30: * @author <a href="mailto:reverbel@ime.usp.br">Francisco Reverbel</a>
31: * @version $Revision: 57194 $
32: */
33: public interface ServantRegistry {
34:
35: /**
36: * Binds <code>name</code> to <code>servant</code>, with the given
37: * <code>policies</code>. Returns a <code>ReferenceFactory</code>
38: * that should be used to create CORBA references to the object(s)
39: * implemented by <code>servant</code>. A CORBA reference created by this
40: * factory will contain <code>name</code> as the servant id embedded in the
41: * reference. If the servant implements more than one CORBA object,
42: * references for such objects should be created by the
43: * <code>ReferenceFactory</code> method
44: * <code>createReferenceWithId()</code>, which takes an <code>id</code>
45: * parameter to distinguish among the objects implemented by the same
46: * servant. Otherwise (if the servant implements a single CORBA object)
47: * the method <code>createReference()</code> should be used.
48: *
49: */
50: ReferenceFactory bind(String name, Servant servant,
51: Policy[] policies) throws Exception;
52:
53: /**
54: * Binds <code>name</code> to <code>servant</code>. Returns a
55: * <code>ReferenceFactory</code> that should be used to create CORBA
56: * references to the object(s) implemented by <code>servant</code>.
57: * For the usage of this <code>ReferenceFactory</code>, see method
58: * above.
59: */
60: ReferenceFactory bind(String name, Servant servant)
61: throws Exception;
62:
63: /**
64: * Unbinds the servant bound to <code>name</code>.
65: */
66: void unbind(String name) throws Exception;
67:
68: }
|