+
+ Z_Records *create_nonSurrogateDiagnostics (ODR odr, int error,
+ const char *addinfo);
+};
+
+class YAZ_EXPORT IYaz_Server_Facility {
+ public:
+ virtual int init(Yaz_Z_Server *server,
+ Z_InitRequest *initRequest,
+ Z_InitResponse *initResponse) = 0;
+ virtual int recv(Yaz_Z_Server *server, Z_APDU *apdu) = 0;
+};
+
+
+#if HAVE_YAZ_URSULA_H
+class YAZ_EXPORT Yaz_Facility_Ursula : public IYaz_Server_Facility {
+ public:
+// virtual void ursula_service (Z_ExtendedServicesRequest *req,
+// Z_UrsPDU *u,
+// Z_ExtendedServicesResponse *res) = 0;
+ virtual void ursula_service (Z_ExtendedServicesRequest *req,
+ Z_UrsPDU *u_req,
+ Z_ExtendedServicesResponse *res,
+ Z_UrsPDU *u_res) =0;
+
+ int init(Yaz_Z_Server *server,
+ Z_InitRequest *initRequest,
+ Z_InitResponse *initResponse);
+ int recv(Yaz_Z_Server *server, Z_APDU *apdu);
+};
+#endif
+
+class YAZ_EXPORT Yaz_Facility_ILL : public IYaz_Server_Facility {
+ public:
+ virtual void ill_service (Z_ExtendedServicesRequest *req,
+ Z_ItemOrder *io,
+ Z_ExtendedServicesResponse *res) = 0;
+
+ int init(Yaz_Z_Server *server,
+ Z_InitRequest *initRequest,
+ Z_InitResponse *initResponse);
+ int recv(Yaz_Z_Server *server, Z_APDU *apdu);
+};
+
+class YAZ_EXPORT Yaz_Facility_Update : public IYaz_Server_Facility {
+ public:
+ virtual void update_service (Z_ExtendedServicesRequest *req,
+ Z_IUUpdate *io,
+ Z_ExtendedServicesResponse *res) = 0;
+
+ virtual void update_service0 (Z_ExtendedServicesRequest *req,
+ Z_IU0Update *io,
+ Z_ExtendedServicesResponse *res) = 0;
+
+ int init(Yaz_Z_Server *server,
+ Z_InitRequest *initRequest,
+ Z_InitResponse *initResponse);
+ int recv(Yaz_Z_Server *server, Z_APDU *apdu);
+};
+