/*
* @@COPYRIGHT@@
*/
package com.cosylab.acs.maci;
/**
* Administrator is a special-purpose client that can monitor the functioning of the domain that it administers.
* Monitoring includes obtaining the status of the MACI components (the Manager and Containers) as well
* as notification about the availability of the Component components.
* The administrator client is granted special access permissions (INTROSPECT_MANAGER).
*
* @author Matej Sekoranja (matej.sekoranja@cosylab.com)
* @version @@VERSION@@
* @see Client
*/
public interface Administrator extends Client
{
/**
* Notification that an container has just logged in.
*
* @param info Information about the container that has just logged in.
* If the handle of the container (<code>info.h</code>) is 0, the container failed to authenticate.
*/
public void containerLoggedIn(ContainerInfo info, long timeStamp, long executionId) throws RemoteException;
/**
* Notification that a container has just logged out.
*
* @param handle Handle of the container that has logged out.
*/
public void containerLoggedOut(int handle, long timeStamp) throws RemoteException;
/**
* Notification that a client has just logged in.
*
* @param info Information about the client that has just logged in.
* If the handle of the client (<code>info.h</code>) is 0, the client failed to authenticate.
*/
public void clientLoggedIn(ClientInfo info, long timeStamp, long executionId) throws RemoteException;
/**
* Notification that a client has just logged out.
*
* @param handle Handle of the client that has logged out.
*/
public void clientLoggedOut(int handle, long timeStamp) throws RemoteException;
/**
* Notification that some components have just been requested (through get_component or get_components).
*
* @param clients Handles of clients requesting components.
* @param components Handles of requested components.
* Component at the i-th place in the sequence was requested by the i-th client of sequence clients.
*/
public void components_released(int[] clients, int[] components, long timeStamp) throws RemoteException;
/**
* Notification that some components have just been released (through release_component or release_components).
*
* @param clients Handles of clients requesting components.
* @param components Handles of requested components.
* Component at the i-th place in the sequence was requested by the i-th client of sequence clients.
*/
public void components_requested(int[] clients, int[] components, long timeStamp) throws RemoteException;
/**
* Notification that some component has just been activated (through Container.activate_component).
*
* @param component ComponentInfo of activated component.
*/
public void component_activated(ComponentInfo info, long timeStamp, long executionId) throws RemoteException;
/**
* Notification that some component has just been deactivated (through Container.deactivate_component).
*
* @param handle Handle of component being deactivated.
*/
public void component_deactivated(int handle, long timeStamp) throws RemoteException;
}