Modified for new location of YAZ header files. Experimental threaded
[yazpp-moved-to-github.git] / include / yaz-ir-assoc.h
1 /*
2  * Copyright (c) 1998-1999, Index Data.
3  * See the file LICENSE for details.
4  * Sebastian Hammer, Adam Dickmeiss
5  * 
6  * $Id: yaz-ir-assoc.h,v 1.8 1999-12-06 13:52:45 adam Exp $
7  */
8
9 #include <yaz-z-assoc.h>
10 #include <yaz-z-query.h>
11
12 /** Information Retrieval Assocation.
13     This object implements the client - and server role of a generic
14     Z39.50 Association.
15 */
16 class YAZ_EXPORT Yaz_IR_Assoc: public Yaz_Z_Assoc {
17  public:
18     /// Create object using the PDU Observer specified
19     Yaz_IR_Assoc(IYaz_PDU_Observable *the_PDU_Observable);
20     /// Destroy assocation and close PDU Observer
21     virtual ~Yaz_IR_Assoc();
22     /// Receive Z39.50 PDU
23     void recv_Z_PDU(Z_APDU *apdu);
24     /// Set Database Names
25     void set_databaseNames (int num, const char **list);
26     void set_databaseNames(const char *dblist, const char *sep);
27     /// Get Database Names
28     void get_databaseNames (int *num, char ***list);
29
30     void client(const char *addr);
31
32     /// Set Preferred Record Syntax
33     void set_preferredRecordSyntax (int value);
34     void set_preferredRecordSyntax (const char *syntax);
35     /// Get Preferred Record Syntax
36     void get_preferredRecordSyntax (int *val);
37     void get_preferredRecordSyntax (const char **syntax);
38
39     /// Set ElementSetName
40     void set_elementSetName (const char *elementSetName);
41     /// Get ElementSetName
42     void get_elementSetName (const char **elementSetName);
43     void get_elementSetName (Z_ElementSetNames **elementSetNames);
44
45     int get_lastReceived();
46     void set_lastReceived(int lastReceived);
47
48     /// Settings
49     void set_proxy(const char *str);
50     const char *get_proxy();
51     const char *get_host();
52
53     void set_cookie(const char *str);
54     const char *get_cookie();
55
56     /// Send Services
57     int send_initRequest();
58     int send_searchRequest(Yaz_Z_Query *query);
59     int send_presentRequest(int start, int number);
60     /// Recv Services
61     virtual void recv_initRequest(Z_InitRequest *initRequest);
62     virtual void recv_initResponse(Z_InitResponse *initResponse);
63     virtual void recv_searchRequest(Z_SearchRequest *searchRequest);
64     virtual void recv_presentRequest(Z_PresentRequest *presentRequest);
65     virtual void recv_searchResponse(Z_SearchResponse *searchResponse);
66     virtual void recv_presentResponse(Z_PresentResponse *presentResponse);
67  private:
68     char *m_proxy;
69     char *m_host;
70     char *m_cookie;
71     int m_num_databaseNames;
72     char **m_databaseNames;
73     int m_preferredRecordSyntax;
74     Z_ElementSetNames *m_elementSetNames;
75     int m_lastReceived;
76     int m_log;
77 };