// the next two lines are C preprocessor directives
// which are allowed in CORBA IDL
#ifndef _RegionManagementAgent_idl_
#define _RegionManagementAgent_idl_
// this will be a mobile agent
// so I need Migration.idl
#include "Migration.idl"
#include "CosEventComm.idl"
// this module will be converted to
// a java package 'RegionManagementAgent'
module RegionManagementAgent {
interface RegionManagementAgent : agent::Migration
{
//*************************
// data types
//*************************
//agentsystem_url is a string containing the url of an agent system,
//e.g. "http://pcheger14.nm.informatik.uni-muenchen.de:4324"
typedef string agentsystem_url;
//agentsystem_name is a string containing the name a an agent system.
typedef string agentsystem_name;
//agentname is a string containing the name of an agent
typedef string agentname;
//agentname_list is a sequence of agentnames containing a list of names of the agents
//found in the naming context of an agent system.
typedef sequence< agentname > agentname_list;
//*************************
// methods
//*************************
//get url of agent system "as"
agentsystem_url get_AS_URL(in agentsystem_name as);
//terminate agent system "as"
void terminate_agent_system(in agentsystem_name as);
//migrate agent "agent_identity" from agent system "as" to "target"
void migrate_agent(in string agent_identity, in agentsystem_name target, in agentsystem_name as);
//list all agents in agent system "as"
agentname_list list_agent_names(in agentsystem_name as);
};
};
#endif