+struct Yaz_RecordCache_Entry;
+
+class YAZ_EXPORT Yaz_ProxyConfig {
+public:
+ Yaz_ProxyConfig();
+ ~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 *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);
+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 *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);
+
+};