X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fgduutil.cpp;h=b7780e22c9546b112b220b395441e144444699c5;hb=f7ec9938e6ab4a92690024a53cede9a8b67e6920;hp=ad2a07ce01fc4a83a1f0122014644667fa69ecd1;hpb=51ad2b83c489a98f7d7ede03735c64ed85890b27;p=metaproxy-moved-to-github.git diff --git a/src/gduutil.cpp b/src/gduutil.cpp index ad2a07c..b7780e2 100644 --- a/src/gduutil.cpp +++ b/src/gduutil.cpp @@ -1,4 +1,4 @@ -/* $Id: gduutil.cpp,v 1.10 2006-09-20 15:09:45 marc Exp $ +/* $Id: gduutil.cpp,v 1.16 2006-10-05 12:17:24 marc Exp $ Copyright (c) 2005-2006, Index Data. See the LICENSE file for details @@ -16,7 +16,10 @@ namespace mp = metaproxy_1; // Doxygen doesn't like mp::gdu, so we use this instead -namespace mp_gdu = metaproxy_1::gdu; +namespace mp_util = metaproxy_1::util; + + + std::ostream& std::operator<<(std::ostream& os, Z_GDU& zgdu) { @@ -213,13 +216,33 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) } break; case Z_APDU_presentRequest: - os << " " << "presentRequest" << " "; + os << " " << "presentRequest"; { Z_PresentRequest *pr = zapdu.u.presentRequest; - os << pr->resultSetId << " " - //<< pr->referenceId << " " - << *(pr->resultSetStartPoint) << " " - << *(pr->numberOfRecordsRequested); + if (pr->resultSetId) + os << " " << (pr->resultSetId); + else + os << " -"; + //<< pr->referenceId << " " + if (pr->resultSetStartPoint) + os << " " << *(pr->resultSetStartPoint); + else + os << " -"; + if (pr->numberOfRecordsRequested) + os << " " << *(pr->numberOfRecordsRequested); + else + os << " -"; + if (pr->preferredRecordSyntax) + //os << " " << pr->preferredRecordSyntax; + os << " " <<(oid_getentbyoid(pr->preferredRecordSyntax))->desc; + else + os << " -"; + const char * msg = 0; + if (pr->recordComposition + && (msg = mp_util::record_composition_to_esn(pr->recordComposition))) + os << " " << msg; + else + os << " -"; } break; case Z_APDU_presentResponse: @@ -539,180 +562,6 @@ std::ostream& std::operator<<(std::ostream& os, Z_APDU& zapdu) } -std::ostream& std::operator<<(std::ostream& os, Z_SRW_PDU& srw_pdu) -{ - os << "SRU"; - - switch(srw_pdu.which) { - case Z_SRW_searchRetrieve_request: - os << " " << "searchRetrieveRequest"; - { - Z_SRW_searchRetrieveRequest *sr = srw_pdu.u.request; - if (sr) - { - if (sr->database) - os << " " << (sr->database); - else - os << " -"; - if (sr->startRecord) - os << " " << *(sr->startRecord); - else - os << " -"; - if (sr->maximumRecords) - os << " " << *(sr->maximumRecords); - else - os << " -"; - if (sr->recordPacking) - os << " " << (sr->recordPacking); - else - os << " -"; - - switch (sr->query_type){ - case Z_SRW_query_type_cql: - os << " CQL " << sr->query.cql; - break; - case Z_SRW_query_type_xcql: - os << " XCQL"; - break; - case Z_SRW_query_type_pqf: - os << " PQF " << sr->query.pqf; - break; - } - } - } - break; - case Z_SRW_searchRetrieve_response: - os << " " << "searchRetrieveResponse"; - { - Z_SRW_searchRetrieveResponse *sr = srw_pdu.u.response; - if (sr) - { - if (! (sr->num_diagnostics)) - { - os << " OK"; - if (sr->numberOfRecords) - os << " " << *(sr->numberOfRecords); - else - os << " -"; - //if (sr->num_records) - os << " " << (sr->num_records); - //else - //os << " -"; - if (sr->nextRecordPosition) - os << " " << *(sr->nextRecordPosition); - else - os << " -"; - } - else - { - os << " DIAG"; - if (sr->diagnostics && sr->diagnostics->uri) - os << " " << *(sr->diagnostics->uri); - else - os << " -"; - if (sr->diagnostics && sr->diagnostics->message) - os << " " << *(sr->diagnostics->message); - else - os << " -"; - if (sr->diagnostics && sr->diagnostics->details) - os << " " << *(sr->diagnostics->details); - else - os << " -"; - } - - - } - } - break; - case Z_SRW_explain_request: - os << " " << "explainRequest"; - break; - case Z_SRW_explain_response: - os << " " << "explainResponse"; - break; - case Z_SRW_scan_request: - os << " " << "scanRequest"; - break; - case Z_SRW_scan_response: - os << " " << "scanResponse"; - break; - case Z_SRW_update_request: - os << " " << "updateRequest"; - break; - case Z_SRW_update_response: - os << " " << "updateResponse"; - break; - default: - os << " " << "UNKNOWN"; - } - - return os; -} - - -// { -// Z_InitRequest *ir -// = zapdu.u.initRequest; - -// Z_IdAuthentication *a = ir->idAuthentication; -// if (a && a->which == Z_IdAuthentication_idPass ) -// os << a->u.idPass->userId << " "; -// //<< ":" << a->u.idPass->groupId << " "; -// else -// os << "-" << " "; - -// std::list vhosts; -// mp::util::get_vhost_otherinfo(ir->otherInfo, vhosts); -// if (vhosts.size()){ -// copy(vhosts.begin(), vhosts.end(), -// ostream_iterator(os, " ")); -// } -// else -// os << "-" << " " ; - -// os << (ir->implementationId) << " " -// //<< ir->referenceId << " " -// << (ir->implementationName) << " " -// << (ir->implementationVersion); -// } -// break; -// case Z_APDU_initResponse: -// os << " " << "initResponse" << " "; -// { -// Z_InitResponse *ir -// = zapdu.u.initResponse; -// if (ir->result && *(ir->result)) -// os << "OK" << " " -// << (ir->implementationId) << " " -// //<< ir->referenceId << " " -// << (ir->implementationName) << " " -// << (ir->implementationVersion) << " "; -// else -// os << "DIAG"; -// } -// break; -// case Z_APDU_searchRequest: -// os << " " << "searchRequest" << " "; -// { -// Z_SearchRequest *sr -// = zapdu.u.searchRequest; - -// for (int i = 0; i < sr->num_databaseNames; i++) -// { -// os << sr->databaseNames[i]; -// if (i+1 == sr->num_databaseNames) -// os << " "; -// else -// os << "+"; -// } - -// WRBUF wr = wrbuf_alloc(); -// yaz_query_to_wrbuf(wr, sr->query); -// os << wrbuf_buf(wr); -// wrbuf_free(wr, 1); -// } -// break; - /*