1 /* $Id: sru_util.cpp,v 1.1 2006-09-26 13:15:33 marc Exp $
2 Copyright (c) 2005-2006, Index Data.
4 See the LICENSE file for details
7 #include "sru_util.hpp"
10 //#include <yaz/wrbuf.h>
11 //#include <yaz/querytowrbuf.h>
16 namespace mp = metaproxy_1;
18 // Doxygen doesn't like mp::gdu, so we use this instead
19 namespace mp_sru = metaproxy_1::sru;
22 std::ostream& std::operator<<(std::ostream& os, Z_SRW_PDU& srw_pdu)
26 switch(srw_pdu.which) {
27 case Z_SRW_searchRetrieve_request:
28 os << " " << "searchRetrieveRequest";
30 Z_SRW_searchRetrieveRequest *sr = srw_pdu.u.request;
34 os << " " << (sr->database);
38 os << " " << *(sr->startRecord);
41 if (sr->maximumRecords)
42 os << " " << *(sr->maximumRecords);
45 if (sr->recordPacking)
46 os << " " << (sr->recordPacking);
51 os << " " << (sr->recordSchema);
55 switch (sr->query_type){
56 case Z_SRW_query_type_cql:
59 os << " " << sr->query.cql;
61 case Z_SRW_query_type_xcql:
64 case Z_SRW_query_type_pqf:
67 os << " " << sr->query.pqf;
73 case Z_SRW_searchRetrieve_response:
74 os << " " << "searchRetrieveResponse";
76 Z_SRW_searchRetrieveResponse *sr = srw_pdu.u.response;
79 if (! (sr->num_diagnostics))
82 if (sr->numberOfRecords)
83 os << " " << *(sr->numberOfRecords);
86 //if (sr->num_records)
87 os << " " << (sr->num_records);
90 if (sr->nextRecordPosition)
91 os << " " << *(sr->nextRecordPosition);
98 if (sr->diagnostics && sr->diagnostics->uri)
99 os << " " << (sr->diagnostics->uri);
102 if (sr->diagnostics && sr->diagnostics->message)
103 os << " " << (sr->diagnostics->message);
106 if (sr->diagnostics && sr->diagnostics->details)
107 os << " " << (sr->diagnostics->details);
116 case Z_SRW_explain_request:
117 os << " " << "explainRequest";
119 case Z_SRW_explain_response:
120 os << " " << "explainResponse";
122 case Z_SRW_scan_request:
123 os << " " << "scanRequest";
125 case Z_SRW_scan_response:
126 os << " " << "scanResponse";
128 case Z_SRW_update_request:
129 os << " " << "updateRequest";
131 case Z_SRW_update_response:
132 os << " " << "updateResponse";
135 os << " " << "UNKNOWN";
146 * indent-tabs-mode: nil
147 * c-file-style: "stroustrup"
149 * vim: shiftwidth=4 tabstop=8 expandtab