#if 0 /* * This module defines types and interfaces * for administration of Cipres API2 interfaces. Perhaps registry * arcana should go here too? * * $Id: Admin.IDL 1632 2006-07-11 21:59:01Z rvosa $ */ 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; typedef sequence CommandObjSequence; // Basically this is an xml document that is the guixml for the service, but if // the service uses sub-services, instead of creating a big doc that contains their // guixmls too, use the children objects. struct CommandObject { Target commandTarget; // this is the guixml for the commandTarget. String commands; CommandObjSequence children; }; /* SCRIPTABLE */ typedef string Xml; interface Scriptable { // Want to keep getUIXml here even though we currently get the guixml from the registry, because // we may want to get a new guixml from the service that reflects the current state of the service. For // example, if a subservice has already been hired, we'd return the subservice's guixml in a nested // child commandObject. CommandObject getUIXml(); boolean execute(in CommandObject, out CommandObject); }; /* LIFECYCLE */ interface LifeCycle { void remove(); }; /* OBJECTFACTORY */ interface ObjectFactory { Object build(in string repositoryID, in string appName) raises (ApplicationException); }; /* RENDEZVOUS */ typedef string Receipt; interface RendezVous { RegistryEntryInfo disconnect(out string receipt); void reconnect(in Receipt reference); }; }; #endif