+ namespace util {
+ bool pqf(ODR odr, Z_APDU *apdu, const std::string &q);
+ Z_ReferenceId **get_referenceId(Z_APDU *apdu);
+ Z_APDU *create_APDU(ODR odr, int type, Z_APDU *in_apdu);
+ bool set_databases_from_zurl(ODR odr, std::string zurl,
+ int *db_num, char ***db_strings);
+ };
+
+ class odr : public boost::noncopyable {
+ public:
+ odr(int type);
+ odr();
+ ~odr();
+ operator ODR() const;
+ Z_APDU *create_close(Z_APDU *in_apdu,
+ int reason, const char *addinfo);
+ Z_APDU *create_initResponse(Z_APDU *in_apdu,
+ int error, const char *addinfo);
+ Z_APDU *create_searchResponse(Z_APDU *in_apdu,
+ int error, const char *addinfo);
+ Z_APDU *create_presentResponse(Z_APDU *in_apdu,
+ int error, const char *addinfo);
+ Z_APDU *create_scanResponse(Z_APDU *in_apdu,
+ int error, const char *addinfo);
+ Z_APDU *create_APDU(int type, Z_APDU *in_apdu);
+ private:
+ ODR m_odr;