/*
- * Copyright (c) 1998-2000, Index Data.
+ * Copyright (c) 1998-2003, Index Data.
* See the file LICENSE for details.
*
- * $Id: proxy.h,v 1.3 2002-11-26 11:13:40 mike Exp $
+ * $Id: proxy.h,v 1.7 2003-09-04 20:11:03 adam Exp $
*/
#include <yaz++/z-assoc.h>
class Yaz_Proxy;
+struct Yaz_RecordCache_Entry;
+
+class YAZ_EXPORT 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);
+ 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);
+};
+
/// Private class
class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc {
friend class Yaz_Proxy;
void failNotify();
void timeoutNotify();
void connectNotify();
- char m_cookie[32];
+ char *m_cookie;
Yaz_ProxyClient *m_next;
Yaz_ProxyClient **m_prev;
int m_init_flag;
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.