Public Member Functions | Public Attributes

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)
void release_component_async (in Handle id, in CURL component_url, in ACS::CBlong callback, in ACS::CBDescIn desc) raises (maciErrType::NoPermissionEx)
long release_component (in Handle id, in CURL component_url) raises (maciErrType::NoPermissionEx, maciErrType::CannotDeactivateComponentEx, maciErrType::ComponentDeactivationUncleanEx, maciErrType::ComponentDeactivationFailedEx)
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.

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

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

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.
void maci::Manager::release_component_async ( in Handle  id,
in CURL  component_url,
in ACS::CBlong  callback,
in ACS::CBDescIn  desc 
) raises (maciErrType::NoPermissionEx)

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

This method will return before the manager/target container have deactivated the component. If the caller wants to synchronize with component deactivation, it must supply the optional ComponentRequestCallback.

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: