Rename a few files
[yazpp-moved-to-github.git] / include / yaz++ / proxy.h
index 1224032..aafef3c 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1998-2004, Index Data.
  * See the file LICENSE for details.
  * 
- * $Id: proxy.h,v 1.33 2004-01-09 18:11:15 adam Exp $
+ * $Id: proxy.h,v 1.41 2004-02-27 00:42:57 adam Exp $
  */
 
 #include <sys/time.h>
@@ -13,6 +13,8 @@
 #if HAVE_XSLT
 #include <libxml/parser.h>
 #include <libxml/tree.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/transform.h>
 #endif
 
 class Yaz_Proxy;
@@ -91,7 +93,6 @@ private:
     int m_copy;
     int match_list(int v, const char *m);
     int atoi_l(const char **cp);
-
 };
 
 class YAZ_EXPORT Yaz_RecordCache {
@@ -167,6 +168,10 @@ class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc {
     int m_pdu_recv;
     ODR m_init_odr;
     Z_APDU *m_initResponse;
+    Z_Options *m_initResponse_options;
+    Z_ProtocolVersion *m_initResponse_version;
+    int m_initResponse_preferredMessageSize;
+    int m_initResponse_maximumRecordSize;
     Yaz_RecordCache m_cache;
     void pre_init_client();
     int m_target_idletime;
@@ -238,19 +243,28 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     int m_request_no;
     int m_invalid_session;
     int m_marcxml_flag;
-    char *m_stylesheet_schema;
+    xsltStylesheetPtr m_stylesheet_xsp;
+    int m_stylesheet_offset;
+    Z_APDU *m_stylesheet_apdu;
+    Z_NamePlusRecordList *m_stylesheet_nprl;
     char *m_schema;
     void convert_to_marcxml(Z_NamePlusRecordList *p);
-    void convert_xsl(Z_NamePlusRecordList *p);
+    int convert_xsl(Z_NamePlusRecordList *p, Z_APDU *apdu);
+    void convert_xsl_delay();
     Z_APDU *m_initRequest_apdu;
+    int m_initRequest_preferredMessageSize;
+    int m_initRequest_maximumRecordSize;
+    Z_Options *m_initRequest_options;
+    Z_ProtocolVersion *m_initRequest_version;
     NMEM m_initRequest_mem;
     Z_APDU *m_apdu_invalid_session;
     NMEM m_mem_invalid_session;
-    int send_PDU_convert(Z_APDU *apdu, int *len);
+    int send_PDU_convert(Z_APDU *apdu);
     ODR m_s2z_odr_init;
     ODR m_s2z_odr_search;
     int m_s2z_hit_count;
     int m_s2z_packing;
+    char *m_s2z_database;
     Z_APDU *m_s2z_init_apdu;
     Z_APDU *m_s2z_search_apdu;
     Z_APDU *m_s2z_present_apdu;
@@ -270,6 +284,12 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     struct timeval m_time_tv;
     void logtime();
     Z_ElementSetNames *mk_esn_from_schema(ODR o, const char *schema);
+    Z_ReferenceId *m_referenceId;
+    NMEM m_referenceId_mem;
+#define NO_SPARE_SOLARIS_FD 10
+    int m_lo_fd[NO_SPARE_SOLARIS_FD];
+    void low_socket_open();
+    void low_socket_close();
  public:
     Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable,
              Yaz_Proxy *parent = 0);
@@ -283,6 +303,7 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     void failNotify();
     void timeoutNotify();
     void connectNotify();
+    void markInvalid();
     const char *option(const char *name, const char *value);
     void set_default_target(const char *target);
     void set_proxy_authentication (const char *auth);