/*
- * 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 <yaz++/z-assoc.h>
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);
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.
int m_seqno;
int m_max_clients;
int m_keepalive;
+ int m_idletime;
char *m_proxyTarget;
char *m_proxy_authentication;
long m_seed;
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; };
};