Record cache. syntax used for matching. Compspec is not (yet)
[yazpp-moved-to-github.git] / include / yaz++ / proxy.h
index d27c5a9..dcc71f8 100644 (file)
@@ -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.2 2002-10-23 10:15:17 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);
@@ -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.