Remove private extended service URSULA
[yazpp-moved-to-github.git] / src / yaz-my-server.cpp
index 30c68cd..7fae44d 100644 (file)
@@ -2,85 +2,33 @@
  * Copyright (c) 1998-2001, Index Data.
  * See the file LICENSE for details.
  * 
- * $Log: yaz-my-server.cpp,v $
- * Revision 1.4  2001-04-05 13:09:44  adam
- * Removed ursula dependancy.
- *
- * Revision 1.3  2001/04/04 14:02:49  adam
- * URSULA / Z-ruth service.
- *
- * Revision 1.2  2001/03/29 15:14:26  adam
- * Minor updates.
- *
- * Revision 1.1  2001/03/27 14:47:45  adam
- * New server facility scheme.
- *
- * Revision 1.15  2001/03/26 14:43:49  adam
- * New threaded PDU association.
- *
- * Revision 1.14  2000/11/01 14:22:59  adam
- * Added fd parameter for method IYaz_PDU_Observer::clone.
- *
- * Revision 1.13  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.12  2000/09/21 21:43:20  adam
- * Better high-level server API.
- *
- * Revision 1.11  2000/09/12 16:23:49  adam
- * Updated server example.
- *
- * Revision 1.10  2000/09/12 16:04:17  adam
- * Added comstack method for Yaz_PDU_Assoc..
- *
- * Revision 1.9  2000/09/12 12:09:53  adam
- * More work on high-level server.
- *
- * Revision 1.8  2000/09/08 10:23:42  adam
- * Added skeleton of yaz-z-server.
- *
- * Revision 1.7  1999/12/06 13:52:45  adam
- * Modified for new location of YAZ header files. Experimental threaded
- * operation.
- *
- * Revision 1.6  1999/04/21 12:09:01  adam
- * Many improvements. Modified to proxy server to work with "sessions"
- * based on cookies.
- *
- * 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:22  adam
- * First WIN32 port of YAZ++.
- *
- * Revision 1.2  1999/01/28 13:08:47  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-server.cpp,v 1.11 2002-10-28 12:16:09 adam Exp $
  */
 
 #include <yaz/log.h>
 #include <yaz/options.h>
-#include <yaz++/yaz-z-server.h>
-#include <yaz++/yaz-pdu-assoc.h>
-#include <yaz++/yaz-socket-manager.h>
+#include <yaz++/z-server.h>
+#include <yaz++/pdu-assoc.h>
+#include <yaz++/socket-manager.h>
 
 class MyILL : public Yaz_Facility_ILL {
 public:
-    int ill_init (Z_InitRequest *initRequest,
-                 Z_InitResponse *initResponse);
     void ill_service (Z_ExtendedServicesRequest *req,
                      Z_ItemOrder *io,
                      Z_ExtendedServicesResponse *res);
 };
 
+class MyUpdate : public Yaz_Facility_Update {
+public:
+    void update_service (Z_ExtendedServicesRequest *req,
+                        Z_IUUpdate *io,
+                        Z_ExtendedServicesResponse *res);
+    void update_service0 (Z_ExtendedServicesRequest *req,
+                        Z_IU0Update *io,
+                        Z_ExtendedServicesResponse *res);
+};
+
+
 class MyRetrieval : public Yaz_Facility_Retrieval, Yaz_USMARC {
 public:
     int sr_init (Z_InitRequest *initRequest,
@@ -97,15 +45,6 @@ public:
                    Z_Records *records);
 };
 
-#if HAVE_YAZ_URSULA_H
-class MyUrsula : public Yaz_Facility_Ursula {
-public:
-    void ursula_service (Z_ExtendedServicesRequest *req,
-                        Z_UrsPDU *u,
-                        Z_ExtendedServicesResponse *res);
-};
-#endif
-
 class MyServer : public Yaz_Z_Server {
 public:
     ~MyServer();
@@ -119,19 +58,10 @@ public:
 private:
     MyRetrieval m_retrieval;
     MyILL       m_ill;
-#if HAVE_YAZ_URSULA_H
-    MyUrsula    m_ursula;
-#endif
+    MyUpdate    m_update;
     int m_no;
 };
 
