// the next two lines are C preprocessor directives
// which are allowed in CORBA IDL
#ifndef _ASManagementAgent_idl_
#define _ASManagementAgent_idl_
#include "CosEventComm.idl"
// this module will be converted to
// a java package 'ASManagementAgent'
module ASManagementAgent {
interface ASManagementAgent
{
//*************************
// data types
//*************************
//parameterlist is a string containing the parameters of one constructor
//separated by spaces
typedef string parameterlist;
//return value for get_agent_parameters(...). It is an array of parameterlists
typedef sequence< parameterlist > parametersets;
//agentsystemname is a string containing the name of an agent system
typedef string agentsystemname;
//agentsystem_list is a sequence of agentsystemnames containing the names of the
//agent systems found in the appropriate naming context of the CORBA Naming Service.
typedef sequence< agentsystemname > agentsystem_list;
//packagename is a string containing the name of a Java package
typedef string packagename;
//agenttype is a string containing the MASA type of an agent. This can be
//"StationaryAgent" or "MobileAgent"
typedef string agenttype;
//pushConsumer_idnr is an integer containing the id number of a pushConsumer
//that has been registered by an applet with the ASManagementAgent. It's value
//is assigned by ASManagementAgent.connect_push_consumer(...)
typedef long pushConsumer_idnr;
//*************************
// methods
//*************************
//get list of active agent systems
agentsystem_list identify_agentsystems();
//get parameter types for agent "agent_name"
parametersets get_agent_parameters(in string agent_name, in packagename agent_package, in agenttype agent_type);
//connect pushConsumer of applet to the ASManagementAgent
pushConsumer_idnr connect_push_consumer(in CosEventComm::PushConsumer pushConsumer);
//disconnect pushConsumer of applet from ASManagementAgent
void disconnect_push_consumer(in pushConsumer_idnr id);
};
};
#endif