First WIN32 port of YAZ++.
[yazpp-moved-to-github.git] / include / yaz-proxy.h
1 /*
2  * Copyright (c) 1998-1999, Index Data.
3  * See the file LICENSE for details.
4  * Sebastian Hammer, Adam Dickmeiss
5  * 
6  * $Log: yaz-proxy.h,v $
7  * Revision 1.2  1999-02-02 14:01:15  adam
8  * First WIN32 port of YAZ++.
9  *
10  * Revision 1.1.1.1  1999/01/28 09:41:07  adam
11  * First implementation of YAZ++.
12  *
13  *
14  */
15
16 #include <yaz-ir-assoc.h>
17
18 class Yaz_Proxy;
19
20 /// Private class
21 class YAZ_EXPORT Yaz_ProxyClient : public Yaz_IR_Assoc {
22     friend Yaz_Proxy;
23     Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable);
24     void recv_Z_PDU(Z_APDU *apdu);
25     IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable);
26     Yaz_Proxy *m_server;
27     void failNotify();
28 };
29
30 /// Private class
31 class YAZ_EXPORT Yaz_ProxyMap {
32     friend Yaz_Proxy;
33     char *m_databaseName;      /* from database name */
34     char *m_ZURL;              /* to this address */
35     Yaz_ProxyMap *m_next;
36 };
37
38 /// Information Retrieval Proxy Server.
39 class YAZ_EXPORT Yaz_Proxy : public Yaz_IR_Assoc {
40  public:
41     Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable);
42     ~Yaz_Proxy();
43     void recv_Z_PDU(Z_APDU *apdu);
44     IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable);
45     void failNotify();
46     Yaz_ProxyClient *m_client;
47     IYaz_PDU_Observable *m_PDU_Observable;
48  private:
49     Yaz_ProxyMap *m_maps;
50 };