/* * This module defines types and interfaces * for administration of Cipres API2 interfaces. Perhaps registry * arcana should go here too? * * $Id$ */ module CipresIDL_api2 { /* EXCEPTIONS */ exception ApplicationException { string msg; }; exception BadArgException { string msg; }; exception TreeParseException { string msg; }; /* COMMAND OBJECTS */ enum TargetType {IOR_TARGET_TYPE, REGISTRY_TARGET_TYPE }; union TargetReference switch(TargetType) { case IOR_TARGET_TYPE : string ior; case REGISTRY_TARGET_TYPE : string registryInfo; }; struct Target { TargetReference reference; string uiId; }; typedef sequence CommandSequence; struct CommandObject { Target commandTarget; CommandSequence commands; sequence children; }; /* SCRIPTABLE */ typedef string Xml; interface Scriptable { Xml getUIXml(); boolean execute(in string command, out string display); }; interface RecursiveScriptable : Scriptable { boolean executeRecursive(in CommandObject commandObjectParam, out string display); }; /* LIFECYCLE */ interface LifeCycle { void remove(); }; /* OBJECTFACTORY */ interface ObjectFactory { Object build(in string repositoryID, in string appName) raises (ApplicationException); }; /* RENDEZVOUS */ typedef string Receipt; interface RendezVous { Receipt disconnect(); void reconnect(in Receipt reference); }; };