import "maci.idl";
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 |
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
void maci::Manager::logout | ( | in Handle | id | ) | raises (maciErrType::NoPermissionEx) |
Logout from MACI.
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.
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.
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, maciErrType::CannotDeactivateComponentEx, maciErrType::ComponentDeactivationUncleanEx, maciErrType::ComponentDeactivationFailedEx) |
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.
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.
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.
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
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.
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.
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. |
readonly attribute string maci::Manager::domain_name |
The fully qualified name of the domain, e.g., "antenna1.alma.nrao".