Yaz_PDU_Assoc better encapsulated. Memory leak fix in
[yazpp-moved-to-github.git] / src / yaz-proxy.cpp
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.cpp,v $
7  * Revision 1.2  1999-01-28 13:08:46  adam
8  * Yaz_PDU_Assoc better encapsulated. Memory leak fix in
9  * yaz-socket-manager.cc.
10  *
11  * Revision 1.1.1.1  1999/01/28 09:41:07  adam
12  * First implementation of YAZ++.
13  *
14  */
15
16 #include <assert.h>
17
18 #include <log.h>
19
20 #include <yaz-proxy.h>
21
22 Yaz_Proxy::Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable) :
23     Yaz_IR_Assoc(the_PDU_Observable)
24 {
25     m_PDU_Observable = the_PDU_Observable;
26     m_maps = 0;
27     m_client = 0;
28 }
29
30 Yaz_Proxy::~Yaz_Proxy()
31 {
32 }
33
34 IYaz_PDU_Observer *Yaz_Proxy::clone(IYaz_PDU_Observable
35                                     *the_PDU_Observable)
36 {
37     return new Yaz_Proxy(the_PDU_Observable);
38 }
39
40 void Yaz_Proxy::recv_Z_PDU(Z_APDU *apdu)
41 {
42     if (apdu->which == Z_APDU_initRequest)
43     {
44         assert (m_client == 0);
45         logf (LOG_LOG, "got InitRequest");
46         m_client = new Yaz_ProxyClient(m_PDU_Observable->clone());
47         m_client->m_server = this;
48         m_client->client("localhost:8888");
49     }
50     assert (m_client);
51     logf (LOG_LOG, "sending PDU");
52     m_client->send_Z_PDU(apdu);
53 }
54
55 void Yaz_Proxy::failNotify()
56 {
57     logf (LOG_LOG, "failNotity server");
58     delete m_client;
59     delete this;
60 }
61
62 void Yaz_ProxyClient::failNotify()
63 {
64     logf (LOG_LOG, "failNotity client");
65     delete m_server;
66     delete this;
67 }
68
69 IYaz_PDU_Observer *Yaz_ProxyClient::clone(IYaz_PDU_Observable
70                                           *the_PDU_Observable)
71 {
72     return new Yaz_ProxyClient(the_PDU_Observable);
73 }
74
75 Yaz_ProxyClient::Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable) :
76     Yaz_IR_Assoc (the_PDU_Observable)
77 {
78     
79 }
80
81 void Yaz_ProxyClient::recv_Z_PDU(Z_APDU *apdu)
82 {
83     m_server->send_Z_PDU(apdu);
84 }