Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

maci::Manager Interface Reference

import "maci.idl";

Inheritance diagram for maci::Manager:

Inheritance graph
[legend]
Collaboration diagram for maci::Manager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

boolean ping ()
ClientInfo login (in Client reference) raises (maciErrType::NoPermissionEx)
void logout (in Handle id) raises (maciErrType::NoPermissionEx)
Handle register_component (in Handle id, in string component_url, in string type, in Object c) raises (maciErrType::NoPermissionEx, maciErrType::CannotRegisterComponentEx)
void unregister_component (in Handle id, in Handle h) raises (maciErrType::NoPermissionEx, maciErrType::CannotUnregisterComponentEx)
Object get_service (in Handle id, in CURL service_url, in boolean activate) raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx, maciErrType::ComponentNotAlreadyActivatedEx, maciErrType::ComponentConfigurationNotFoundEx)
Object get_component (in Handle id, in CURL service_url, in boolean activate) raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx, maciErrType::ComponentNotAlreadyActivatedEx, maciErrType::ComponentConfigurationNotFoundEx)
Object get_component_non_sticky (in Handle id, in CURL component_url) raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx, maciErrType::ComponentNotAlreadyActivatedEx)
void make_component_immortal (in Handle id, in CURL component_url, in boolean immortal_state) raises (maciErrType::NoPermissionEx, maciErrType::ComponentNotAlreadyActivatedEx)
long release_component (in Handle id, in CURL component_url) raises (maciErrType::NoPermissionEx)
long force_release_component (in Handle id, in CURL component_url) raises (maciErrType::NoPermissionEx)
oneway void shutdown (in Handle id, in unsigned long containers)
ContainerInfoSeq get_container_info (in Handle id, in HandleSeq h, in string name_wc) raises (maciErrType::NoPermissionEx)
ClientInfoSeq get_client_info (in Handle id, in HandleSeq h, in string name_wc) raises (maciErrType::NoPermissionEx)
ComponentInfoSeq get_component_info (in Handle id, in HandleSeq h, in string name_wc, in string type_wc, in boolean active_only) raises (maciErrType::NoPermissionEx)
Object restart_component (in Handle client, in CURL component_url) raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx)
ComponentInfo get_dynamic_component (in Handle client, in ComponentSpec c, in boolean mark_as_default) raises (maciErrType::NoPermissionEx, maciErrType::IncompleteComponentSpecEx, maciErrType::InvalidComponentSpecEx, maciErrType::ComponentSpecIncompatibleWithActiveComponentEx, maciErrType::CannotGetComponentEx)
ComponentInfo get_collocated_component (in Handle client, in ComponentSpec c, in boolean mark_as_default, in CURL target_component) raises (maciErrType::NoPermissionEx, maciErrType::IncompleteComponentSpecEx, maciErrType::InvalidComponentSpecEx, maciErrType::ComponentSpecIncompatibleWithActiveComponentEx, maciErrType::CannotGetComponentEx)
ComponentInfo get_default_component (in Handle client, in string component_type) raises (maciErrType::NoPermissionEx, maciErrType::NoDefaultComponentEx, maciErrType::CannotGetComponentEx)
void shutdown_container (in Handle id, in string container_name, in unsigned long action) raises (maciErrType::NoPermissionEx)

Public Attributes

readonly attribute string domain_name

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:


Member Function Documentation

long maci::Manager::force_release_component in Handle  id,
in CURL  component_url
raises (maciErrType::NoPermissionEx)
 

Releases a component also if still referenced by other components/clients.

Returns:
Number of clients that were still referencing the component after the operation completed. This is a useful debugging tool.
Parameters:
id  Identification of the caller.
component_url  The CURL of the component to be (forcefully) released.

ClientInfoSeq maci::Manager::get_client_info in Handle  id,
in HandleSeq  h,
in string  name_wc
raises (maciErrType::NoPermissionEx)
 

