X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fproxyp.h;h=217de14dd423af1b9a703542e90867d0eeed5baf;hb=850cba55769a7ed94d4da0e7c05b823e54ce3cc3;hp=7455bbd8606520180d3e81953dc0a9ba5295f68f;hpb=6699ea1b1b538de074500e2c740152135dfa75c5;p=yazproxy-moved-to-github.git diff --git a/src/proxyp.h b/src/proxyp.h index 7455bbd..217de14 100644 --- a/src/proxyp.h +++ b/src/proxyp.h @@ -1,4 +1,4 @@ -/* $Id: proxyp.h,v 1.4 2005-05-04 08:31:44 adam Exp $ +/* $Id: proxyp.h,v 1.8 2005-06-21 18:46:04 adam Exp $ Copyright (c) 1998-2005, Index Data. This file is part of the yaz-proxy. @@ -31,6 +31,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #endif +#include #include #include @@ -58,7 +59,11 @@ public: ~Yaz_CharsetConverter(); void set_target_query_charset(const char *s); void set_client_query_charset(const char *org); + const char *get_client_query_charset(void); + const char *get_target_query_charset(void); void convert_type_1(Z_RPNQuery *q, ODR o); + void set_client_charset_selected(int sel); + int get_client_charset_selected(); private: void convert_type_1(char *buf_in, int len_in, char **buf_out, int *len_out, @@ -68,6 +73,7 @@ private: void convert_type_1(Z_Operand *q, ODR o); char *m_target_query_charset; char *m_client_query_charset; + int m_client_charset_selected; yaz_iconv_t m_ct; WRBUF m_wrbuf; }; @@ -123,7 +129,8 @@ public: int client_authentication(const char *name, const char *user, const char *group, - const char *password); + const char *password, + const char *peer_IP); char *get_explain_doc(ODR odr, const char *name, const char *db, int *len); const char *get_explain_name(const char *db, const char **backend_db); @@ -132,40 +139,16 @@ public: class Yaz_ProxyConfigP *m_cp; }; -class Yaz_RecordCache { - public: - Yaz_RecordCache (); - ~Yaz_RecordCache (); - void add (ODR o, Z_NamePlusRecordList *npr, int start, int hits); - - int lookup (ODR o, Z_NamePlusRecordList **npr, int start, int num, - Odr_oid *syntax, Z_RecordComposition *comp); - void clear(); - - void copy_searchRequest(Z_SearchRequest *sr); - void copy_presentRequest(Z_PresentRequest *pr); - void set_max_size(int sz); - private: - NMEM m_mem; - Yaz_RecordCache_Entry *m_entries; - Z_SearchRequest *m_searchRequest; - Z_PresentRequest *m_presentRequest; - int match (Yaz_RecordCache_Entry *entry, - Odr_oid *syntax, int offset, - Z_RecordComposition *comp); - int m_max_size; -}; - -class Yaz_ProxyClient : public Yaz_Z_Assoc { +class Yaz_ProxyClient : public yazpp_1::Z_Assoc { friend class Yaz_Proxy; - Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable, + Yaz_ProxyClient(yazpp_1::IPDU_Observable *the_PDU_Observable, Yaz_Proxy *parent); ~Yaz_ProxyClient(); void recv_GDU(Z_GDU *apdu, int len); void recv_Z_PDU(Z_APDU *apdu, int len); void recv_HTTP_response(Z_HTTP_Response *apdu, int len); - IYaz_PDU_Observer* sessionNotify - (IYaz_PDU_Observable *the_PDU_Observable, int fd); + IPDU_Observer* sessionNotify + (yazpp_1::IPDU_Observable *the_PDU_Observable, int fd); void shutdown(); Yaz_Proxy *m_server; void failNotify(); @@ -177,8 +160,8 @@ class Yaz_ProxyClient : public Yaz_Z_Assoc { Yaz_ProxyClient *m_next; Yaz_ProxyClient **m_prev; int m_init_flag; - Yaz_Z_Query *m_last_query; - Yaz_Z_Databases m_last_databases; + yazpp_1::Yaz_Z_Query *m_last_query; + yazpp_1::Yaz_Z_Databases m_last_databases; char *m_last_resultSetId; int m_last_ok; int m_last_resultCount; @@ -195,7 +178,7 @@ class Yaz_ProxyClient : public Yaz_Z_Assoc { Z_ProtocolVersion *m_initResponse_version; int m_initResponse_preferredMessageSize; int m_initResponse_maximumRecordSize; - Yaz_RecordCache m_cache; + yazpp_1::RecordCache m_cache; void pre_init_client(); int m_target_idletime; Yaz_Proxy *m_root;