#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; }; 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) raises(ApplicationException, NoRegistryMatchException); /* 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. */ }; };