X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2B%2B%2Fproxy.h;h=dcc71f80ed87f54568d8b55021bc402a0b61bac2;hb=be8de1a2cca3c7162563ddfe524ad4e389758150;hp=e3858120e1d5f6f8f3559f2007e77bf069378d0b;hpb=ceb226cb18d96a6b3aa2dd6cff94aa27850362cf;p=yazpp-moved-to-github.git diff --git a/include/yaz++/proxy.h b/include/yaz++/proxy.h index e385812..dcc71f8 100644 --- a/include/yaz++/proxy.h +++ b/include/yaz++/proxy.h @@ -1,8 +1,8 @@ /* - * Copyright (c) 1998-2000, Index Data. + * Copyright (c) 1998-2003, Index Data. * See the file LICENSE for details. * - * $Id: proxy.h,v 1.1 2002-10-09 12:50:26 adam Exp $ + * $Id: proxy.h,v 1.4 2003-07-18 13:27:20 adam Exp $ */ #include @@ -11,9 +11,24 @@ class Yaz_Proxy; +class Yaz_RecordCache_Entry; + +class YAZ_EXPORT Yaz_RecordCache { + public: + Yaz_RecordCache (); + ~Yaz_RecordCache (); + void add (ODR o, Z_NamePlusRecordList *npr, int start); + int lookup (ODR o, Z_NamePlusRecordList **npr, int start, int num, + Odr_oid *syntax); + void clear(); + private: + NMEM m_mem; + Yaz_RecordCache_Entry *m_entries; +}; + /// Private class class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc { - friend Yaz_Proxy; + friend class Yaz_Proxy; Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable); ~Yaz_ProxyClient(); void recv_Z_PDU(Z_APDU *apdu); @@ -36,8 +51,10 @@ class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc { int m_sr_transform; int m_seqno; int m_waiting; + int m_resultSetStartPoint; ODR m_init_odr; Z_APDU *m_initResponse; + Yaz_RecordCache m_cache; }; /// Information Retrieval Proxy Server. @@ -56,6 +73,7 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { int m_seqno; int m_max_clients; int m_keepalive; + int m_idletime; char *m_proxyTarget; char *m_proxy_authentication; long m_seed; @@ -74,5 +92,6 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { void set_proxy_authentication (const char *auth); char *get_proxy_target() { return m_proxyTarget; }; void set_max_clients(int m) { m_max_clients = m; }; + void set_idletime (int t) { m_idletime = (t > 1) ? t : 600; }; };