Classes | Public Member Functions

com.cosylab.acs.maci.Manager Interface Reference

Inheritance diagram for com.cosylab.acs.maci.Manager:
com.cosylab.acs.maci.ManagerConstants com.cosylab.acs.maci.manager.ManagerImpl com.cosylab.acs.maci.plug.ManagerProxy

List of all members.

Classes

interface  LongCompletionCallback

Public Member Functions

String getDomain ()
ContainerInfo[] getContainerInfo (int id, int[] handles, String name_wc) throws AcsJNoPermissionEx
ClientInfo[] getClientInfo (int id, int[] handles, String name_wc) throws AcsJNoPermissionEx
ComponentInfo[] getComponentInfo (int id, int[] handles, String name_wc, String type_wc, boolean activeOnly) throws AcsJNoPermissionEx
Component getComponent (int id, URI curl, boolean activate, StatusHolder status) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx
Component restartComponent (int id, URI curl) throws AcsJNoPermissionEx, AcsJBadParameterEx
void makeComponentImmortal (int id, URI curl, boolean immortalState) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, AcsJBadParameterEx
Component getService (int id, URI curl, boolean activate, StatusHolder status) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx
ClientInfo login (Client reference) throws AcsJNoPermissionEx
void logout (int id) throws AcsJNoPermissionEx
int registerComponent (int id, URI curl, String type, Component cob) throws AcsJNoPermissionEx, AcsJBadParameterEx
int releaseComponent (int id, URI curl) throws AcsJNoPermissionEx, AcsJBadParameterEx
void releaseComponentAsync (int id, URI curl, LongCompletionCallback callback) throws AcsJNoPermissionEx, AcsJBadParameterEx
int forceReleaseComponent (int id, URI curl) throws AcsJNoPermissionEx, AcsJBadParameterEx
void shutdown (int id, int containers) throws AcsJNoPermissionEx
void shutdownContainer (int id, String containerName, int action) throws AcsJNoPermissionEx
void unregisterComponent (int id, int handle) throws AcsJNoPermissionEx, AcsJBadParameterEx
ComponentInfo getDefaultComponent (int id, String type) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, NoDefaultComponentException
ComponentInfo getDynamicComponent (int id, ComponentSpec componentSpec, boolean markAsDefault) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, AcsJIncompleteComponentSpecEx, AcsJInvalidComponentSpecEx, AcsJComponentSpecIncompatibleWithActiveComponentEx
ComponentInfo getCollocatedComponent (int id, ComponentSpec componentSpec, boolean markAsDefault, URI targetComponentURI) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, AcsJIncompleteComponentSpecEx, AcsJInvalidComponentSpecEx, AcsJComponentSpecIncompatibleWithActiveComponentEx
Component getComponentNonSticky (int id, URI curl) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx

Detailed Description

Manager is the central point of interaction between the components and the clients that request MACI services. A Manager is responsible for managing a domain. Manager has the following functionality:

This interface defines a CORBA-independent interface for the Manager. In ACS, the acs.maci.plugManagerProxyImpl class implements the CORBA interface and delegates toan implementation of this Manager class the real work.

NOTE: There is no throws RemoteException in the signature of the methods.

See also:
si.ijs.acs.maci.plug.ManagerProxyImpl, si.ijs.acs.maci.plug.ManagerProxy, acs.maci.manager.ManagerImpl
Author:
Matej Sekoranja (matej.sekoranja@cosylab.com)
Version:
@VERSION@

Member Function Documentation

int com.cosylab.acs.maci.Manager.forceReleaseComponent ( int  id,
URI  curl 
) throws AcsJNoPermissionEx, AcsJBadParameterEx

Forcefully release a component.

Parameters:
id Identification of the caller.
curl The CURL of the Component to be released.
Returns:
Number of clients that are still using the Component after the operation completed. This is a useful debugging tool.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.force_release_component().

