-/* $Id: gduutil.cpp,v 1.11 2006-09-21 11:45:00 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
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)
{
}
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:
}
-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<std::string> vhosts;
-// mp::util::get_vhost_otherinfo(ir->otherInfo, vhosts);
-// if (vhosts.size()){
-// copy(vhosts.begin(), vhosts.end(),
-// ostream_iterator<string>(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;
-
/*