source: main/trunk/greenstone2/runtime-src/src/corba/corbaiface.idl

Last change on this file was 25231, checked in by ak19, 12 years ago

Many changes to get corba working again ever since the addition of RSS support meant that the method get_rss_items needed to be mirrored in the corba code. The corba code was not compiling then and it turned out we needed a later version of Mico's corba implementation (2.3.13 up from 2.3.5). Therefore the current commit not only corrects some errors in the recently added getRssItems() method but includes further changes: 1. namespaced use of iostream functions were required in some mpp files. 2. New types and member variables added to the corbaiface.idl interface file, to mirror the presence of equivalent variables in comtools.h which hadn't been ported over yet. (Such as the complex corba data type equivalent of collectionmetamap used in comtools.h.) This required (de)serialisation methods to be declared and implemented in corbatext_t.h and corbatext_t.mpp. The additional member variables for the corbaColInfoResponse in corbaiface.idl are now also unpacked in corbaproto.mpp along with the rest of the data structure. 3. Having changed from mico version 2.3.5 to 2.3.13 required code to changed to use POA instead of BOA. This also meant that skeleton files were no longer to be generated when running idl over corbaiface.idl. corbaserver inherits from a POA related object now instead of from the skeleton. 4. Makefile.in was updated to reflect these changes (absence of skeleton), includes a target to run IDL over the corbaiface.idl file to generate the necessary helper files, and corrects earlier oversights in updating the corba makefile with the rest of the changes made over time to runtime-src.

  • Property svn:keywords set to Author Date Id Revision
