Package com.sun.corba.ee.impl.protocol
Class LocalClientRequestDispatcherBase
- java.lang.Object
-
- com.sun.corba.ee.impl.protocol.LocalClientRequestDispatcherBase
-
- All Implemented Interfaces:
LocalClientRequestDispatcher
- Direct Known Subclasses:
JIDLLocalCRDImpl
,POALocalCRDImpl
,ServantCacheLocalCRDBase
public abstract class LocalClientRequestDispatcherBase extends java.lang.Object implements LocalClientRequestDispatcher
-
-
Field Summary
Fields Modifier and Type Field Description private static int
INITIAL_BACKOFF
private static java.lang.ThreadLocal
isNextCallValid
private static int
MAX_BACKOFF
private static int
MAX_WAIT_TIME
protected ObjectAdapterFactory
oaf
protected ObjectAdapterId
oaid
protected byte[]
objectId
protected ORB
orb
protected static POASystemException
poaWrapper
private int
scid
protected boolean
servantIsLocal
protected static ORBUtilSystemException
wrapper
-
Constructor Summary
Constructors Modifier Constructor Description protected
LocalClientRequestDispatcherBase(ORB orb, int scid, IOR ior)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
checkForCompatibleServant(ServantObject so, java.lang.Class expectedType)
Check that the servant in info (which must not be null) is an instance of the expectedType.protected void
cleanupAfterOADestroyed()
private void
display(java.lang.String msg)
private void
display(java.lang.String msg, int value)
private void
display(java.lang.String msg, java.lang.Object value)
byte[]
getObjectId()
protected ServantObject
internalPreinvoke(Object self, java.lang.String operation, java.lang.Class expectedType)
boolean
is_local(Object self)
ServantObject
servant_preinvoke(Object self, java.lang.String operation, java.lang.Class expectedType)
Returns a Java reference to the servant which should be used for this request.private void
servantNotCompatible()
boolean
useLocalInvocation(Object self)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.sun.corba.ee.spi.protocol.LocalClientRequestDispatcher
servant_postinvoke
-
-
-
-
Field Detail
-
poaWrapper
protected static final POASystemException poaWrapper
-
wrapper
protected static final ORBUtilSystemException wrapper
-
INITIAL_BACKOFF
private static final int INITIAL_BACKOFF
- See Also:
- Constant Field Values
-
MAX_BACKOFF
private static final int MAX_BACKOFF
- See Also:
- Constant Field Values
-
MAX_WAIT_TIME
private static final int MAX_WAIT_TIME
- See Also:
- Constant Field Values
-
orb
protected ORB orb
-
scid
private int scid
-
servantIsLocal
protected boolean servantIsLocal
-
oaf
protected ObjectAdapterFactory oaf
-
oaid
protected ObjectAdapterId oaid
-
objectId
protected byte[] objectId
-
isNextCallValid
private static final java.lang.ThreadLocal isNextCallValid
-
-
Method Detail
-
getObjectId
public byte[] getObjectId()
-
is_local
public boolean is_local(Object self)
- Specified by:
is_local
in interfaceLocalClientRequestDispatcher
-
useLocalInvocation
public boolean useLocalInvocation(Object self)
- Specified by:
useLocalInvocation
in interfaceLocalClientRequestDispatcher
-
servantNotCompatible
@InfoMethod private void servantNotCompatible()
-
checkForCompatibleServant
protected boolean checkForCompatibleServant(ServantObject so, java.lang.Class expectedType)
Check that the servant in info (which must not be null) is an instance of the expectedType. If not, set the thread local flag and return false.- Parameters:
so
- Servant to checkexpectedType
- Type to check against- Returns:
- If the servant is an instance of the expected type
-
internalPreinvoke
protected ServantObject internalPreinvoke(Object self, java.lang.String operation, java.lang.Class expectedType) throws OADestroyed
- Throws:
OADestroyed
-
cleanupAfterOADestroyed
protected void cleanupAfterOADestroyed()
-
display
@InfoMethod private void display(java.lang.String msg)
-
display
@InfoMethod private void display(java.lang.String msg, int value)
-
display
@InfoMethod private void display(java.lang.String msg, java.lang.Object value)
-
servant_preinvoke
public ServantObject servant_preinvoke(Object self, java.lang.String operation, java.lang.Class expectedType)
Description copied from interface:LocalClientRequestDispatcher
Returns a Java reference to the servant which should be used for this request. servant_preinvoke() is invoked by a local stub. If a ServantObject object is returned, then its servant field has been set to an object of the expected type (Note: the object may or may not be the actual servant instance). The local stub may cast the servant field to the expected type, and then invoke the operation directly.- Specified by:
servant_preinvoke
in interfaceLocalClientRequestDispatcher
- Parameters:
self
- The object reference which delegated to this delegate.operation
- a string containing the operation name. The operation name corresponds to the operation name as it would be encoded in a GIOP request.expectedType
- a Class object representing the expected type of the servant. The expected type is the Class object associated with the operations class of the stub's interface (e.g. A stub for an interface Foo, would pass the Class object for the FooOperations interface).- Returns:
- a ServantObject object. The method may return a null value if it does not wish to support this optimization (e.g. due to security, transactions, etc). The method must return null if the servant is not of the expected type.
-
-