1 /* $Id: gduutil.cpp,v 1.2 2006-08-30 08:35:47 marc Exp $
2 Copyright (c) 2005-2006, Index Data.
4 See the LICENSE file for details
10 #include <yaz/querytowrbuf.h>
14 namespace mp = metaproxy_1;
16 // Doxygen doesn't like mp::gdu, so we use this instead
17 namespace mp_gdu = metaproxy_1::gdu;
19 std::ostream& std::operator<<(std::ostream& os, Z_GDU& zgdu)
21 if (zgdu.which == Z_GDU_Z3950)
22 os << "Z3950" << " " << *(zgdu.u.z3950) ;
23 else if (zgdu.which == Z_GDU_HTTP_Request)
24 os << "HTTP_Request" << " ";
25 else if (zgdu.which == Z_GDU_HTTP_Response)
26 os << "HTTP_Response" << " ";
32 std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu)
36 case Z_APDU_initRequest:
37 os << "initRequest" << " ";
41 = zapdu.u.initRequest;
43 Z_IdAuthentication *a = ir->idAuthentication;
44 if (a && a->which == Z_IdAuthentication_idPass )
45 os << a->u.idPass->userId
46 << ":" << a->u.idPass->groupId << " ";
51 os << (ir->implementationId) << " "
52 //<< ir->referenceId << " "
53 << (ir->implementationName) << " "
54 << (ir->implementationVersion) << " ";
57 case Z_APDU_initResponse:
58 os << "initResponse" << " ";
61 = zapdu.u.initResponse;
64 << (ir->implementationId) << " "
65 //<< ir->referenceId << " "
66 << (ir->implementationName) << " "
67 << (ir->implementationVersion) << " ";
72 case Z_APDU_searchRequest:
73 os << "searchRequest" << " "
77 = zapdu.u.searchRequest;
79 for (int i = 0; i < sr->num_databaseNames; i++)
81 os << sr->databaseNames[i];
82 if (i+1 == sr->num_databaseNames)
88 WRBUF wr = wrbuf_alloc();
89 yaz_query_to_wrbuf(wr, sr->query);
90 os << wrbuf_buf(wr) << " ";
94 case Z_APDU_searchResponse:
95 os << "searchResponse" << " ";
98 = zapdu.u.searchResponse;
99 if (*(sr->searchStatus))
101 << *(sr->resultCount) << " "
102 //<< sr->referenceId << " "
103 << *(sr->numberOfRecordsReturned) << " "
104 << *(sr->nextResultSetPosition) << " ";
109 case Z_APDU_presentRequest:
110 os << "presentRequest" << " "
113 Z_PresentRequest *pr = zapdu.u.presentRequest;
114 os << pr->resultSetId << " "
115 //<< pr->referenceId << " "
116 << *(pr->resultSetStartPoint) << " "
117 << *(pr->numberOfRecordsRequested) << " ";
120 case Z_APDU_presentResponse:
121 os << "presentResponse" << " ";
123 Z_PresentResponse *pr
124 = zapdu.u.presentResponse;
125 if (!*(pr->presentStatus))
128 //<< pr->referenceId << " "
129 << *(pr->numberOfRecordsReturned) << " "
130 << *(pr->nextResultSetPosition) << " ";
134 //<< pr->referenceId << " "
135 << *(pr->numberOfRecordsReturned) << " "
136 << *(pr->nextResultSetPosition) << " ";
139 case Z_APDU_deleteResultSetRequest:
140 os << "deleteResultSetRequest" << " ";
142 case Z_APDU_deleteResultSetResponse:
143 os << "deleteResultSetResponse" << " ";
145 case Z_APDU_accessControlRequest:
146 os << "accessControlRequest" << " ";
148 case Z_APDU_accessControlResponse:
149 os << "accessControlResponse" << " ";
151 case Z_APDU_resourceControlRequest:
152 os << "resourceControlRequest" << " ";
154 case Z_APDU_resourceControlResponse:
155 os << "resourceControlResponse" << " ";
157 case Z_APDU_triggerResourceControlRequest:
158 os << "triggerResourceControlRequest" << " ";
160 case Z_APDU_resourceReportRequest:
161 os << "resourceReportRequest" << " ";
163 case Z_APDU_resourceReportResponse:
164 os << "resourceReportResponse" << " ";
166 case Z_APDU_scanRequest:
167 os << "scanRequest" << " "
171 = zapdu.u.scanRequest;
173 for (int i = 0; i < sr->num_databaseNames; i++)
175 os << sr->databaseNames[i];
176 if (i+1 == sr->num_databaseNames)
182 os << *(sr->numberOfTermsRequested) << " "
183 << *(sr->preferredPositionInResponse) << " "
184 << *(sr->stepSize) << " ";
186 WRBUF wr = wrbuf_alloc();
187 yaz_scan_to_wrbuf(wr, sr->termListAndStartPoint, VAL_NONE);
188 os << wrbuf_buf(wr) << " ";
192 case Z_APDU_scanResponse:
193 os << "scanResponse" << " ";
196 = zapdu.u.scanResponse;
197 if (*(sr->scanStatus))
199 << *(sr->scanStatus) << " "
200 << *(sr->numberOfEntriesReturned) << " "
201 //<< sr->referenceId << " "
202 << *(sr->positionOfTerm) << " "
203 << *(sr->stepSize) << " ";
206 << *(sr->scanStatus) << " "
207 << *(sr->numberOfEntriesReturned) << " "
208 //<< sr->referenceId << " "
209 << *(sr->positionOfTerm) << " "
210 << *(sr->stepSize) << " ";
213 case Z_APDU_sortRequest:
214 os << "sortRequest" << " ";
216 case Z_APDU_sortResponse:
217 os << "sortResponse" << " ";
219 case Z_APDU_segmentRequest:
220 os << "segmentRequest" << " ";
222 case Z_APDU_extendedServicesRequest:
223 os << "extendedServicesRequest" << " ";
225 // Z_ExtendedServicesRequest *er
226 // = zapdu.u.extendedServicesRequest;
228 // os << er->packageName << " "
229 // << er->userId << " "
230 // << er->description << " ";
233 case Z_APDU_extendedServicesResponse:
234 os << "extendedServicesResponse" << " ";
236 // Z_ExtendedServicesResponse *er
237 // = zapdu.u.extendedServicesResponse;
239 // os << *(er->operationStatus) << " "
240 // << er->num_diagnostics << " ";
244 os << "close" << " ";
249 os << *(c->closeReason) << " ";
250 switch (*(c->closeReason)) {
251 case Z_Close_finished:
252 os << "finished" << " ";
254 case Z_Close_shutdown:
255 os << "shutdown" << " ";
257 case Z_Close_systemProblem:
258 os << "systemProblem" << " ";
260 case Z_Close_costLimit:
261 os << "costLimit" << " ";
263 case Z_Close_resources:
264 os << "resources" << " ";
266 case Z_Close_securityViolation:
267 os << "securityViolation" << " ";
269 case Z_Close_protocolError:
270 os << "protocolError" << " ";
272 case Z_Close_lackOfActivity:
275 case Z_Close_peerAbort:
276 os << "peerAbort" << " ";
278 case Z_Close_unspecified:
279 os << "unspecified" << " ";
282 os << "unknown" << " ";
287 case Z_APDU_duplicateDetectionRequest:
288 os << "duplicateDetectionRequest" << " ";
290 case Z_APDU_duplicateDetectionResponse:
291 os << "duplicateDetectionResponse" << " ";
305 * indent-tabs-mode: nil
306 * c-file-style: "stroustrup"
308 * vim: shiftwidth=4 tabstop=8 expandtab