File size: 7.1 KB
Line 
1// basic elements for text
2
3module gsdlInterface {
4
5typedef sequence<unsigned short> usString;
6
7typedef sequence<string> stringSeq;
8
9struct corbatext_t
10{
11 usString text;
12 unsigned short encoding;
13 unsigned long length;
14};
15
16typedef sequence<corbatext_t> corbatext_tarray;
17
18typedef corbatext_tarray corbatext_tset;
19
20struct corbatext_tmap
21{
22 corbatext_tarray names;
23 corbatext_tarray values;
24};
25
26// colserver/comtypes.h defines collectionmeta_map of collectionmeta
27// as (sorted) tuples of: metadata name -> lang -> value
28// However, the C++ definition is:
29// typedef map<text_t, text_tmap, lttext_t> collectionmeta_map;
30// Where lttext_t is defined to be a sorting function in text_t.h
31// Each collectionmeta name maps to one or more (lang,value) pairs.
32// The struct below defines the entry for one collectionmeta name.
33struct corbatext_tcollectionmeta {
34 corbatext_t name;
35 corbatext_tmap tuples;
36 //corbatext_tarray languages;
37 //corbatext_tarray values;
38};
39
40typedef sequence<corbatext_tcollectionmeta> corbatext_tcollectionmeta_map;
41
42
43// standard error values
44
45enum corbaComError
46{ corbaNoError,
47 corbaAuthenticationFailure,
48 corbaProtocolError,
49 corbaConfigurationError,
50 corbaSystemProblem
51};
52
53//
54// getColInfo response
55//
56
57struct corbaShortColInfo
58{
59 corbatext_t name;
60 corbatext_t host;
61 long response;
62};
63
64struct corbaColInfoResponse
65{
66 corbaShortColInfo shortInfo;
67 boolean useBook;
68 boolean isPublic;
69 boolean isBeta;
70
71 unsigned long buildDate;
72 corbatext_tarray ccsCols; // Added 05/04/2000
73 corbatext_tarray languages;
74 unsigned long numDocs;
75 unsigned long numWords;
76 unsigned long numBytes;
77 corbatext_tcollectionmeta_map collectionMeta; //corbatext_tmap collectionMeta;
78 corbatext_tmap format;
79 corbatext_tmap building;
80 corbatext_t httpdomain ; // Added 27/07/2000
81 corbatext_t httpprefix; // Added 27/07/2000
82 corbatext_t receptionist;
83
84 // The following member fields were added 14/03/2011 to
85 // match up with ColInfoResponse_t definition in comtypes.h
86
87 boolean isSegmented;
88 boolean isCollectGroup; // used to group a set of collections as one item on the home page
89 unsigned long ccsOptions; // uses CCS #defines from above
90 unsigned long stemIndexes; // uses SI #defines from above
91 unsigned long numSections; // 0 if not known
92 corbatext_tcollectionmeta_map collection_macros; // for collectionmacro config directive (> gsdl 2.53)
93 corbatext_t buildType; // 'mg' or 'mgpp' or 'lucene'
94 corbatext_t infodbType; // 'gdbm', 'sqlite', etc.
95 corbatext_t authenticate; // 'document' or 'collection'
96 corbatext_t auth_group; // 'mygroup' 'yourgroup'
97 corbatext_tmap public_documents; // the acl to allow access to listed documents
98 corbatext_tmap private_documents; // the acl to disallow access to listed documents
99 corbatext_tmap dynamic_classifiers;
100 corbatext_t earliestDatestamp; // For OAIserver validation. Time since linux Epoch, expressed as (long) integer value in string form
101
102};
103
104//
105// getDocument request
106//
107
108struct corbaDocRequest
109{
110 corbatext_t OID;
111 corbatext_t docType;
112 corbatext_t docFormat;
113};
114
115//
116// getDocument response
117//
118
119struct corbaDocResponse
120{
121 corbatext_t doc;
122};
123
124enum corbaFilterType
125{
126 booleanType,
127 integerType,
128 enumeratedType,
129 stringType
130};
131
132enum corbaFilterRepeatable
133{
134 onePerQuery,
135 onePerTerm,
136 nPerTerm
137};
138
139struct corbaFilterOption
140{
141 corbatext_t name;
142 corbaFilterType type;
143 corbaFilterRepeatable repeatable;
144 corbatext_t defaultValue;
145 corbatext_tarray validValues;
146};
147
148typedef sequence<corbaFilterOption> corbaFilterOptionList;
149
150struct corbaFilterOptionsResponse
151{
152 corbaFilterOptionList options;
153 corbatext_tarray names;
154};
155
156//
157// structures for filter call
158//
159
160struct corbaOptionValue
161{
162 corbatext_t name;
163 corbatext_t value;
164};
165
166typedef sequence<corbaOptionValue> corbaOptionValue_array;
167
168struct corbaFilterRequest
169{
170 corbatext_t filter;
171 corbaOptionValue_array filterOptions;
172 corbatext_tarray docSet;
173 long filterResultOptions;
174 corbatext_t requestParams;
175 corbatext_t refParams;
176 corbatext_tset fields;
177 boolean getParents;
178};
179
180struct corbaTermInfo
181{
182 corbatext_t term;
183 long frequency;
184 corbatext_tarray matchTerms;
185};
186
187typedef sequence<corbaTermInfo> corbaTermInfo_array;
188
189struct corbaMetadataInfo
190{
191 corbatext_t params;
192 boolean isRef;
193 corbatext_tarray values;
194 long id;
195 long parentid; // dodge for avoiding pointers for the moment
196};
197
198typedef sequence<corbaMetadataInfo> corbaMetadataInfo_array;
199
200struct corbaMetadataInfo_map
201{
202 corbatext_tarray names;
203 corbaMetadataInfo_array values;
204};
205
206typedef sequence<long> corbaDocFreq_array;
207
208struct corbaResultDocInfo
209{
210 corbatext_t OID;
211 long resultNum;
212 long ranking;
213 long termsMatched;
214 long phraseMatched;
215 corbaDocFreq_array docFreq;
216 corbaMetadataInfo_map metadata;
217 corbatext_t classifierMetadataType; // Added 05/04/2000
218 long classifierMetadataOffset; // Added 05/04/2000
219 corbaMetadataInfo_array metaparents;
220};
221
222typedef sequence<corbaResultDocInfo> corbaResultDocInfo_array;
223
224enum corbaIsApprox
225{
226 resultExact,
227 resultApprox,
228 resultMany
229};
230
231struct corbaFilterResponse
232{
233 long numDocs;
234 corbaIsApprox isApprox;
235 corbaTermInfo_array termInfo;
236 corbaResultDocInfo_array docInfo;
237};
238
239interface corbaiface
240{
241 boolean initialise(inout corbaComError error);
242 void configure(in corbatext_t key, in corbatext_tarray cfgline,
243 inout corbaComError error);
244 void collectionList(inout corbatext_tarray collist,
245 inout corbaComError error);
246 void hasCollection(in corbatext_t corbaCollection, inout boolean has,
247 inout corbaComError error);
248 void ping(in corbatext_t collection, inout boolean wasSuccess, inout corbaComError error);
249 void getDocument(in corbatext_t collection,
250 inout corbaDocRequest request, inout corbaDocResponse response,
251 inout corbaComError error);
252 void getCollectInfo(in corbatext_t collection,
253 inout corbaColInfoResponse response,
254 inout corbaComError error);
255 void getFilterInfo(in corbatext_t collection,
256 inout corbatext_tarray filterNames,
257 inout corbaComError error);
258 void getFilterOptions(in corbatext_t collection,
259 in corbatext_t option,
260 inout corbaFilterOptionsResponse response,
261 inout corbaComError error);
262 void filter(in corbatext_t collection,
263 in corbaFilterRequest request,
264 inout corbaFilterResponse response,
265 inout corbaComError error);
266
267 void getRssItems (in corbatext_t collection,
268 in corbatext_t gsdlhome,
269 inout corbatext_t rss_items,
270 inout corbaComError error);
271
272};
273
274};
Note: See TracBrowser for help on using the repository browser.