X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=include%2Fyaz%2B%2B%2Fproxy.h;h=732639176f813f197405b155a41047a73a8d23c1;hb=3925b97e468538ef3394b99896e19ac5d3120b5f;hp=dd86def7ba5911813ba1be0b86472efe221e992f;hpb=28588b9224eb5189af32b10f440ef2a917a05ea2;p=yazpp-moved-to-github.git diff --git a/include/yaz++/proxy.h b/include/yaz++/proxy.h index dd86def..7326391 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.8 2003-10-01 13:13:51 adam Exp $ + * $Id: proxy.h,v 1.12 2003-10-08 08:53:08 adam Exp $ */ #include @@ -24,19 +24,36 @@ public: ~Yaz_ProxyConfig(); int read_xml(const char *fname); void get_target_info(const char *name, const char **url, int *keepalive, - int *limit_bw, int *limit_pdu, int *limit_req); + int *limit_bw, int *limit_pdu, int *limit_req, + int *target_idletime, int *client_idletime, + 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; xmlNodePtr m_proxyPtr; void return_target_info(xmlNodePtr ptr, const char **url, int *keepalive, - int *limit_bw, int *limit_pdu, int *limit_req); + int *limit_bw, int *limit_pdu, int *limit_req, + int *target_idletime, int *client_idletime); void return_limit(xmlNodePtr ptr, int *limit_bw, int *limit_pdu, int *limit_req); + int check_type_1(ODR odr, xmlNodePtr ptr, Z_RPNQuery *query, + char **addinfo); + xmlNodePtr find_target_node(const char *name); const char *get_text(xmlNodePtr ptr); + int check_type_1_attributes(ODR odr, xmlNodePtr ptr, + Z_AttributeList *attrs, + char **addinfo); + int check_type_1_structure(ODR odr, xmlNodePtr ptr, Z_RPNStructure *q, + 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 { @@ -51,6 +68,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; @@ -59,6 +77,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 { @@ -145,6 +164,11 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { int m_max_record_retrieve; void handle_max_record_retrieve(Z_APDU *apdu); void display_diagrecs(Z_DiagRec **pp, int num); + Z_Records *create_nonSurrogateDiagnostics(ODR o, int error, + const char *addinfo); + + Z_APDU *handle_query_validation(Z_APDU *apdu); + Z_APDU *handle_syntax_validation(Z_APDU *apdu); public: Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable); ~Yaz_Proxy();