X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-my-client.cpp;h=0df0b0075cb2abb66aca24cabe25d18ba6709e0a;hb=b3d26248b0c906f1a487d65aae5a2a33d91e8fde;hp=94ed9516933db92ebffc525e1993d9060a9aed42;hpb=5238ea544d4a2b414592f1d503f5ed83f305b21b;p=yazpp-moved-to-github.git diff --git a/src/yaz-my-client.cpp b/src/yaz-my-client.cpp index 94ed951..0df0b00 100644 --- a/src/yaz-my-client.cpp +++ b/src/yaz-my-client.cpp @@ -1,76 +1,17 @@ /* - * Copyright (c) 1998-2000, Index Data. + * Copyright (c) 1998-2001, Index Data. * See the file LICENSE for details. * - * $Log: yaz-my-client.cpp,v $ - * Revision 1.1 2001-03-27 14:47:45 adam - * New server facility scheme. - * - * Revision 1.17 2001/03/26 14:43:49 adam - * New threaded PDU association. - * - * Revision 1.16 2000/11/01 14:22:59 adam - * Added fd parameter for method IYaz_PDU_Observer::clone. - * - * Revision 1.15 2000/10/11 11:58:16 adam - * Moved header files to include/yaz++. Switched to libtool and automake. - * Configure script creates yaz++-config script. - * - * Revision 1.14 2000/09/08 10:23:42 adam - * Added skeleton of yaz-z-server. - * - * Revision 1.13 2000/09/06 14:23:45 adam - * WIN32 updates. - * - * Revision 1.12 2000/09/04 08:59:16 adam - * Changed call to logging functions (yaz_ added). - * - * Revision 1.11 2000/07/04 13:48:49 adam - * Implemented upper-limit on proxy-to-target sessions. - * - * Revision 1.10 2000/05/30 03:12:27 ian - * minor change to stop g++ 2.95.2 complaining about taking the address - * of a member function. - * - * Revision 1.9 1999/12/06 13:52:45 adam - * Modified for new location of YAZ header files. Experimental threaded - * operation. - * - * Revision 1.8 1999/11/10 10:02:34 adam - * Work on proxy. - * - * Revision 1.7 1999/04/21 12:09:01 adam - * Many improvements. Modified to proxy server to work with "sessions" - * based on cookies. - * - * Revision 1.6 1999/04/20 10:30:05 adam - * Implemented various stuff for client and proxy. Updated calls - * to ODR to reflect new name parameter. - * - * Revision 1.5 1999/04/09 11:46:57 adam - * Added object Yaz_Z_Assoc. Much more functional client. - * - * Revision 1.4 1999/03/23 14:17:57 adam - * More work on timeout handling. Work on yaz-client. - * - * Revision 1.3 1999/02/02 14:01:18 adam - * First WIN32 port of YAZ++. - * - * Revision 1.2 1999/01/28 13:08:42 adam - * Yaz_PDU_Assoc better encapsulated. Memory leak fix in - * yaz-socket-manager.cc. - * - * Revision 1.1.1.1 1999/01/28 09:41:07 adam - * First implementation of YAZ++. - * + * $Id: yaz-my-client.cpp,v 1.12 2002-10-28 12:16:09 adam Exp $ */ #include #include #include -#include -#include -#include +#include +#include +#include +#include extern "C" { #if HAVE_READLINE_READLINE_H @@ -348,7 +289,7 @@ void MyClient::recv_record(Z_DatabaseRecord *record, int offset, */ if (r->direct_reference) { - printf("Record type: "); + printf("Record type: "); if (ent) printf("%s\n", ent->desc); } @@ -383,9 +324,37 @@ void MyClient::recv_record(Z_DatabaseRecord *record, int offset, } if (r->which == Z_External_octet && record->u.octet_aligned->len) { - recv_textRecord((int) ent->value, - (const char *) record->u.octet_aligned->buf, - (size_t) record->u.octet_aligned->len); + switch (ent->value) + { + case VAL_ISO2709: + case VAL_UNIMARC: + case VAL_INTERMARC: + case VAL_USMARC: + case VAL_UKMARC: + case VAL_NORMARC: + case VAL_LIBRISMARC: + case VAL_DANMARC: + case VAL_FINMARC: + case VAL_MAB: + case VAL_CANMARC: + case VAL_SBN: + case VAL_PICAMARC: + case VAL_AUSMARC: + case VAL_IBERMARC: + case VAL_CATMARC: + case VAL_MALMARC: + case VAL_JPMARC: + case VAL_SWEMARC: + case VAL_SIGLEMARC: + case VAL_ISDSMARC: + case VAL_RUSMARC: + marc_display((char*) record->u.octet_aligned->buf,0); + break; + default: + recv_textRecord((int) ent->value, + (const char *) record->u.octet_aligned->buf, + (size_t) record->u.octet_aligned->len); + } } else if (ent && ent->value == VAL_SUTRS && r->which == Z_External_sutrs) recv_textRecord((int) VAL_SUTRS, (const char *) r->u.sutrs->buf, @@ -451,10 +420,12 @@ void MyClient::recv_searchResponse(Z_SearchResponse *searchResponse) if (!*searchResponse->searchStatus) { printf ("Fail\n"); - return; } - printf ("Ok\n"); - printf ("Hits: %d\n", *searchResponse->resultCount); + else + { + printf ("Ok\n"); + printf ("Hits: %d\n", *searchResponse->resultCount); + } recv_records (searchResponse->records); } @@ -475,6 +446,7 @@ int MyClient::wait() return 0; } + #define C_PROMPT "Z>" int MyClient::cmd_connect(char *host)