Removed prefix Yaz_ from several class - and interface names now
[yazpp-moved-to-github.git] / zlint / zlint.h
1 /*
2  * Copyright (c) 2004, Index Data.
3  * See the file LICENSE for details.
4  * 
5  * $Id: zlint.h,v 1.3 2005-06-08 13:28:06 adam Exp $
6  */
7
8 #include <yaz++/z-assoc.h>
9
10 using namespace yazpp_1;
11
12 enum Zlint_code {
13     TEST_FINISHED,
14     TEST_CONTINUE,
15     TEST_REOPEN,
16 };
17
18 class Zlint_test;
19 class Zlint_t;
20
21 class Zlint : public Z_Assoc {
22 public:
23     Zlint(IPDU_Observable *the_PDU_Observable);
24     ~Zlint();
25     void add_test(Zlint_test *i);
26     void set_host(const char *cp);
27     int initResponseGetVersion(Z_InitResponse *init);
28     Z_ReferenceId *mk_refid(const char *buf, int len);
29     void msg_check_for(const char *fmt, ...);
30     void msg_check_ok();
31     void msg_check_fail(const char *fmt, ...);
32     void msg_check_info(const char *fmt, ...);
33     void msg_check_notapp();
34     void getDatabase(char ***db, int *num);
35 private:
36     void connectNotify();
37     void timeoutNotify();
38     void failNotify();
39     void recv_GDU(Z_GDU *apdu, int len);
40     IPDU_Observable *m_PDU_Observable;
41     IPDU_Observer *sessionNotify(IPDU_Observable *the_PDU_Observable, int fd);
42     Zlint_t *m_tests;
43     Zlint_t *m_cur_test;
44     char *m_host;
45     char *m_database;
46     void close_goto_next();
47 };
48
49 class Zlint_test {
50 public:
51     virtual Zlint_code init(Zlint *z) = 0;
52     virtual Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu) = 0;
53     virtual Zlint_code recv_fail(Zlint *z, int reason) = 0;
54 };
55
56 class Zlint_test_simple : public Zlint_test {
57 public:
58     virtual Zlint_code init(Zlint *z) = 0;
59     virtual Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu) = 0;
60     virtual Zlint_code recv_fail(Zlint *z, int reason);
61 };
62
63 class Zlint_test_init_01 : public Zlint_test_simple {
64 public:
65     Zlint_test_init_01();
66     virtual ~Zlint_test_init_01();
67     Zlint_code init(Zlint *z);
68     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
69 };
70
71 class Zlint_test_init_02 : public Zlint_test_simple {
72 public:
73     Zlint_test_init_02();
74     virtual ~Zlint_test_init_02();
75     Zlint_code init(Zlint *z);
76     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
77 };
78
79 class Zlint_test_init_03 : public Zlint_test_simple {
80 public:
81     Zlint_test_init_03();
82     virtual ~Zlint_test_init_03();
83     Zlint_code init(Zlint *z);
84     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
85 };
86
87 class Zlint_test_init_04 : public Zlint_test_simple {
88 public:
89     Zlint_test_init_04();
90     virtual ~Zlint_test_init_04();
91     Zlint_code init(Zlint *z);
92     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
93 };
94
95 class Zlint_test_init_05 : public Zlint_test_simple {
96     int m_init_response_no;
97 public:
98     Zlint_test_init_05();
99     virtual ~Zlint_test_init_05();
100     Zlint_code init(Zlint *z);
101     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
102 };
103
104 class Zlint_test_init_06 : public Zlint_test_simple {
105 public:
106     Zlint_test_init_06();
107     virtual ~Zlint_test_init_06();
108     Zlint_code init(Zlint *z);
109     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
110 };
111
112 class Zlint_test_init_07 : public Zlint_test_simple {
113 public:
114     Zlint_test_init_07();
115     virtual ~Zlint_test_init_07();
116     Zlint_code init(Zlint *z);
117     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
118 };
119
120 class Zlint_test_init_08 : public Zlint_test {
121     int m_no;
122 public:
123     Zlint_test_init_08();
124     virtual ~Zlint_test_init_08();
125     Zlint_code init(Zlint *z);
126     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
127     Zlint_code recv_fail(Zlint *z, int reason);
128 };
129
130 class Zlint_test_search_01 : public Zlint_test {
131     int m_query_no;
132     int m_got_result_set;
133     int m_record_syntax_no;
134     int m_sort_no;
135     Zlint_code sendTest(Zlint *z);
136 public:
137     Zlint_test_search_01();
138     virtual ~Zlint_test_search_01();
139     Zlint_code init(Zlint *z);
140     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
141     Zlint_code recv_fail(Zlint *z, int reason);
142 };
143
144 class Zlint_test_scan_01 : public Zlint_test {
145     int m_scan_no;
146     Zlint_code sendTest(Zlint *z);
147 public:
148     Zlint_test_scan_01();
149     virtual ~Zlint_test_scan_01();
150     Zlint_code init(Zlint *z);
151     Zlint_code recv_gdu(Zlint *z, Z_GDU *gdu);
152     Zlint_code recv_fail(Zlint *z, int reason);
153 };