+
+ 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;
+};
+
+
+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;
+
+ 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_ILL : public IYaz_Server_Facility {
+ public:
+ virtual int ill_init (Z_InitRequest *initRequest,
+ Z_InitResponse *initResponse) = 0;
+
+ 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_Retrieval : public IYaz_Server_Facility,
+ public Yaz_Z_ServerUtility {
+ public: