- //std::cout << "z3950_present_request OK\n";
-
- Z_PresentResponse *pr = z3950_gdu->u.z3950->u.presentResponse;
- if (pr)
- {
-
- // srw'fy number of returned records
- //sru_pdu_res->u.response->num_records
- // = *(pr->numberOfRecordsReturned);
- //= (int *) odr_malloc(odr_en, sizeof(int *));
- //*(sru_pdu_res->u.response->num_records)
- // = *(pr->numberOfRecordsReturned);
-
- // srw'fy nextRecordPosition
- //if (! sru_pdu_res->u.response->nextRecordPosition)
- sru_pdu_res->u.response->nextRecordPosition
- = (int *) odr_malloc(odr_en, sizeof(int *));
- *(sru_pdu_res->u.response->nextRecordPosition)
- = *(pr->nextResultSetPosition);
- }
- return true;
- }
-
- return false;
-}
-
-bool
-yf::SRUtoZ3950::Rep::z3950_scan_request(mp::Package &package,
- mp::odr &odr_en,
- Z_SRW_PDU *sru_pdu_res,
- Z_SRW_scanRequest const *sr_req) const
-{
- Package z3950_package(package.session(), package.origin());
- z3950_package.copy_filter(package);
- //mp::odr odr_en(ODR_ENCODE);
- Z_APDU *apdu = zget_APDU(odr_en, Z_APDU_scanRequest);
-
- //TODO: add stuff in apdu
- Z_ScanRequest *z_scanRequest = apdu->u.scanRequest;
-
- // database repackaging
- z_scanRequest->num_databaseNames = 1;
- z_scanRequest->databaseNames = (char**)
- odr_malloc(odr_en, sizeof(char *));
- if (sr_req->database)
- z_scanRequest->databaseNames[0]
- = odr_strdup(odr_en, const_cast<char *>(sr_req->database));
- else
- z_scanRequest->databaseNames[0]
- = odr_strdup(odr_en, "Default");
-
-
- // query repackaging
- // CQL or XCQL scan is not possible in Z3950, flagging a diagnostic
- if (sr_req->query_type != Z_SRW_query_type_pqf)
- {
- //send_to_srw_client_error(7, "query");