Ice._ObjectAdapterOperationsNC Maven / Gradle / Ivy
Show all versions of ice Show documentation
// **********************************************************************
//
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
//
// Ice version 3.6.4
//
//
//
// Generated from file `ObjectAdapter.ice'
//
// Warning: do not edit this file.
//
//
//
package Ice;
/**
* The object adapter provides an up-call interface from the Ice
* run time to the implementation of Ice objects.
*
* The object adapter is responsible for receiving requests
* from endpoints, and for mapping between servants, identities, and
* proxies.
*
* @see Communicator
* @see ServantLocator
*
**/
public interface _ObjectAdapterOperationsNC
{
/**
* Get the name of this object adapter.
*
* @return This object adapter's name.
*
**/
String getName();
/**
* Get the communicator this object adapter belongs to.
*
* @return This object adapter's communicator.
*
* @see Communicator
*
**/
Communicator getCommunicator();
/**
* Activate all endpoints that belong to this object adapter.
* After activation, the object adapter can dispatch requests
* received through its endpoints.
*
* @see #hold
* @see #deactivate
*
**/
void activate();
/**
* Temporarily hold receiving and dispatching requests. The object
* adapter can be reactivated with the {@link #activate} operation.
*
* Holding is not immediate, i.e., after {@link #hold}
* returns, the object adapter might still be active for some
* time. You can use {@link #waitForHold} to wait until holding is
* complete.
*
* @see #activate
* @see #deactivate
* @see #waitForHold
*
**/
void hold();
/**
* Wait until the object adapter holds requests. Calling {@link #hold}
* initiates holding of requests, and {@link #waitForHold} only returns
* when holding of requests has been completed.
*
* @see #hold
* @see #waitForDeactivate
* @see Communicator#waitForShutdown
*
**/
void waitForHold();
/**
* Deactivate all endpoints that belong to this object adapter.
* After deactivation, the object adapter stops receiving
* requests through its endpoints. Object adapters that have been
* deactivated must not be reactivated again, and cannot be used
* otherwise. Attempts to use a deactivated object adapter raise
* {@link ObjectAdapterDeactivatedException}; however, attempts to
* {@link #deactivate} an already deactivated object adapter are
* ignored and do nothing. Once deactivated, it is possible to
* destroy the adapter to clean up resources and then create and
* activate a new adapter with the same name.
*
*
After {@link #deactivate} returns, no new requests
* are processed by the object adapter. However, requests that
* have been started before {@link #deactivate} was called might
* still be active. You can use {@link #waitForDeactivate} to wait
* for the completion of all requests for this object adapter.
*
* @see #activate
* @see #hold
* @see #waitForDeactivate
* @see Communicator#shutdown
*
**/
void deactivate();
/**
* Wait until the object adapter has deactivated. Calling
* {@link #deactivate} initiates object adapter deactivation, and
* {@link #waitForDeactivate} only returns when deactivation has
* been completed.
*
* @see #deactivate
* @see #waitForHold
* @see Communicator#waitForShutdown
*
**/
void waitForDeactivate();
/**
* Check whether object adapter has been deactivated.
*
* @return Whether adapter has been deactivated.
*
* @see Communicator#shutdown
*
**/
boolean isDeactivated();
/**
* Destroys the object adapter and cleans up all resources held by
* the object adapter. If the object adapter has not yet been
* deactivated, destroy implicitly initiates the deactivation
* and waits for it to finish. Subsequent calls to destroy are
* ignored. Once destroy has returned, it is possible to create
* another object adapter with the same name.
*
* @see #deactivate
* @see #waitForDeactivate
* @see Communicator#destroy
*
**/
void destroy();
/**
* Add a servant to this object adapter's Active Servant Map. Note
* that one servant can implement several Ice objects by registering
* the servant with multiple identities. Adding a servant with an
* identity that is in the map already throws {@link AlreadyRegisteredException}.
*
* @param servant The servant to add.
*
* @param id The identity of the Ice object that is implemented by
* the servant.
*
* @return A proxy that matches the given identity and this object
* adapter.
*
* @see Identity
* @see #addFacet
* @see #addWithUUID
* @see #remove
* @see #find
*
**/
Ice.ObjectPrx add(Ice.Object servant, Identity id);
/**
* Like {@link #add}, but with a facet. Calling add(servant, id)
* is equivalent to calling {@link #addFacet} with an empty facet.
*
* @param servant The servant to add.
*
* @param id The identity of the Ice object that is implemented by
* the servant.
*
* @param facet The facet. An empty facet means the default facet.
*
* @return A proxy that matches the given identity, facet, and
* this object adapter.
*
* @see Identity
* @see #add
* @see #addFacetWithUUID
* @see #removeFacet
* @see #findFacet
*
**/
Ice.ObjectPrx addFacet(Ice.Object servant, Identity id, String facet);
/**
* Add a servant to this object adapter's Active Servant Map,
* using an automatically generated UUID as its identity. Note that
* the generated UUID identity can be accessed using the proxy's
* ice_getIdentity operation.
*
* @param servant The servant to add.
*
* @return A proxy that matches the generated UUID identity and
* this object adapter.
*
* @see Identity
* @see #add
* @see #addFacetWithUUID
* @see #remove
* @see #find
*
**/
Ice.ObjectPrx addWithUUID(Ice.Object servant);
/**
* Like {@link #addWithUUID}, but with a facet. Calling
* addWithUUID(servant) is equivalent to calling
* {@link #addFacetWithUUID} with an empty facet.
*
* @param servant The servant to add.
*
* @param facet The facet. An empty facet means the default
* facet.
*
* @return A proxy that matches the generated UUID identity,
* facet, and this object adapter.
*
* @see Identity
* @see #addFacet
* @see #addWithUUID
* @see #removeFacet
* @see #findFacet
*
**/
Ice.ObjectPrx addFacetWithUUID(Ice.Object servant, String facet);
/**
* Add a default servant to handle requests for a specific
* category. Adding a default servant for a category for
* which a default servant is already registered throws
* {@link AlreadyRegisteredException}. To dispatch operation
* calls on servants, the object adapter tries to find a servant
* for a given Ice object identity and facet in the following
* order:
*
*
*
* - The object adapter tries to find a servant for the identity
* and facet in the Active Servant Map.
*
* - If no servant has been found in the Active Servant Map, the
* object adapter tries to find a default servant for the category
* component of the identity.
*
* - If no servant has been found by any of the preceding steps,
* the object adapter tries to find a default servant for an empty
* category, regardless of the category contained in the identity.
*
* - If no servant has been found by any of the preceding steps,
* the object adapter gives up and the caller receives
* {@link ObjectNotExistException} or {@link FacetNotExistException}.
*
*
*
* @param servant The default servant.
*
* @param category The category for which the default servant is
* registered. An empty category means it will handle all categories.
*
* @see #removeDefaultServant
* @see #findDefaultServant
*
**/
void addDefaultServant(Ice.Object servant, String category);
/**
* Remove a servant (that is, the default facet) from the object
* adapter's Active Servant Map.
*
* @param id The identity of the Ice object that is implemented by
* the servant. If the servant implements multiple Ice objects,
* {@link #remove} has to be called for all those Ice objects.
* Removing an identity that is not in the map throws
* {@link NotRegisteredException}.
*
* @return The removed servant.
*
* @see Identity
* @see #add
* @see #addWithUUID
*
**/
Ice.Object remove(Identity id);
/**
* Like {@link #remove}, but with a facet. Calling remove(id)
* is equivalent to calling {@link #removeFacet} with an empty facet.
*
* @param id The identity of the Ice object that is implemented by
* the servant.
*
* @param facet The facet. An empty facet means the default facet.
*
* @return The removed servant.
*
* @see Identity
* @see #addFacet
* @see #addFacetWithUUID
*
**/
Ice.Object removeFacet(Identity id, String facet);
/**
* Remove all facets with the given identity from the Active
* Servant Map. The operation completely removes the Ice object,
* including its default facet. Removing an identity that
* is not in the map throws {@link NotRegisteredException}.
*
* @param id The identity of the Ice object to be removed.
*
* @return A collection containing all the facet names and
* servants of the removed Ice object.
*
* @see #remove
* @see #removeFacet
*
**/
java.util.Map removeAllFacets(Identity id);
/**
* Remove the default servant for a specific category. Attempting
* to remove a default servant for a category that is not
* registered throws {@link NotRegisteredException}.
*
* @param category The category of the default servant to remove.
*
* @return The default servant.
*
* @see #addDefaultServant
* @see #findDefaultServant
*
**/
Ice.Object removeDefaultServant(String category);
/**
* Look up a servant in this object adapter's Active Servant Map
* by the identity of the Ice object it implements.
*
* This operation only tries to look up a servant in
* the Active Servant Map. It does not attempt to find a servant
* by using any installed {@link ServantLocator}.
*
* @param id The identity of the Ice object for which the servant
* should be returned.
*
* @return The servant that implements the Ice object with the
* given identity, or null if no such servant has been found.
*
* @see Identity
* @see #findFacet
* @see #findByProxy
*
**/
Ice.Object find(Identity id);
/**
* Like {@link #find}, but with a facet. Calling find(id)
* is equivalent to calling {@link #findFacet} with an empty
* facet.
*
* @param id The identity of the Ice object for which the
* servant should be returned.
*
* @param facet The facet. An empty facet means the default
* facet.
*
* @return The servant that implements the Ice object with the
* given identity and facet, or null if no such servant has been
* found.
*
* @see Identity
* @see #find
* @see #findByProxy
*
**/
Ice.Object findFacet(Identity id, String facet);
/**
* Find all facets with the given identity in the Active Servant
* Map.
*
* @param id The identity of the Ice object for which the facets
* should be returned.
*
* @return A collection containing all the facet names and
* servants that have been found, or an empty map if there is no
* facet for the given identity.
*
* @see #find
* @see #findFacet
*
**/
java.util.Map findAllFacets(Identity id);
/**
* Look up a servant in this object adapter's Active Servant Map,
* given a proxy.
*
* This operation only tries to lookup a servant in
* the Active Servant Map. It does not attempt to find a servant
* by using any installed {@link ServantLocator}.
*
* @param proxy The proxy for which the servant should be returned.
*
* @return The servant that matches the proxy, or null if no such
* servant has been found.
*
* @see #find
* @see #findFacet
*
**/
Ice.Object findByProxy(Ice.ObjectPrx proxy);
/**
* Add a Servant Locator to this object adapter. Adding a servant
* locator for a category for which a servant locator is already
* registered throws {@link AlreadyRegisteredException}. To dispatch
* operation calls on servants, the object adapter tries to find a
* servant for a given Ice object identity and facet in the
* following order:
*
*
*
* - The object adapter tries to find a servant for the identity
* and facet in the Active Servant Map.
*
* - If no servant has been found in the Active Servant Map,
* the object adapter tries to find a servant locator for the
* category component of the identity. If a locator is found, the
* object adapter tries to find a servant using this locator.
*
* - If no servant has been found by any of the preceding steps,
* the object adapter tries to find a locator for an empty category,
* regardless of the category contained in the identity. If a
* locator is found, the object adapter tries to find a servant
* using this locator.
*
* - If no servant has been found by any of the preceding steps,
* the object adapter gives up and the caller receives
* {@link ObjectNotExistException} or {@link FacetNotExistException}.
*
*
*
* Only one locator for the empty category can be
* installed.
*
* @param locator The locator to add.
*
* @param category The category for which the Servant Locator can
* locate servants, or an empty string if the Servant Locator does
* not belong to any specific category.
*
* @see Identity
* @see #removeServantLocator
* @see #findServantLocator
* @see ServantLocator
*
**/
void addServantLocator(ServantLocator locator, String category);
/**
* Remove a Servant Locator from this object adapter.
*
* @param category The category for which the Servant Locator can
* locate servants, or an empty string if the Servant Locator does
* not belong to any specific category.
*
* @return The Servant Locator, or throws {@link NotRegisteredException}
* if no Servant Locator was found for the given category.
*
* @see Identity
* @see #addServantLocator
* @see #findServantLocator
* @see ServantLocator
*
**/
ServantLocator removeServantLocator(String category);
/**
* Find a Servant Locator installed with this object adapter.
*
* @param category The category for which the Servant Locator can
* locate servants, or an empty string if the Servant Locator does
* not belong to any specific category.
*
* @return The Servant Locator, or null if no Servant Locator was
* found for the given category.
*
* @see Identity
* @see #addServantLocator
* @see #removeServantLocator
* @see ServantLocator
*
**/
ServantLocator findServantLocator(String category);
/**
* Find the default servant for a specific category.
*
* @param category The category of the default servant to find.
*
* @return The default servant or null if no default servant was
* registered for the category.
*
* @see #addDefaultServant
* @see #removeDefaultServant
*
**/
Ice.Object findDefaultServant(String category);
/**
* Create a proxy for the object with the given identity. If this
* object adapter is configured with an adapter id, the return
* value is an indirect proxy that refers to the adapter id. If
* a replica group id is also defined, the return value is an
* indirect proxy that refers to the replica group id. Otherwise,
* if no adapter id is defined, the return value is a direct
* proxy containing this object adapter's published endpoints.
*
* @param id The object's identity.
*
* @return A proxy for the object with the given identity.
*
* @see Identity
*
**/
Ice.ObjectPrx createProxy(Identity id);
/**
* Create a direct proxy for the object with the given identity.
* The returned proxy contains this object adapter's published
* endpoints.
*
* @param id The object's identity.
*
* @return A proxy for the object with the given identity.
*
* @see Identity
*
**/
Ice.ObjectPrx createDirectProxy(Identity id);
/**
* Create an indirect proxy for the object with the given identity.
* If this object adapter is configured with an adapter id, the
* return value refers to the adapter id. Otherwise, the return
* value contains only the object identity.
*
* @param id The object's identity.
*
* @return A proxy for the object with the given identity.
*
* @see Identity
*
**/
Ice.ObjectPrx createIndirectProxy(Identity id);
/**
* Set an Ice locator for this object adapter. By doing so, the
* object adapter will register itself with the locator registry
* when it is activated for the first time. Furthermore, the proxies
* created by this object adapter will contain the adapter identifier
* instead of its endpoints. The adapter identifier must be configured
* using the AdapterId property.
*
* @param loc The locator used by this object adapter.
*
* @see #createDirectProxy
* @see Locator
* @see LocatorRegistry
*
**/
void setLocator(LocatorPrx loc);
/**
* Get the Ice locator used by this object adapter.
*
* @return The locator used by this object adapter, or null if no locator is
* used by this object adapter.
*
* @see Locator
* @see #setLocator
*
**/
LocatorPrx getLocator();
/**
* Refresh the set of published endpoints. The run time re-reads
* the PublishedEndpoints property if it is set and re-reads the
* list of local interfaces if the adapter is configured to listen
* on all endpoints. This operation is useful to refresh the endpoint
* information that is published in the proxies that are created by
* an object adapter if the network interfaces used by a host changes.
*
**/
void refreshPublishedEndpoints();
/**
* Get the set of endpoints configured with this object adapter.
*
* @return The set of endpoints.
*
* @see Endpoint
*
**/
Endpoint[] getEndpoints();
/**
* Get the set of endpoints that proxies created by this object
* adapter will contain.
*
* @return The set of published endpoints.
*
* @see #refreshPublishedEndpoints
* @see Endpoint
*
**/
Endpoint[] getPublishedEndpoints();
}