/* This file is part of Metaproxy.
- Copyright (C) 2005-2010 Index Data
+ Copyright (C) 2005-2013 Index Data
Metaproxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
namespace metaproxy_1 {
namespace util {
-
- template<typename T>
+
+ template<typename T>
std::string to_string(const T& t)
{
std::ostringstream o;
if(o << t)
- return o.str();
+ return o.str();
return std::string();
};
- const char *
+ const char *
record_composition_to_esn(Z_RecordComposition *comp);
- std::string http_header_value(const Z_HTTP_Header* header,
+ std::string http_header_value(const Z_HTTP_Header* header,
const std::string name);
- std::string http_headers_debug(const Z_HTTP_Request &http_req);
+ std::string http_headers_debug(const Z_HTTP_Request &http_req);
- void http_response(metaproxy_1::Package &package,
- const std::string &content,
+ void http_response(metaproxy_1::Package &package,
+ const std::string &content,
int http_code = 200);
void split_zurl(std::string zurl, std::string &host,
std::list<std::string> &db);
-
+
void get_vhost_otherinfo(Z_OtherInformation *otherInformation,
std::list<std::string> &vhosts);
-
+
int remove_vhost_otherinfo(Z_OtherInformation **otherInformation,
std::list<std::string> &vhosts);
- void set_vhost_otherinfo(Z_OtherInformation **otherInformation,
+ void set_vhost_otherinfo(Z_OtherInformation **otherInformation,
ODR odr,
- const std::string vhost,
+ const std::string vhost,
const int cat);
void set_vhost_otherinfo(Z_OtherInformation **otherInformation,
void get_default_diag(Z_DefaultDiagFormat *r,
int &error_code, std::string &addinfo);
+ Z_RecordComposition *piggyback_to_RecordComposition(
+ ODR odr, Odr_int result_set_size, Z_SearchRequest *sreq);
+
void piggyback(int smallSetUpperBound,
int largeSetLowerBound,
int mediumSetPresentNumber,
int result_set_size,
- int &number_to_present);
-
+ int &number_to_present)
+#ifdef __GNUC__
+ __attribute__ ((deprecated))
+#endif
+ ;
+ void piggyback_sr(Z_SearchRequest *sreq,
+ Odr_int result_set_size,
+ Odr_int &number_to_present,
+ const char **element_set_name);
+
+ void piggyback(Odr_int smallSetUpperBound,
+ Odr_int largeSetLowerBound,
+ Odr_int mediumSetPresentNumber,
+ const char *smallSetElementSetNames,
+ const char *mediumSetElementSetNames,
+ Odr_int result_set_size,
+ Odr_int &number_to_present,
+ const char **element_set_name);
+
+ std::string uri_encode(std::string s);
+ std::string uri_decode(std::string s);
};
class odr : public boost::noncopyable {
odr();
~odr();
operator ODR() const;
- Z_APDU *create_close(const Z_APDU *in_apdu,
+ Z_APDU *create_close(const Z_APDU *in_apdu,
int reason, const char *addinfo);
- Z_APDU *create_initResponse(const Z_APDU *in_apdu,
+ Z_APDU *create_initResponse(const Z_APDU *in_apdu,
int error, const char *addinfo);
Z_APDU *create_searchResponse(const Z_APDU *in_apdu,
int error, const char *addinfo);
Z_GDU *create_HTTP_Response(metaproxy_1::Session &session,
Z_HTTP_Request *req, int code);
+ Z_GDU *create_HTTP_Response_details(metaproxy_1::Session &session,
+ Z_HTTP_Request *req, int code,
+ const char *details);
private:
ODR m_odr;
};
+ class wrbuf : public boost::noncopyable
+ {
+ public:
+ wrbuf();
+ ~wrbuf();
+ operator WRBUF() const;
+ size_t len();
+ const char *buf();
+ private:
+ WRBUF m_wrbuf;
+ };
+
class PlainFile {
class Rep;
boost::scoped_ptr<Rep> m_p;