// basic elements for text module gsdlInterface { typedef sequence usString; typedef sequence stringSeq; // // Used to textual arguments backwards and forwards across // the interface. The encoding is 0 for full unicode character // data and undefined otherwise. // struct corbatext_t { usString text; unsigned short encoding; unsigned long length; }; typedef sequence corbatext_tarray; typedef corbatext_tarray corbatext_tset; // // A map of names to values. Names may occur twice. Used largely // for passing metadata around // struct corbatext_tmap { corbatext_tarray names; corbatext_tarray values; }; // standard error values enum corbaComError { // There were no errors corbaNoError, // The server could not authenticate the client or the // authentication indicated insufficient priviledges corbaAuthenticationFailure, // ?? corbaProtocolError, // ?? corbaConfigurationError, // The server is unable to provide service due to an // unspecified system problem on the server side. corbaSystemProblem }; // // getColInfo response // struct corbaShortColInfo { // the textual name of the collection corbatext_t name; // the textual name of the server corbatext_t host; // ??? long response; }; struct corbaColInfoResponse { corbaShortColInfo shoftInfo; // the collection is public boolean isPublic; // the collection is reliable boolean isBeta; // the timestamp of the collection building unsigned long buildDate; // ??? corbatext_tarray ccsCols; // Added 05/04/2000 // ??? corbatext_tarray languages; // the number of documents in the collection unsigned long numDocs; // the number of words in the collection unsigned long numWords; // the number of bytes in the collection unsigned long numBytes; // the collection level metadata corbatext_tmap collectionMeta; // ??? corbatext_tmap format; // ??? corbatext_tmap building; // the domain for http request for associated files and images corbatext_t httpdomain ; // Added 27/07/2000 // the domain for prefix request for associated files and images corbatext_t httpprefix; // Added 27/07/2000 // the textual name of the receptionist corbatext_t receptionist; }; // // getDocument request // struct corbaDocRequest { // the document ID corbatext_t OID; // the mine type the Doc should be in, or "" for any corbatext_t docType; // ?? corbatext_t docFormat; }; // // getDocument response // struct corbaDocResponse { // the actual document corbatext_t doc; }; enum corbaFilterType { booleanType, integerType, enumeratedType, stringType }; enum corbaFilterRepeatable { onePerQuery, onePerTerm, nPerTerm }; struct corbaFilterOption { corbatext_t name; corbaFilterType type; corbaFilterRepeatable repeatable; corbatext_t defaultValue; corbatext_tarray validValues; }; typedef sequence corbaFilterOptionList; struct corbaFilterOptionsResponse { corbaFilterOptionList options; corbatext_tarray names; }; // // structures for filter call // struct corbaOptionValue { corbatext_t name; corbatext_t value; }; typedef sequence corbaOptionValue_array; struct corbaFilterRequest { corbatext_t filter; corbaOptionValue_array filterOptions; corbatext_tarray docSet; long filterResultOptions; corbatext_t requestParams; corbatext_t refParams; corbatext_tset fields; boolean getParents; }; struct corbaTermInfo { corbatext_t term; long frequency; corbatext_tarray matchTerms; }; typedef sequence corbaTermInfo_array; struct corbaMetadataInfo { corbatext_t params; boolean isRef; corbatext_tarray values; long id; long parentid; // dodge for avoiding pointers for the moment }; typedef sequence corbaMetadataInfo_array; struct corbaMetadataInfo_map { corbatext_tarray names; corbaMetadataInfo_array values; }; typedef sequence corbaDocFreq_array; struct corbaResultDocInfo { corbatext_t OID; long resultNum; long ranking; long termsMatched; long phraseMatched; corbaDocFreq_array docFreq; corbaMetadataInfo_map metadata; corbatext_t classifierMetadataType; // Added 05/04/2000 long classifierMetadataOffset; // Added 05/04/2000 corbaMetadataInfo_array metaparents; }; typedef sequence corbaResultDocInfo_array; enum corbaIsApprox { resultExact, resultApprox, resultMany }; struct corbaFilterResponse { long numDocs; corbaIsApprox isApprox; corbaTermInfo_array termInfo; corbaResultDocInfo_array docInfo; }; interface corbaiface { boolean initialise(inout corbaComError error); void configure(in corbatext_t key, in corbatext_tarray cfgline, inout corbaComError error); void collectionList(inout corbatext_tarray collist, inout corbaComError error); void hasCollection(in corbatext_t corbaCollection, inout boolean has, inout corbaComError error); void ping(in corbatext_t collection, inout boolean wasSuccess, inout corbaComError error); void getDocument(in corbatext_t collection, inout corbaDocRequest request, inout corbaDocResponse response, inout corbaComError error); void getCollectInfo(in corbatext_t collection, inout corbaColInfoResponse response, inout corbaComError error); void getFilterInfo(in corbatext_t collection, inout corbatext_tarray filterNames, inout corbaComError error); void getFilterOptions(in corbatext_t collection, in corbatext_t option, inout corbaFilterOptionsResponse response, inout corbaComError error); void filter(in corbatext_t collection, in corbaFilterRequest request, inout corbaFilterResponse response, inout corbaComError error); }; };