2 * Copyright (c) 2000-2001, Index Data.
3 * See the file LICENSE for details.
5 * $Id: yaz-z-server.h,v 1.2 2001-03-26 14:43:49 adam Exp $
8 #include <yaz++/yaz-z-assoc.h>
12 class YAZ_EXPORT Yaz_I_Facility {
14 virtual const char *get_name(Yaz_Z_Server *server) = 0;
15 virtual int open(Yaz_Z_Server *server,
16 Z_InitRequest *initRequest,
17 Z_InitResponse *initResponse) = 0;
18 virtual int recv_PDU(Yaz_Z_Server *server, Z_APDU *apdu) = 0;
19 virtual int close(Yaz_Z_Server *server) = 0;
22 class YAZ_EXPORT Yaz_Facility_Retrieval : public Yaz_I_Facility {
24 const char *get_name(Yaz_Z_Server *server);
25 int open(Yaz_Z_Server *server,
26 Z_InitRequest *initRequest,
27 Z_InitResponse *initResponse);
28 int recv_PDU(Yaz_Z_Server *server, Z_APDU *apdu);
29 int close(Yaz_Z_Server *server);
32 class YAZ_EXPORT Yaz_Z_Server : public Yaz_Z_Assoc {
34 Yaz_Z_Server(IYaz_PDU_Observable *the_PDU_Observable);
35 virtual void recv_Z_PDU(Z_APDU *apdu);
36 virtual void recv_Z_init (Z_InitRequest *initRequest,
37 Z_InitResponse *initResponse) = 0;
38 virtual void recv_Z_search (Z_SearchRequest *searchRequest,
39 Z_SearchResponse *searchResponse) = 0;
40 virtual void recv_Z_present (Z_PresentRequest *presentRequest,
41 Z_PresentResponse *presentResponse) = 0;
42 virtual void recv_Z_record (const char *resultSetName,
45 Z_RecordComposition *comp,
46 Z_NamePlusRecord *namePlusRecord,
47 Z_Records *diagnostics) = 0;
48 Z_Records *Yaz_Z_Server::create_nonSurrogateDiagnostics (
49 int error, const char *addinfo);
50 void create_databaseRecord (Z_NamePlusRecord *rec,
51 const char *dbname, int format,
52 const void *buf, int len);
53 void create_surrogateDiagnostics(Z_NamePlusRecord *rec,
54 const char *dbname, int error,
57 Z_Records *pack_records (const char *resultSetName,
59 Z_RecordComposition *comp,
62 void fetch_via_piggyback (Z_SearchRequest *searchRequest,
63 Z_SearchResponse *searchResponse);
64 void fetch_via_present (Z_PresentRequest *req, Z_PresentResponse *res);
65 int m_preferredMessageSize;
66 int m_maximumRecordSize;