From bff45f95576c8f14cb474d2026ce4f4e7fc2e917 Mon Sep 17 00:00:00 2001 From: Heikki Levanto Date: Thu, 26 Apr 2001 12:17:49 +0000 Subject: [PATCH] Ursula stuff, mostly in the test client --- include/yaz++/yaz-ir-assoc.h | 3 ++- src/yaz-ir-assoc.cpp | 33 +++++++++++++++++++++----------- src/yaz-my-client.cpp | 43 ++++++++++++++++++++++++++++++++++++------ win/yazclient/yazclient.dsp | 2 +- win/yazxx/yazxx.dsp | 2 +- 5 files changed, 63 insertions(+), 20 deletions(-) diff --git a/include/yaz++/yaz-ir-assoc.h b/include/yaz++/yaz-ir-assoc.h index f139ae8..cdd2211 100644 --- a/include/yaz++/yaz-ir-assoc.h +++ b/include/yaz++/yaz-ir-assoc.h @@ -2,7 +2,7 @@ * Copyright (c) 1998-2000, Index Data. * See the file LICENSE for details. * - * $Id: yaz-ir-assoc.h,v 1.1 2000-10-11 11:58:16 adam Exp $ + * $Id: yaz-ir-assoc.h,v 1.2 2001-04-26 12:17:49 heikki Exp $ */ #include @@ -65,6 +65,7 @@ class YAZ_EXPORT Yaz_IR_Assoc: public Yaz_Z_Assoc { virtual void recv_presentRequest(Z_PresentRequest *presentRequest); virtual void recv_searchResponse(Z_SearchResponse *searchResponse); virtual void recv_presentResponse(Z_PresentResponse *presentResponse); + virtual void recv_extendedServicesResponse(Z_ExtendedServicesResponse *extendedServicesResponse); private: char *m_proxy; char *m_host; diff --git a/src/yaz-ir-assoc.cpp b/src/yaz-ir-assoc.cpp index e6c854f..42c4fbb 100644 --- a/src/yaz-ir-assoc.cpp +++ b/src/yaz-ir-assoc.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-ir-assoc.cpp,v $ - * Revision 1.14 2000-10-11 11:58:16 adam + * Revision 1.15 2001-04-26 12:17:49 heikki + * Ursula stuff, mostly in the test client + * + * Revision 1.14 2000/10/11 11:58:16 adam * Moved header files to include/yaz++. Switched to libtool and automake. * Configure script creates yaz++-config script. * @@ -193,28 +196,32 @@ void Yaz_IR_Assoc::recv_Z_PDU(Z_APDU *apdu) switch (apdu->which) { case Z_APDU_initResponse: - logf (m_log, "recv InitResponse"); - recv_initResponse(apdu->u.initResponse); - break; + logf (m_log, "recv InitResponse"); + recv_initResponse(apdu->u.initResponse); + break; case Z_APDU_initRequest: logf (m_log, "recv InitRequest"); - recv_initRequest(apdu->u.initRequest); + recv_initRequest(apdu->u.initRequest); break; case Z_APDU_searchRequest: logf (m_log, "recv searchRequest"); - recv_searchRequest(apdu->u.searchRequest); + recv_searchRequest(apdu->u.searchRequest); break; case Z_APDU_searchResponse: - logf (m_log, "recv searchResponse"); - recv_searchResponse(apdu->u.searchResponse); - break; + logf (m_log, "recv searchResponse"); + recv_searchResponse(apdu->u.searchResponse); + break; case Z_APDU_presentRequest: logf (m_log, "recv presentRequest"); - recv_presentRequest(apdu->u.presentRequest); + recv_presentRequest(apdu->u.presentRequest); break; case Z_APDU_presentResponse: logf (m_log, "recv presentResponse"); - recv_presentResponse(apdu->u.presentResponse); + recv_presentResponse(apdu->u.presentResponse); + break; + case Z_APDU_extendedServicesResponse: + logf (m_log, "recv extendedServiceResponse"); + recv_extendedServicesResponse(apdu->u.extendedServicesResponse); break; } } @@ -390,6 +397,10 @@ void Yaz_IR_Assoc::recv_initResponse(Z_InitResponse *initResponse) { } +void Yaz_IR_Assoc::recv_extendedServicesResponse(Z_ExtendedServicesResponse *ExtendedServicesResponse) +{ +} + int Yaz_IR_Assoc::get_lastReceived() { return m_lastReceived; diff --git a/src/yaz-my-client.cpp b/src/yaz-my-client.cpp index c00c4b8..00306b2 100644 --- a/src/yaz-my-client.cpp +++ b/src/yaz-my-client.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-my-client.cpp,v $ - * Revision 1.6 2001-04-17 16:21:21 heikki + * Revision 1.7 2001-04-26 12:17:49 heikki + * Ursula stuff, mostly in the test client + * + * Revision 1.6 2001/04/17 16:21:21 heikki * Working on UrsulaRenewal, Request, and Update * * Revision 1.5 2001/04/10 10:48:08 adam @@ -126,6 +129,9 @@ public: const char *databaseName); void recv_textRecord(int type, const char *buf, size_t len); void recv_genericRecord(Z_GenericRecord *r); +#if HAVE_YAZ_URSULA_H + void recv_extendedServicesResponse(Z_ExtendedServicesResponse *extendedServicesResponse); +#endif void display_genericRecord(Z_GenericRecord *r, int level); void display_variant(Z_Variant *v, int level); void connectNotify(); @@ -146,6 +152,7 @@ public: int cmd_proxy(char *args); #if HAVE_YAZ_URSULA_H int cmd_ursula(char *args); + int cmd_ursula_renew(char *args); #endif }; @@ -517,6 +524,19 @@ void MyClient::recv_presentResponse(Z_PresentResponse *presentResponse) recv_records (presentResponse->records); } +#if HAVE_YAZ_URSULA_H +void MyClient::recv_extendedServicesResponse(Z_ExtendedServicesResponse *extendedServicesResponse) +{ + printf("Got ESresponse\n"); + printf(" OperationStatus=%d with %d diagnostics:\n", + *extendedServicesResponse->operationStatus, + extendedServicesResponse->num_diagnostics); + recv_diagrecs(extendedServicesResponse->diagnostics, + extendedServicesResponse->num_diagnostics); + //TODO: Add more info ! +} +#endif + int MyClient::wait() { set_lastReceived(0); @@ -528,6 +548,7 @@ int MyClient::wait() return 0; } + #define C_PROMPT "Z>" int MyClient::cmd_connect(char *host) @@ -618,13 +639,13 @@ int MyClient::cmd_proxy(char *args) } #if HAVE_YAZ_URSULA_H -#if TEST_URSULA_REF int MyClient::cmd_ursula(char *args) { Z_APDU *apdu = create_Z_PDU(Z_APDU_extendedServicesRequest); Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; req->packageType = odr_getoidbystr(odr_encode(), "1.2.840.10003"); +// req->packageType = odr_getoidbystr(odr_encode(), "1.2.840.10003.9.1000.105.3"); Z_External *ext = (Z_External *) odr_malloc(odr_encode(), sizeof(*ext)); req->taskSpecificParameters = ext; @@ -649,6 +670,7 @@ int MyClient::cmd_ursula(char *args) pdu->u.request->counter = 0; pdu->u.request->priority = 0; pdu->u.request->disposalNote = 0; + pdu->u.renewal->overrule=(bool_t*)odr_malloc(odr_encode(),sizeof(bool_t)); pdu->u.request->overrule = 0; if (!z_UrsPDU (odr_encode(), &pdu, 0, "")) @@ -668,9 +690,8 @@ int MyClient::cmd_ursula(char *args) wait(); return 1; } -#else // not request testing -int MyClient::cmd_ursula(char *args) +int MyClient::cmd_ursula_renew(char *args) { Z_APDU *apdu = create_Z_PDU(Z_APDU_extendedServicesRequest); Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; @@ -692,7 +713,14 @@ int MyClient::cmd_ursula(char *args) pdu->u.renewal = (Z_UrsRenewal *) odr_malloc (odr_encode(), sizeof(*pdu->u.renewal)); pdu->u.renewal->libraryNo = odr_strdup(odr_encode(), "000200"); - pdu->u.renewal->borrowerTicketNo = 0; + pdu->u.renewal->borrowerTicketNo = odr_strdup(odr_encode(),"123456"); + pdu->u.renewal->num_copies=1; + pdu->u.renewal->copies = (Z_InternationalString **) + odr_malloc(odr_encode(),1* sizeof(Z_InternationalString *) ); + pdu->u.renewal->copies[0]= odr_strdup(odr_encode(), "firstcopy"); + pdu->u.renewal->newReturnDate=odr_strdup(odr_encode(), "20011224"); + pdu->u.renewal->overrule=(bool_t*)odr_malloc(odr_encode(),sizeof(bool_t)); + *pdu->u.renewal->overrule=false; if (!z_UrsPDU (odr_encode(), &pdu, 0, "")) { @@ -712,7 +740,6 @@ int MyClient::cmd_ursula(char *args) return 1; } -#endif #endif @@ -738,6 +765,10 @@ int MyClient::processCommand(const char *commandLine) {"proxy", &MyClient::cmd_proxy, ":[':']"}, #if HAVE_YAZ_URSULA_H {"ursula", &MyClient::cmd_ursula, ""}, + {"ursula_request", &MyClient::cmd_ursula, ""}, + {"ursreq", &MyClient::cmd_ursula, ""}, + {"ursnew", &MyClient::cmd_ursula_renew, ""}, + {"ursula_renew", &MyClient::cmd_ursula_renew, ""}, #endif {0,0,0} }; diff --git a/win/yazclient/yazclient.dsp b/win/yazclient/yazclient.dsp index 4760ce2..11d516e 100644 --- a/win/yazclient/yazclient.dsp +++ b/win/yazclient/yazclient.dsp @@ -73,7 +73,7 @@ PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../../yaz/include" /I "../../../yaz-ursula/include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D HAVE_YAZ_URSULA_H=1 /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../../yaz/include" /I "../../../yaz-ursula/include" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D HAVE_YAZ_URSULA_H=1 /FR /YX /FD /c # ADD BASE RSC /l 0x406 /d "_DEBUG" # ADD RSC /l 0x406 /d "_DEBUG" BSC32=bscmake.exe diff --git a/win/yazxx/yazxx.dsp b/win/yazxx/yazxx.dsp index a80327f..78559c9 100644 --- a/win/yazxx/yazxx.dsp +++ b/win/yazxx/yazxx.dsp @@ -75,7 +75,7 @@ PostBuild_Cmds=copy $(OutDir)\$(TargetName).dll $(ProjDir)\..\..\..\bin # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../yaz++/include" /I "../../include" /I "../../../yaz/include" /I "../../../yaz-ursula/include" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /D HAVE_YAZ_URSULA=1 /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../yaz++/include" /I "../../include" /I "../../../yaz/include" /I "../../../yaz-ursula/include" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /D HAVE_YAZ_URSULA=1 /FR /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x406 /d "_DEBUG" -- 1.7.10.4