From 0fa4ed293e6d00b6ef3f0179543a12f803c61b6d Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Mon, 11 Dec 2000 21:43:38 +0000 Subject: [PATCH] Added blocking synopsis for COMSTACK --- doc/yaz.sgml | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/doc/yaz.sgml b/doc/yaz.sgml index 6f764c9..f462972 100644 --- a/doc/yaz.sgml +++ b/doc/yaz.sgml @@ -2,7 +2,7 @@
YAZ User's Guide and Reference <author><htmlurl url="http://www.indexdata.dk/" name="Index Data">, <tt><htmlurl url="mailto:info@indexdata.dk" name="info@indexdata.dk"></> -<date>$Revision: 1.8 $ +<date>$Revision: 1.9 $ <abstract> This document is the programmer's guide and reference to the YAZ package. YAZ is a compact toolkit that provides access to the @@ -2562,8 +2562,51 @@ what goes wrong. <p> <tscreen><verb> -int connect_and_init() { + +COMSTACK *stack; +char *buf = 0; +int size = 0, length_incoming; +char *protocol_package; +int protocol_package_length; +char server_address[] = "myserver.com:2100"; +int status; + +stack = cs_create(tcpip_type, 1, PROTO_Z3950); +if (!stack) { + perror("cs_create"); /* note use of perror() here since we have no stack yet */ + exit(1); +} + +status = cs_connect(stack, server_address); +if (status != 0) { + cs_perror(stack, "cs_connect"); + exit(1); +} + +status = cs_put(stack, protocol_package, protocol_package_length); +if (status) { + cs_perror(stack, "cs_put"); + exit(1); } + +/* Now get a response */ + +length_incoming = cs_get(stack, &buf, &size); +if (!length_incoming) { + fprintf(stderr, "Connection closed\n"); + exit(1); +} else if (length_incoming < 0) { + cs_perror(stack, "cs_get"); + exit(1); +} + +/* Do stuff with buf here */ + +/* clean up */ +cs_close(stack); +if (buf) + free(buf); + </verb></tscreen> <sect1>Introduction -- 1.7.10.4