-int MyILL::ill_init (Z_InitRequest *initRequest,
-                    Z_InitResponse *initResponse)
-{
-    yaz_log (LOG_LOG, "MyILL::ill_init");
-    return 1;
-}
-
 void MyILL::ill_service (Z_ExtendedServicesRequest *req,
                         Z_ItemOrder *io,
                         Z_ExtendedServicesResponse *res)
@@ -139,35 +69,19 @@ void MyILL::ill_service (Z_ExtendedServicesRequest *req,
     yaz_log (LOG_LOG, "MyServer::ill_service");
 }
 
+void MyUpdate::update_service (Z_ExtendedServicesRequest *req,
+                          Z_IUUpdate *io,
+                          Z_ExtendedServicesResponse *res)
+{
+    yaz_log (LOG_LOG, "MyServer::update_service (v1.1)");
+}
 
-#if HAVE_YAZ_URSULA_H
-void MyUrsula::ursula_service (Z_ExtendedServicesRequest *req,
-                              Z_UrsPDU *u,
-                              Z_ExtendedServicesResponse *res)
+void MyUpdate::update_service0 (Z_ExtendedServicesRequest *req,
+                          Z_IU0Update *io,
+                               Z_ExtendedServicesResponse *res)
 {
-    yaz_log (LOG_LOG, "MyServer::ursula_service");
-    switch (u->which)
-    {
-    case  Z_UrsPDU_request:
-       yaz_log(LOG_LOG, "request");
-       if (u->u.request->libraryNo)
-           yaz_log (LOG_LOG, "libraryNo: %s", u->u.request->libraryNo);
-       break;
-    case  Z_UrsPDU_update:
-       yaz_log(LOG_LOG, "request");
-       break;
-    case  Z_UrsPDU_reservation:
-       yaz_log(LOG_LOG, "request");
-       break;
-    case  Z_UrsPDU_renewal:
-       yaz_log(LOG_LOG, "request");
-       break;
-    default:
-       yaz_log(LOG_LOG, "unknown");
-       break;
-    }
+    yaz_log (LOG_LOG, "MyServer::update_service (v1.0)");
 }
-#endif
 
 int MyRetrieval::sr_init (Z_InitRequest *initRequest,
                       Z_InitResponse *initResponse)
@@ -229,10 +143,7 @@ IYaz_PDU_Observer *MyServer::sessionNotify(
     new_server->timeout(900);
     new_server->facility_add(&new_server->m_retrieval, "my sr");
     new_server->facility_add(&new_server->m_ill, "my ill");
-#if HAVE_YAZ_URSULA_H
-    new_server->facility_add(&new_server->m_ursula, "my ill");
-#endif
-
+    new_server->facility_add(&new_server->m_update, "my update");
     new_server->set_APDU_log(get_APDU_log());
 
     return new_server;
@@ -260,7 +171,6 @@ void MyServer::connectNotify()
 {
 }
 
-
 void usage(char *prog)
 {
     fprintf (stderr, "%s: [-a log] [-v level] [-T] @:port\n", prog);
@@ -303,10 +213,14 @@ int main(int argc, char **argv)
            return 1;
        }
     }
+#if YAZ_POSIX_THREADS
     if (thread_flag)
        my_PDU_Assoc = new Yaz_PDU_AssocThread(&mySocketManager);
     else
        my_PDU_Assoc = new Yaz_PDU_Assoc(&mySocketManager);
+#else
+    my_PDU_Assoc = new Yaz_PDU_Assoc(&mySocketManager);
+#endif
     
     z = new MyServer(my_PDU_Assoc);
     z->server(addr);