minor
[yazpp-moved-to-github.git] / include / yaz-z-server.h
1 /*
2  * Copyright (c) 2000, Index Data.
3  * See the file LICENSE for details.
4  * 
5  * $Id: yaz-z-server.h,v 1.3 2000-09-21 21:43:20 adam Exp $
6  */
7
8 #include <yaz-z-assoc.h>
9
10 class YAZ_EXPORT Yaz_Z_Server : public Yaz_Z_Assoc {
11 public:
12     Yaz_Z_Server(IYaz_PDU_Observable *the_PDU_Observable);
13     virtual void recv_Z_PDU(Z_APDU *apdu);
14     virtual void recv_Z_init (Z_InitRequest *initRequest,
15                               Z_InitResponse *initResponse) = 0;
16     virtual void recv_Z_search (Z_SearchRequest *searchRequest,
17                                 Z_SearchResponse *searchResponse) = 0;
18     virtual void recv_Z_present (Z_PresentRequest *presentRequest,
19                                  Z_PresentResponse *presentResponse) = 0;
20     virtual void recv_Z_record (const char *resultSetName,
21                                 int position,
22                                 int *format,
23                                 Z_RecordComposition *comp,
24                                 Z_NamePlusRecord *namePlusRecord,
25                                 Z_Records *diagnostics) = 0;
26     Z_Records *Yaz_Z_Server::create_nonSurrogateDiagnostics (
27         int error, const char *addinfo);
28     void create_databaseRecord (Z_NamePlusRecord *rec,
29                                 const char *dbname, int format,
30                                 const void *buf, int len);
31     void create_surrogateDiagnostics(Z_NamePlusRecord *rec,
32                                      const char *dbname, int error,
33                                      char *const addinfo);
34
35  private:
36     Z_Records *pack_records (const char *resultSetName,
37                              int start, int num,
38                              Z_RecordComposition *comp,
39                              int *next, int *pres,
40                              int *oid);
41     void fetch_via_piggyback (Z_SearchRequest *searchRequest,
42                               Z_SearchResponse *searchResponse);
43     void fetch_via_present (Z_PresentRequest *req, Z_PresentResponse *res);
44     int m_preferredMessageSize;
45     int m_maximumRecordSize;
46 };