Ursula stuff, mostly in the test client
authorHeikki Levanto <heikki@indexdata.dk>
Thu, 26 Apr 2001 12:17:49 +0000 (12:17 +0000)
committerHeikki Levanto <heikki@indexdata.dk>
Thu, 26 Apr 2001 12:17:49 +0000 (12:17 +0000)
include/yaz++/yaz-ir-assoc.h
src/yaz-ir-assoc.cpp
src/yaz-my-client.cpp
win/yazclient/yazclient.dsp
win/yazxx/yazxx.dsp

index f139ae8..cdd2211 100644 (file)
@@ -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 <yaz++/yaz-z-assoc.h>
@@ -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;
index e6c854f..42c4fbb 100644 (file)
@@ -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;
index c00c4b8..00306b2 100644 (file)
@@ -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, "<host>:[':'<port>]"},
 #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}
     };
index 4760ce2..11d516e 100644 (file)
@@ -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
index a80327f..78559c9 100644 (file)
@@ -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"