Get all the information that the Manager has about its current clients. To invoke this method, the caller must have INTROSPECT_MANAGER access rights, or it must be the object whose info it is requesting.

Calling this function does not affect the internal state of the Manager.

Returns:
A sequence of ClientInfo structures containing the entire Manager's knowledge about the clients. If access is denied to a subset of objects, the handles to those objects are set to 0.
Parameters:
id  Identification of the caller.
h  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 client's name must match in order for its information to be returned.

ComponentInfo maci::Manager::get_collocated_component in Handle  client,
in ComponentSpec  c,
in boolean  mark_as_default,
in CURL  target_component
raises (maciErrType::NoPermissionEx, maciErrType::IncompleteComponentSpecEx, maciErrType::InvalidComponentSpecEx, maciErrType::ComponentSpecIncompatibleWithActiveComponentEx, maciErrType::CannotGetComponentEx)
 

Activation of a component so that it runs in the same process as another given component.

Parameters:
client  Identification of the caller.
c  Component to be obtained.
mark_as_default  Mark component as default component of its type.
target_component  CURL of the target component (where to activate component).

Object maci::Manager::get_component in Handle  id,
in CURL  service_url,
in boolean  activate
raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx, maciErrType::ComponentNotAlreadyActivatedEx, maciErrType::ComponentConfigurationNotFoundEx)
 

Get a component, activating it if necessary. The client represented by id (the handle) must have adequate access rights to access the component.

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).
Parameters:
id  Identification of the caller. If this is an invalid handle, or if the caller does not have enough access rights, a maciErrType::NoPermissionEx exception is raised.
service_url  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 is not already active, an maciErrType::ComponentNotAlreadyActivatedEx exception is thrown

ComponentInfoSeq maci::Manager::get_component_info in Handle  id,
in HandleSeq  h,
in string  name_wc,
in string  type_wc,
in boolean  active_only
raises (maciErrType::NoPermissionEx)
 

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.

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.
Parameters:
id  Identification of the caller.
h  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.

Object maci::Manager::get_component_non_sticky in Handle  id,
in CURL  component_url
raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx, maciErrType::ComponentNotAlreadyActivatedEx)
 

Gets a non-sticky reference to a component.

A non-sticky reference does not bind the Manager to keep alive the Component, and the Client requesting a non-sticky reference is not considered when checking for reference counts. The Manager can deactivate Components independently of any non-sticky reference.

This is typically used by "weak clients" like graphical user interfaces.

Since a non-sticky reference is not considered in reference counting, it will also not activate the component if it is not already active.

As a consequence, asking for a non-sticky reference to a not-active Component throws an exception.

The client should not attempt to release the non-sticky reference, which would yield an exception.

The client represented by id (the handle) must have adequate access rights to access the component.

Returns:
Reference to 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 maciErrType::NoPermissionEx exception is raised.
component_url  CURL of the component whose reference is to be retrieved.

ContainerInfoSeq maci::Manager::get_container_info in Handle  id,
in HandleSeq  h,
in string  name_wc
raises (maciErrType::NoPermissionEx)
 

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.

Calling this function does not affect the internal state of the Manager.

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.
Parameters:
id  Identification of the caller.
h  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.

ComponentInfo maci::Manager::get_default_component in Handle  client,
in string  component_type
raises (maciErrType::NoPermissionEx, maciErrType::NoDefaultComponentEx, maciErrType::CannotGetComponentEx)
 

Returns the default component of specific type.

Parameters:
client  Identification of the caller.
component_type  Component IDL type (e.g. IDL:alma/PS/PowerSupply:1.0).

ComponentInfo maci::Manager::get_dynamic_component in Handle  client,
in ComponentSpec  c,
in boolean  mark_as_default
raises (maciErrType::NoPermissionEx, maciErrType::IncompleteComponentSpecEx, maciErrType::InvalidComponentSpecEx, maciErrType::ComponentSpecIncompatibleWithActiveComponentEx, maciErrType::CannotGetComponentEx)
 

