X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-ir-assoc.cpp;h=edb8a1b4c8014e898ac8d0348649cfe3f7861675;hb=5e3f7e1a720a08d30c407049c94c6ca825a5ed27;hp=1148c50af7852bb11448132aa4c1febbe29788d1;hpb=1063240efa2d4f03a72353936e8a7b73ee249b0d;p=yazpp-moved-to-github.git diff --git a/src/yaz-ir-assoc.cpp b/src/yaz-ir-assoc.cpp index 1148c50..edb8a1b 100644 --- a/src/yaz-ir-assoc.cpp +++ b/src/yaz-ir-assoc.cpp @@ -1,45 +1,14 @@ /* - * Copyright (c) 1998-1999, Index Data. + * Copyright (c) 1998-2003, Index Data. * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * - * $Log: yaz-ir-assoc.cpp,v $ - * Revision 1.12 2000-05-10 11:36:58 ian - * Added default parameters for refid to request functions. - * Added default parameter for result set name to search and present request. - * Commented out forced logging of PDU contents. - * Added send_deleteResultSetRequest - * - * Revision 1.11 1999/12/06 13:52:45 adam - * Modified for new location of YAZ header files. Experimental threaded - * operation. - * - * Revision 1.10 1999/04/29 07:33:28 adam - * Changed setting of host in connect/proxy setting. YAZ' strtoaddr now - * ignores database part of host. - * - * Revision 1.9 1999/04/28 13:29:14 adam - * Yet another fix regarding database settings. - * - * Revision 1.8 1999/04/28 13:04:03 adam - * Fixed setting of proxy otherInfo so that database(s) are removed. - * - * 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. + * $Id: yaz-ir-assoc.cpp,v 1.23 2004-12-13 20:50:54 adam Exp $ */ #include #include -#include +#include Yaz_IR_Assoc::Yaz_IR_Assoc(IYaz_PDU_Observable *the_PDU_Observable) : Yaz_Z_Assoc(the_PDU_Observable) @@ -52,7 +21,7 @@ Yaz_IR_Assoc::Yaz_IR_Assoc(IYaz_PDU_Observable *the_PDU_Observable) m_host = 0; m_proxy = 0; m_cookie = 0; - m_log = LOG_DEBUG; + m_log = YLOG_DEBUG; const char *db = "Default"; set_databaseNames(1, &db); } @@ -73,15 +42,17 @@ void Yaz_IR_Assoc::get_databaseNames (int *num, char ***list) *list = m_databaseNames; } +typedef char *charp; void Yaz_IR_Assoc::set_databaseNames (int num, const char **list) { int i; - logf (m_log, "Yaz_IR_Assoc::set_databaseNames num=%d", num); + yaz_log (m_log, "Yaz_IR_Assoc::set_databaseNames num=%d", num); for (i = 0; iu.generic; } -void Yaz_IR_Assoc::recv_Z_PDU(Z_APDU *apdu) + +void Yaz_IR_Assoc::recv_GDU(Z_GDU *apdu, int len) +{ + if (apdu->which == Z_GDU_Z3950) + recv_Z_PDU(apdu->u.z3950, len); +} + +void Yaz_IR_Assoc::recv_Z_PDU(Z_APDU *apdu, int len) { - logf (m_log, "recv_Z_PDU"); + yaz_log (m_log, "recv_Z_PDU %d bytes", len); m_lastReceived = apdu->which; switch (apdu->which) { case Z_APDU_initResponse: - logf (m_log, "recv InitResponse"); + yaz_log (m_log, "recv InitResponse"); recv_initResponse(apdu->u.initResponse); break; case Z_APDU_initRequest: - logf (m_log, "recv InitRequest"); + yaz_log (m_log, "recv InitRequest"); recv_initRequest(apdu->u.initRequest); break; case Z_APDU_searchRequest: - logf (m_log, "recv searchRequest"); + yaz_log (m_log, "recv searchRequest"); recv_searchRequest(apdu->u.searchRequest); break; case Z_APDU_searchResponse: - logf (m_log, "recv searchResponse"); + yaz_log (m_log, "recv searchResponse"); recv_searchResponse(apdu->u.searchResponse); break; case Z_APDU_presentRequest: - logf (m_log, "recv presentRequest"); + yaz_log (m_log, "recv presentRequest"); recv_presentRequest(apdu->u.presentRequest); break; case Z_APDU_presentResponse: - logf (m_log, "recv presentResponse"); + yaz_log (m_log, "recv presentResponse"); recv_presentResponse(apdu->u.presentResponse); break; + case Z_APDU_extendedServicesResponse: + yaz_log (m_log, "recv extendedServiceResponse"); + recv_extendedServicesResponse(apdu->u.extendedServicesResponse); + break; } } @@ -234,7 +216,7 @@ int Yaz_IR_Assoc::send_searchRequest(Yaz_Z_Query *query, oid_ent_to_oid(&prefsyn, oid_syntax); req->preferredRecordSyntax = oid_syntax; } - logf (m_log, "send_searchRequest"); + yaz_log (m_log, "send_searchRequest"); assert (req->otherInfo == 0); if (m_cookie) { @@ -252,7 +234,7 @@ int Yaz_IR_Assoc::send_searchRequest(Yaz_Z_Query *query, req->resultSetName = pResultSetId; } - return send_Z_PDU(apdu); + return send_Z_PDU(apdu, 0); } int Yaz_IR_Assoc::send_presentRequest(int start, @@ -301,7 +283,7 @@ int Yaz_IR_Assoc::send_presentRequest(int start, req->resultSetId = pResultSetId; } - return send_Z_PDU(apdu); + return send_Z_PDU(apdu, 0); } void Yaz_IR_Assoc::set_proxy(const char *str) @@ -355,19 +337,19 @@ const char *Yaz_IR_Assoc::get_host() void Yaz_IR_Assoc::recv_searchRequest(Z_SearchRequest *searchRequest) { Z_APDU *apdu = create_Z_PDU(Z_APDU_searchResponse); - send_Z_PDU(apdu); + send_Z_PDU(apdu, 0); } void Yaz_IR_Assoc::recv_presentRequest(Z_PresentRequest *presentRequest) { Z_APDU *apdu = create_Z_PDU(Z_APDU_presentResponse); - send_Z_PDU(apdu); + send_Z_PDU(apdu, 0); } void Yaz_IR_Assoc::recv_initRequest(Z_InitRequest *initRequest) { Z_APDU *apdu = create_Z_PDU(Z_APDU_initResponse); - send_Z_PDU(apdu); + send_Z_PDU(apdu, 0); } void Yaz_IR_Assoc::recv_searchResponse (Z_SearchResponse *searchResponse) @@ -382,6 +364,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; @@ -419,17 +405,16 @@ int Yaz_IR_Assoc::send_initRequest(char* pRefId) set_otherInformationString(&req->otherInfo, VAL_PROXY, 1, m_host); if (m_cookie) set_otherInformationString(&req->otherInfo, VAL_COOKIE, 1, m_cookie); - return send_Z_PDU(apdu); + return send_Z_PDU(apdu, 0); } -int Yaz_IR_Assoc::send_deleteResultSetRequest(char* pResultSetId = NULL, char* pRefId = NULL) +int Yaz_IR_Assoc::send_deleteResultSetRequest(char* pResultSetId, char* pRefId) { char* ResultSetIds[1]; Z_APDU *apdu = create_Z_PDU(Z_APDU_deleteResultSetRequest); Z_DeleteResultSetRequest *req = apdu->u.deleteResultSetRequest; - if ( pResultSetId ) { *req->deleteFunction = Z_DeleteResultSetRequest_list; @@ -452,8 +437,7 @@ int Yaz_IR_Assoc::send_deleteResultSetRequest(char* pResultSetId = NULL, char* p if (m_cookie) set_otherInformationString(&req->otherInfo, VAL_COOKIE, 1, m_cookie); - - return send_Z_PDU(apdu); + return send_Z_PDU(apdu, 0); }