X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=include%2Fyazproxy%2Fproxy.h;h=ac9b503782bc95417164d5f76e1f89fd132f92bb;hb=2bab0500e690612c044b1d9f87a0f03bc1640743;hp=9c87ab8797256ff196e79b7d0e7171eabbe6068e;hpb=a2d288bc0361884aa6e2fa953ef2766e3e1a90e7;p=yazproxy-moved-to-github.git diff --git a/include/yazproxy/proxy.h b/include/yazproxy/proxy.h index 9c87ab8..ac9b503 100644 --- a/include/yazproxy/proxy.h +++ b/include/yazproxy/proxy.h @@ -1,4 +1,4 @@ -/* $Id: proxy.h,v 1.5 2004-08-10 09:02:16 adam Exp $ +/* $Id: proxy.h,v 1.10 2004-12-13 20:52:33 adam Exp $ Copyright (c) 1998-2004, Index Data. This file is part of the yaz-proxy. @@ -19,6 +19,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef YAZ_PROXY_H_INCLUDED +#define YAZ_PROXY_H_INCLUDED + #include #include #include @@ -37,6 +40,7 @@ class Yaz_Proxy; struct Yaz_RecordCache_Entry; class Yaz_ProxyConfigP; +class Yaz_usemarcon; class YAZ_EXPORT Yaz_ProxyConfig { public: @@ -56,7 +60,8 @@ public: int *keepalive_limit_bw, int *keepalive_limit_pdu, int *pre_init, - const char **cql2rpn); + const char **cql2rpn, + const char **authentication); void get_generic_info(int *log_mask, int *max_clients); @@ -66,16 +71,21 @@ public: int *max_clients, int *keepalive_limit_bw, int *keepalive_limit_pdu, int *pre_init, - const char **cql2rpn); + const char **cql2rpn, + const char **authentication); + const char *check_mime_type(const char *path); int check_query(ODR odr, const char *name, Z_Query *query, char **addinfo); int check_syntax(ODR odr, const char *name, Odr_oid *syntax, Z_RecordComposition *comp, char **addinfo, char **stylesheet, char **schema, - char **backend_type); - char *get_explain(ODR odr, const char *name, const char *db, - int *len); -private: + char **backend_type, char **backend_charset, + char **usemarcon_ini_stage1, char **usemarcon_ini_stage2 + ); + char *get_explain_doc(ODR odr, const char *name, const char *db, + int *len); + const char *get_explain_name(const char *db, const char **backend_db); + private: void operator=(const Yaz_ProxyConfig &conf); class Yaz_ProxyConfigP *m_cp; }; @@ -158,9 +168,10 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { char *get_proxy(Z_OtherInformation **otherInfo); Yaz_ProxyClient *get_client(Z_APDU *apdu, const char *cookie, const char *proxy_host); + void srw_get_client(const char *db, const char **backend_db); Z_APDU *result_set_optimize(Z_APDU *apdu); void shutdown(); - + void releaseClient(); Yaz_ProxyClient *m_client; IYaz_PDU_Observable *m_PDU_Observable; Yaz_ProxyClient *m_clientPool; @@ -210,9 +221,10 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { Z_NamePlusRecordList *m_stylesheet_nprl; char *m_schema; char *m_backend_type; + char *m_backend_charset; int m_frontend_type; void convert_to_frontend_type(Z_NamePlusRecordList *p); - void convert_to_marcxml(Z_NamePlusRecordList *p); + void convert_to_marcxml(Z_NamePlusRecordList *p, const char *charset); int convert_xsl(Z_NamePlusRecordList *p, Z_APDU *apdu); void convert_xsl_delay(); Z_APDU *m_initRequest_apdu; @@ -234,6 +246,7 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { Z_APDU *m_s2z_present_apdu; char *m_s2z_stylesheet; char *m_soap_ns; + int file_access(Z_HTTP_Request *hreq); int send_to_srw_client_error(int error, const char *add); int send_to_srw_client_ok(int hits, Z_Records *records, int start); int send_http_response(int code); @@ -254,6 +267,9 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { int m_lo_fd[NO_SPARE_SOLARIS_FD]; void low_socket_open(); void low_socket_close(); + char *m_usemarcon_ini_stage1; + char *m_usemarcon_ini_stage2; + Yaz_usemarcon *m_usemarcon; public: Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable, Yaz_Proxy *parent = 0); @@ -286,3 +302,4 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { int handle_init_response_for_invalid_session(Z_APDU *apdu); }; +#endif