Activation of dynamic component.

Parameters:
client  Identification of the caller.
c  Component to be obtained.
mark_as_default  Mark component as default component of its type.

Object maci::Manager::get_service in Handle  id,
in CURL  service_url,
in boolean  activate
raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx, maciErrType::ComponentNotAlreadyActivatedEx, maciErrType::ComponentConfigurationNotFoundEx)
 

Get a service, activating it if necessary (components). The client represented by id (the handle) must have adequate access rights to access the service. NOTE: a component is also a service, i.e. a service activated by a container.

Returns:
Reference to the service. If the service 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).
Parameters:
id  Identification of the caller. If this is an invalid handle, or if the caller does not have enough access rights, a maciErrType::NoPermissionEx exception is raised.
service_url  CURL of the service whose reference is to be retrieved.
activate  True if the service is to be activated in case it is not already active. If set to False, and the service is not already active, an maciErrType::ComponentNotAlreadyActivatedEx exception is thrown

ClientInfo maci::Manager::login in Client  reference  )  raises (maciErrType::NoPermissionEx)
 

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.

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.)
Parameters:
reference  A reference to the Client.

void maci::Manager::logout in Handle  id  )  raises (maciErrType::NoPermissionEx)
 

Logout from MACI.

Parameters:
id  Handle of the Client that is logging out.

void maci::Manager::make_component_immortal in Handle  id,
in CURL  component_url,
in boolean  immortal_state
raises (maciErrType::NoPermissionEx, maciErrType::ComponentNotAlreadyActivatedEx)
 

Change mortality state of an component. Component must be already active, otherwise maciErrType::ComponentNotAlreadyActivatedEx exception will be thrown. The caller must be an owner of an component or have administator rights, otherwise maciErrType::NoPermissionEx exception will be thrown.

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

boolean maci::Manager::ping  ) 
 

Allows operator/monitoring tools to check the status of the manager. The required return value is "true" (it is not entierely clear why these ping methods don't usually just return void).

Handle maci::Manager::register_component in Handle  id,
in string  component_url,
in string  type,
in Object  c
raises (maciErrType::NoPermissionEx, maciErrType::CannotRegisterComponentEx)
 

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.

Returns:
Returns the handle of the newly created component.
Parameters:
id  Identification of the caller. The caller must have the REGISTER_COMPONENT access right to perform this operation.
component_url  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.
c  Reference to the CORBA object (component).

long maci::Manager::release_component in Handle  id,
in CURL  component_url
raises (maciErrType::NoPermissionEx)
 

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.

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

Object maci::Manager::restart_component in Handle  client,
in CURL  component_url
raises (maciErrType::NoPermissionEx, maciErrType::CannotGetComponentEx)
 

Restarts a component.

Parameters:
client  Identification of the caller.
component_url  CURL of the component to be restarted.

oneway void maci::Manager::shutdown in Handle  id,
in unsigned long  containers
 

Shutdown the Manager.

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

Notice that this is a oneway method and therefore there cannot be return values or user exceptions. Only CORBA runtime exceptions due to communication issues can be thrown

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.

void maci::Manager::shutdown_container in Handle  id,
in string  container_name,
in unsigned long  action
raises (maciErrType::NoPermissionEx)
 

Shutdown a container.

Parameters:
id  Identification of the caller.
container_name  Name of the container to be shutdown.
action  The code to send to shutdown methods of the container. If 0, the container's disconnect method are is called instead.

void maci::Manager::unregister_component in Handle  id,
in Handle  h
raises (maciErrType::NoPermissionEx, maciErrType::CannotUnregisterComponentEx)
 

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.
h  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.


Member Data Documentation

readonly attribute string maci::Manager::domain_name
 

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


The documentation for this interface was generated from the following file:
Generated on Thu Apr 30 02:29:42 2009 for ACS IDL interfaces by doxygen 1.3.8