X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-my-server.cpp;h=7fae44dbc152e1d9972d720ffc716fe24a5e8e32;hp=a9aeb0ab6fe175cb3234b815ef3eecbd6cd049ac;hb=b51e13a9b732fe2ca93044776d5e990dbf2a4c0e;hpb=ba7a7aa994136b9bb5b775ad84192f96259bd9c0 diff --git a/src/yaz-my-server.cpp b/src/yaz-my-server.cpp index a9aeb0a..7fae44d 100644 --- a/src/yaz-my-server.cpp +++ b/src/yaz-my-server.cpp @@ -2,82 +2,33 @@ * Copyright (c) 1998-2001, Index Data. * See the file LICENSE for details. * - * $Log: yaz-my-server.cpp,v $ - * 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 #include -#include -#include -#include +#include +#include +#include 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, @@ -94,13 +45,6 @@ public: Z_Records *records); }; -class MyUrsula : public Yaz_Facility_Ursula { -public: - void ursula_service (Z_ExtendedServicesRequest *req, - Z_UrsPDU *u, - Z_ExtendedServicesResponse *res); -}; - class MyServer : public Yaz_Z_Server { public: ~MyServer(); @@ -114,17 +58,10 @@ public: private: MyRetrieval m_retrieval; MyILL m_ill; - MyUrsula m_ursula; + 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) @@ -132,32 +69,18 @@ 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)"); +} -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)"); } int MyRetrieval::sr_init (Z_InitRequest *initRequest, @@ -220,8 +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"); - new_server->facility_add(&new_server->m_ursula, "my ill"); - + new_server->facility_add(&new_server->m_update, "my update"); new_server->set_APDU_log(get_APDU_log()); return new_server; @@ -249,7 +171,6 @@ void MyServer::connectNotify() { } - void usage(char *prog) { fprintf (stderr, "%s: [-a log] [-v level] [-T] @:port\n", prog); @@ -292,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);