+ dump_opt_string(os, pr->resultSetId);
+ dump_opt_int(os, pr->resultSetStartPoint);
+ dump_opt_int_l(os, pr->numberOfRecordsRequested, "+");
+ if (pr->preferredRecordSyntax)
+ {
+ char oid_name_str[OID_STR_MAX];
+ const char *oid_name = yaz_oid_to_string_buf(
+ pr->preferredRecordSyntax, 0, oid_name_str);
+
+ os << " " << oid_name;
+ }
+ else
+ os << " -";
+ const char * msg = 0;
+ if (pr->recordComposition)
+ msg = mp_util::record_composition_to_esn(pr->recordComposition);
+ dump_opt_string(os, msg);
+ }
+ break;
+ case Z_APDU_presentResponse:
+ os << " " << "presentResponse" << " ";
+ {
+ Z_PresentResponse *pr
+ = zapdu.u.presentResponse;
+ if (!pr->presentStatus)
+ os << "Unknown";
+ else
+ {
+ switch (*pr->presentStatus)
+ {
+ case Z_PresentStatus_success:
+ os << "OK"; break;
+ case Z_PresentStatus_partial_1:
+ os << "Partial-1"; break;
+ case Z_PresentStatus_partial_2:
+ os << "Partial-2"; break;
+ case Z_PresentStatus_partial_3:
+ os << "Partial-3"; break;
+ case Z_PresentStatus_partial_4:
+ os << "Partial-4"; break;
+ case Z_PresentStatus_failure:
+ os << "Failure"; break;
+ default:
+ os << "Unknown"; break;
+ }
+ }
+ if (pr->records && pr->records->which != Z_Records_DBOSD)
+ os << " DIAG " << *pr->records;
+ else
+ {
+ dump_opt_int(os, pr->numberOfRecordsReturned);
+ dump_opt_int(os, pr->nextResultSetPosition);
+ }