111 Z_GDU *zgdu_req = package.request().get();
114 if (!zgdu_req || !(zgdu_req->which == Z_GDU_HTTP_Request)){
121 mp::odr odr_de(ODR_DECODE);
122 Z_SRW_PDU *sru_pdu_req = 0;
124 mp::odr odr_en(ODR_ENCODE);
126 Z_SRW_PDU *sru_pdu_res = yaz_srw_get(odr_en, Z_SRW_explain_response);
131 const xmlNode *explainnode = 0;
132 std::map<std::string, const xmlNode *>::iterator idbexp;
138 explainnode = idbexp->second;
153 char *stylesheet = 0;
154 Z_SRW_diagnostic *diagnostic = 0;
155 int num_diagnostic = 0;
158 package, odr_de, odr_en,
159 &diagnostic, &num_diagnostic, &soap,
163 sruinfo, explainnode);
165 sru_pdu_res, charset, stylesheet);
166 package.session().close();
171 if (sru_pdu_req->which != Z_SRW_explain_request)
180 Z_SRW_explainRequest *er_req = sru_pdu_req->u.explain_request;
182 sru_pdu_res->u.explain_response->diagnostics = diagnostic;
183 sru_pdu_res->u.explain_response->num_diagnostics = num_diagnostic;
187 sruinfo, explainnode, er_req);
189 sru_pdu_res, charset, stylesheet);
194 package.session().close();