X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2B%2B%2Fproxy.h;h=2a0b3e17a98ba0e8c5815e8c43f5289fd86f65fd;hb=79a9e68c4b373be7384552c58110f9ae28656b49;hp=c40a13da4dd18bd52a5ddce88f58d6aa9edd0333;hpb=02873e733a979cc98c13b24c934a8082adf27812;p=yazpp-moved-to-github.git diff --git a/include/yaz++/proxy.h b/include/yaz++/proxy.h index c40a13d..2a0b3e1 100644 --- a/include/yaz++/proxy.h +++ b/include/yaz++/proxy.h @@ -2,7 +2,7 @@ * Copyright (c) 1998-2003, Index Data. * See the file LICENSE for details. * - * $Id: proxy.h,v 1.9 2003-10-03 13:01:42 adam Exp $ + * $Id: proxy.h,v 1.13 2003-10-08 09:32:48 adam Exp $ */ #include @@ -16,6 +16,8 @@ class Yaz_Proxy; +#define MAX_ZURL_PLEX 10 + struct Yaz_RecordCache_Entry; class YAZ_EXPORT Yaz_ProxyConfig { @@ -29,6 +31,8 @@ public: int *max_clients); void operator=(const Yaz_ProxyConfig &conf); int check_query(ODR odr, const char *name, Z_Query *query, char **addinfo); + int check_syntax(ODR odr, const char *name, + Odr_oid *syntax, char **addinfo); private: #if HAVE_XML2 xmlDocPtr m_docPtr; @@ -49,6 +53,9 @@ private: char **addinfo); #endif int m_copy; + int match_list(int v, const char *m); + int atoi_l(const char **cp); + }; class YAZ_EXPORT Yaz_RecordCache { @@ -63,6 +70,7 @@ class YAZ_EXPORT Yaz_RecordCache { void copy_searchRequest(Z_SearchRequest *sr); void copy_presentRequest(Z_PresentRequest *pr); + void set_max_size(int sz); private: NMEM m_mem; Yaz_RecordCache_Entry *m_entries; @@ -71,6 +79,7 @@ class YAZ_EXPORT Yaz_RecordCache { int match (Yaz_RecordCache_Entry *entry, Odr_oid *syntax, int offset, Z_RecordComposition *comp); + int m_max_size; }; class YAZ_EXPORT Yaz_bw { @@ -161,6 +170,8 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { const char *addinfo); Z_APDU *handle_query_validation(Z_APDU *apdu); + Z_APDU *handle_syntax_validation(Z_APDU *apdu); + const char *load_balance(const char **url); public: Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable); ~Yaz_Proxy();