Ice 3.7 Slice API Reference
Operations | List of all members
Ice::ServantLocator Local Interface Reference

A servant locator is called by an object adapter to locate a servant that is not found in its active servant map. More...

defined in <Ice/ServantLocator.ice>

local interface ServantLocator { ... }

Operations

void deactivate (string category)
 Called when the object adapter in which this servant locator is installed is destroyed. More...
 
void finished (Current curr, ["swift:nonnull"] Object servant, LocalObject cookie)
 Called by the object adapter after a request has been made. More...
 
Object locate (Current curr, out LocalObject cookie)
 Called before a request is dispatched if a servant cannot be found in the object adapter's active servant map. More...
 

Detailed Description

A servant locator is called by an object adapter to locate a servant that is not found in its active servant map.

See also
ObjectAdapter
ObjectAdapter::addServantLocator
ObjectAdapter::findServantLocator

Operation Documentation

◆ deactivate()

["swift:noexcept"]
void deactivate ( string  category)

Called when the object adapter in which this servant locator is installed is destroyed.

Parameters
categoryIndicates for which category the servant locator is being deactivated.
See also
ObjectAdapter::destroy
Communicator::shutdown
Communicator::destroy

◆ finished()

["java:UserException"]
void finished ( Current  curr,
["swift:nonnull"] Object  servant,
LocalObject  cookie 
)

Called by the object adapter after a request has been made.

This operation is only called if locate was called prior to the request and returned a non-null servant. This operation can be used for cleanup purposes after a request.

finished can throw any user exception. If it does, that exception is marshaled back to the client. If the Slice definition for the corresponding operation includes that user exception, the client receives that user exception; otherwise, the client receives UnknownUserException.

If both the operation and finished throw an exception, the exception thrown by finished is marshaled back to the client.

Parameters
currInformation about the current operation call for which a servant was located by locate.
servantThe servant that was returned by locate.
cookieThe cookie that was returned by locate.
Exceptions
UserExceptionThe implementation can raise a UserException and the run time will marshal it as the result of the invocation.
See also
ObjectAdapter
Current
locate

◆ locate()

["java:UserException"]
Object locate ( Current  curr,
out LocalObject  cookie 
)

Called before a request is dispatched if a servant cannot be found in the object adapter's active servant map.

Note that the object adapter does not automatically insert the returned servant into its active servant map. This must be done by the servant locator implementation, if this is desired.

locate can throw any user exception. If it does, that exception is marshaled back to the client. If the Slice definition for the corresponding operation includes that user exception, the client receives that user exception; otherwise, the client receives UnknownUserException.

If locate throws any exception, the Ice run time does not call finished.

If you call locate from your own code, you must also call finished when you have finished using the servant, provided that locate returned a non-null servant; otherwise, you will get undefined behavior if you use servant locators such as the Freeze Evictor.

Parameters
currInformation about the current operation for which a servant is required.
cookieA "cookie" that will be passed to finished.
Returns
The located servant, or null if no suitable servant has been found.
Exceptions
UserExceptionThe implementation can raise a UserException and the run time will marshal it as the result of the invocation.
See also
ObjectAdapter
Current
finished

The documentation for this interface was generated from the following file: