#include "api1/Cipres.idl" module CipresIDL_api1 { /* registryInstanceID - is a string that should uniquely identify the registry that this entry comes from. It should also be something that is meaningful to an end user. Typically this will be the hostname of the machine on which the registry is running. The registry fills this field of each entry from the registryInstanceID element of the registry xml file. repositoryID - this identifies the IDL interface of the object that this entry describes. This is used programatically. applicationName - a name, like "paup" or "phycas" that identifies the program that provides the service described by this entry. description - further describes this entry. */ #ifndef RENDEZ_VOUS struct RegistryEntryInfo { string registryInstanceID; string repositoryID; string applicationName; string description; }; typedef sequence RegistryEntryInfoSeq; #endif exception NoRegistryMatchException { string msg; }; struct Service { long serviceID; long groupID; RegistryEntryInfo entry; }; typedef sequence ServiceSeq; typedef sequence ServiceGroupSeq; interface Registry { readonly attribute string registryInstanceID; /* all entries in this registry have this instanceID. normally this will be the hostname. Registry clients should not use this attribute - it is only meant to be used in implementing a federated registry. */ RegistryEntryInfoSeq find(in RegistryEntryInfo match); /* Returns all matching registry entries. Specify "*" or "" for a field to ignore that field in matching. For example, find (new RegistryEntryInfo ("myMac", "IDL:CipresIDL/TreeRefine:1.0", "*", "*")) returns all entries that match the specified registryInstanceID and repositoryID regardless of the applicationName and description. Returns a zero length sequence if there are no matches. */ RegistryEntryInfo findFirst(in RegistryEntryInfo match) raises(NoRegistryMatchException) ; /* Returns the first matching entry. Throws exception if there is no match. */ Object getObject(in RegistryEntryInfo entry, in long groupID) raises(ApplicationException, NoRegistryMatchException, BadArgException); /* Returns the object described by the entry. Object will be of type specified in the RegistryEntryInfo. The RegistryEntryInfo parameter must be fully filled in - it should be a RegistryEntryInfo obtained from a prior call to find(). */ string getUiXml(in RegistryEntryInfo entry) raises(NoRegistryMatchException); /* Returns string containing the GUI XML file for the service. Similar to calling getUIXml() on the service itself. */ long createServiceGroup(in string label); void removeServiceGroup(in long groupID) raises(BadArgException); Service listService(in long serviceID) raises(BadArgException); ServiceSeq listServiceGroup(in long groupID) raises(BadArgException); ServiceGroupSeq listAllServices(); void stopService(in long serviceID) raises(BadArgException); void stopServiceGroup(in long groupID) raises(BadArgException); void stopAllServices(); }; };