Yaz_PDU_Assoc better encapsulated. Memory leak fix in
[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.1  1999-01-28 09:41:07  adam
8  * Initial revision
9  *
10  *
11  */
12
13 #include <yaz-ir-assoc.h>
14
15 class Yaz_Proxy;
16
17 /// Private class
18 class Yaz_ProxyClient : public Yaz_IR_Assoc {
19     friend Yaz_Proxy;
20     Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable);
21     void recv_Z_PDU(Z_APDU *apdu);
22     IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable);
23     Yaz_Proxy *m_server;
24     void failNotify();
25 };
26
27 /// Private class
28 class Yaz_ProxyMap {
29     friend Yaz_Proxy;
30     char *m_databaseName;      /* from database name */
31     char *m_ZURL;              /* to this address */
32     Yaz_ProxyMap *m_next;
33 };
34
35 /// Information Retrieval Proxy Server.
36 class Yaz_Proxy : public Yaz_IR_Assoc {
37  public:
38     Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable);
39     ~Yaz_Proxy();
40     void recv_Z_PDU(Z_APDU *apdu);
41     IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable);
42     void failNotify();
43     Yaz_ProxyClient *m_client;
44     IYaz_PDU_Observable *m_PDU_Observable;
45  private:
46     Yaz_ProxyMap *m_maps;
47 };