ClientInfo [] com.cosylab.acs.maci.Manager.getClientInfo ( int  id,
int[]  handles,
String  name_wc 
) throws AcsJNoPermissionEx

Get all the information that the Manager has about its known clients. To invoke this method, the caller must have INTROSPECT_MANAGER access rights, or it must be the object whose info it is requesting (request by handle sequence of length one). Calling this function does not affect the internal state of the Manager.

Parameters:
id Identification of the caller.
handles Handles of the clients whose information is requested. If this is an empty sequence, the name_wc parameter is used.
name_wc Wildcard that the clients's name must match in order for its information to be returned.
Returns:
A sequence of ClientInfo structures containing the entire Manager's knowledge about the containers. If access is denied to a subset of objects, the handles to those objects are set to 0.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_client_info().

ComponentInfo com.cosylab.acs.maci.Manager.getCollocatedComponent ( int  id,
ComponentSpec  componentSpec,
boolean  markAsDefault,
URI  targetComponentURI 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, AcsJIncompleteComponentSpecEx, AcsJInvalidComponentSpecEx, AcsJComponentSpecIncompatibleWithActiveComponentEx

Activation of an co-deployed component.

Parameters:
id Identification of the caller.
componentSpec Component to be obtained.
markAsDefault Mark component as default component of its type.
targetComponentURI target co-deployed component.
Returns:
ComponentInfo of requested component. If componentSpec if found to be incomplete IncompleteComponentSpecException exception is thrown. If requested component collides with already activated component with the same name ComponentSpecIncompatibleWithActiveComponentException exception is thrown.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_collocated_component().

Component com.cosylab.acs.maci.Manager.getComponent ( int  id,
URI  curl,
boolean  activate,
StatusHolder  status 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx

Get a component, activating it if necessary. The client represented by id (the handle) must have adequate access rights to access the component. This is untrue of components: components always have unlimited access rights to other components.

Parameters:
id Identification of the caller. If this is an invalid handle, or if the caller does not have enough access rights, a AcsJNoPermissionEx exception is raised.
curl CURL of the component whose reference is to be retrieved.
activate true if the Component is to be activated in case it does not exist. If set to false, and the Component exist, a null reference is returned and status is set to COMPONENT_NOT_ACTIVATED.
status Status of the request. One of COMPONENT_ACTIVATED, COMPONENT_DOES_NO_EXIST and COMPONENT_NOT_ACTIVATED.
Returns:
Reference to the Component. If the Component could not be activated, a nil reference is returned, and the status contains an error code detailing the cause of failure (one of the component_* constants).

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_component().

ComponentInfo [] com.cosylab.acs.maci.Manager.getComponentInfo ( int  id,
int[]  handles,
String  name_wc,
String  type_wc,
boolean  activeOnly 
) throws AcsJNoPermissionEx

Get all the information that the Manager has about components. To invoke this method, the caller must have INTROSPECT_MANAGER access rights, or it must have adequate privileges to access the Component (the same as with the get_component method). Information about all components is returned, unless the active_only parameter is set to true, in which case only information about those components that are currently registered with the Manager and activated is returned. Calling this function does not affect the internal state of the Manager.

Parameters:
id Identification of the caller.
handles Handles of the components whose information is requested. If this is an empty sequence, the name_wc and type_wc parameters are used.
name_wc Wildcard that the Component's name must match in order for its information to be returned.
type_wc Wildcard that the Component's type must match in order for its information to be returned.
activeOnly If true returns information only about components that are activated.
Returns:
A sequence of ComponentInfo structures containing the entire Manager's knowledge about the components. If access is denied to a subset of objects, the handles to those objects are set to 0.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_component_info(), and com.cosylab.acs.maci.manager.ManagerImpl.getComponentInfo().

Component com.cosylab.acs.maci.Manager.getComponentNonSticky ( int  id,
URI  curl 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx

Get a component, do not activate it and also do not do any reference counting. The client represented by id (the handle) must have adequate access rights to access the Component. This is untrue of components: components always have unlimited access rights to other components.

Parameters:
id Identification of the caller. If this is an invalid handle, or if the caller does not have enough access rights, a AcsJNoPermissionEx exception is raised.
component_url CURL of the Component whose reference is to be retrieved.
Returns:
Reference to the Component.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_component_non_sticky().

ContainerInfo [] com.cosylab.acs.maci.Manager.getContainerInfo ( int  id,
int[]  handles,
String  name_wc 
) throws AcsJNoPermissionEx

Get all the information that the Manager has about its known containers. To invoke this method, the caller must have INTROSPECT_MANAGER access rights, or it must be the object whose info it is requesting (request by handle sequence of length one). Calling this function does not affect the internal state of the Manager.

Parameters:
id Identification of the caller.
handles Handles of the containers whose information is requested. If this is an empty sequence, the name_wc parameter is used.
name_wc Wildcard that the container's name must match in order for its information to be returned.
Returns:
A sequence of ContainerInfo structures containing the entire Manager's knowledge about the containers. If access is denied to a subset of objects, the handles to those objects are set to 0.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_container_info().

ComponentInfo com.cosylab.acs.maci.Manager.getDefaultComponent ( int  id,
String  type 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, NoDefaultComponentException

Get default component of given type. The client represented by id (the handle) must have adequate access rights to access the component.

Parameters:
id Identification of the caller. If this is an invalid handle, or if the caller does not have enough access rights, a AcsJNoPermissionEx exception is raised.
type type of the component whose reference is to be restarted.
Returns:
ComponentInfo of the component. If no defualt component is found NoDefaultComponentException exception is thrown.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_default_component().

String com.cosylab.acs.maci.Manager.getDomain (  ) 

Return the fully qualified name of the domain, e.g., "antenna1.alma.nrao".

Returns:
the fully qualified name of the domain

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.domain_name().

ComponentInfo com.cosylab.acs.maci.Manager.getDynamicComponent ( int  id,
ComponentSpec  componentSpec,
boolean  markAsDefault 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, AcsJIncompleteComponentSpecEx, AcsJInvalidComponentSpecEx, AcsJComponentSpecIncompatibleWithActiveComponentEx

Activation of an dynamic component.

Parameters:
id Identification of the caller.
componentSpec Component to be obtained.
markAsDefault Mark component as default component of its type.
Returns:
ComponentInfo of requested component. If componentSpec if found to be incomplete IncompleteComponentSpecException exception is thrown. If requested component collides with already activated component with the same name ComponentSpecIncompatibleWithActiveComponentException exception is thrown.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_dynamic_component().

Component com.cosylab.acs.maci.Manager.getService ( int  id,
URI  curl,
boolean  activate,
StatusHolder  status 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx

Get a service. NOTE: a component is also a service, i.e. a service activated by a container.

See also:
get_component

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.get_service().

ClientInfo com.cosylab.acs.maci.Manager.login ( Client  reference  )  throws AcsJNoPermissionEx

Login to MACI. Containers, Clients and Administrative clients call this function first to identify themselves with the Manager. The Manager authenticates them (through the authenticate function), and assigns them access rights and a handle, through which they will identify themselves at subsequent calls to the Manager.

Parameters:
reference A reference to the Client.
Returns:
A ClientInfo structure with handle (h) and access fields filled-in. If the client with this name did not logout prior to calling login, the components sequence in ClientInfo contains the handles of all components that the client was using. (For containers, the components sequence contains handles of all components previously hosted by the Container.)

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.login(), and com.cosylab.acs.maci.plug.ClientProxyImpl.login().

void com.cosylab.acs.maci.Manager.logout ( int  id  )  throws AcsJNoPermissionEx

Logout from MACI.

Parameters:
id Handle of the Client that is logging out

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.logout(), and com.cosylab.acs.maci.plug.ClientProxyImpl.logout().

void com.cosylab.acs.maci.Manager.makeComponentImmortal ( int  id,
URI  curl,
boolean  immortalState 
) throws AcsJCannotGetComponentEx, AcsJNoPermissionEx, AcsJBadParameterEx

Change mortality state of an component. Compnent must be already active, otherwise NoResourcesException exception will be thrown. The caller must be an owner of an component or have administator rights, otherwise AcsJNoPermissionEx exception will be thrown.

Parameters:
id Identification of the caller. The caller must be an owner of an component or have administator rights.
curl The CURL of the component whose mortality to change.
immortalState New mortality state.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.make_component_immortal().

int com.cosylab.acs.maci.Manager.registerComponent ( int  id,
URI  curl,
String  type,
Component  cob 
) throws AcsJNoPermissionEx, AcsJBadParameterEx

Register a CORBA object as a component, assigning it a CURL and making it accessible through the Manager. The component is treated as an immortal Component.

Parameters:
id Identification of the caller. The caller must have the REGISTER_COMPONENT access right to perform this operation.
curl CURL that will be assigned to the object. The CURL must be in the Manager's domain, otherwise a fundamental property of domains that one computer belongs to only one domain would be too easy to violate.
type Type of the component
cob Object to be registered as component.
Returns:
Returns the handle of the newly registered component.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.register_component().

int com.cosylab.acs.maci.Manager.releaseComponent ( int  id,
URI  curl 
) throws AcsJNoPermissionEx, AcsJBadParameterEx

Release a component. In order for this operation to be possible, the caller represented by the id must have previously successfuly requested the component via a call to get_component. Releasing a component more times than requesting it should be avoided, but it produces no errors.

Parameters:
id Identification of the caller. The caller must have previously got the Component through get_component.
curl The CURL of the Component to be released.
Returns:
Number of clients that are still using the Component after the operation completed. This is a useful debugging tool.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.release_component().

void com.cosylab.acs.maci.Manager.releaseComponentAsync ( int  id,
URI  curl,
LongCompletionCallback  callback 
) throws AcsJNoPermissionEx, AcsJBadParameterEx
Component com.cosylab.acs.maci.Manager.restartComponent ( int  id,
URI  curl 
) throws AcsJNoPermissionEx, AcsJBadParameterEx

Restart a component. The client represented by id (the handle) must be a owner of a component.

Parameters:
id Identification of the caller. If this is an invalid handle, or if the caller does not have enough access rights, a AcsJNoPermissionEx exception is raised.
curl CURL of the component whose reference is to be restarted.
Returns:
Reference to the component. If the component could not be restarted, a nil reference is returned.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.restart_component().

void com.cosylab.acs.maci.Manager.shutdown ( int  id,
int  containers 
) throws AcsJNoPermissionEx

Shutdown the Manager. Warning: This call will also deactivate all components active in the system, including startup and immortal components.

Parameters:
id Identification of the caller. The caller must have the SHUTDOWN_SYSTEM access right.
containers The code to send to shutdown methods of all containers. If 0, the Container's shutdown methods are not called.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.shutdown().

void com.cosylab.acs.maci.Manager.shutdownContainer ( int  id,
String  containerName,
int  action 
) throws AcsJNoPermissionEx

Shutdown a container.

Parameters:
id Identification of the caller. The caller must have the SHUTDOWN_SYSTEM access right.
container_name name of the container to shutdown.
action The code to send to shutdown method of the container. If 0, the Container's disconnect methods is called instead.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.shutdown_container().

void com.cosylab.acs.maci.Manager.unregisterComponent ( int  id,
int  handle 
) throws AcsJNoPermissionEx, AcsJBadParameterEx

Unregister a component from the Manager.

Parameters:
id Identification of the caller. The caller must have the REGISTER_COMPONENT access right to perform this operation.
handle Component's handle. The component must have been previously registered through the call to register_component. If there are clients still using this component, a components_unavailable notification is issued to all of them, and the component is unregistered.

Referenced by com.cosylab.acs.maci.plug.ManagerProxyImpl.unregister_component().


The documentation for this interface was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties