2 * Copyright (c) 2002-2003, Index Data.
3 * See the file LICENSE for details.
5 * $Id: srwtst.c,v 1.1 2003-02-14 18:49:24 adam Exp $
11 Z_SOAP_Handler h[2] = {
12 {"http://www.loc.gov/zing/srw/v1.0/", 0, (Z_SOAP_fun) yaz_srw_codec},
16 int main(int argc, char **argv)
19 char *content_buf = buf;
23 Z_SOAP *soap_package = 0;
27 if (argc == 2 && !strcmp(argv[1], "debug"))
29 no = fread(buf, 1, sizeof(buf), stdin);
30 if (no < 1 || no == sizeof(buf))
32 fprintf(stderr, "Bad file or too big\n");
35 decode = odr_createmem(ODR_DECODE);
36 encode = odr_createmem(ODR_ENCODE);
38 ret = z_soap_codec(decode, &soap_package,
39 &content_buf, &content_len, h);
42 fprintf(stderr, "Decoding seriously failed\n");
47 fprintf(stderr, "got NS = %s\n", soap_package->ns);
48 if (soap_package->which == Z_SOAP_generic &&
49 soap_package->u.generic->no == 0)
51 Z_SRW_searchRetrieve *sr = soap_package->u.generic->p;
52 if (sr->which == Z_SRW_searchRetrieve_request)
54 Z_SRW_searchRetrieveRequest *req = sr->u.request;
56 else if (sr->which == Z_SRW_searchRetrieve_response)
58 Z_SRW_searchRetrieveResponse *res = sr->u.response;
59 if (res->records && res->num_records)
62 for (i = 0; i<res->num_records; i++)
64 fprintf (stderr, "%d\n", i);
65 if (res->records[i].recordData_buf)
66 fwrite(res->records[i].recordData_buf, 1,
67 res->records[i].recordData_len, stderr);
74 ret = z_soap_codec(encode, &soap_package,
75 &content_buf, &content_len, h);
76 if (content_buf && content_len)
77 fwrite (content_buf, content_len, 1, stdout);
80 fprintf(stderr, "No output!\n");
86 int main(int argc, char **argv)
88 fprintf(stderr, "SOAP disabled\n");