]> git.ipfire.org Git - thirdparty/squid.git/blame - src/CommCalls.cc
Merging async-call branch changes to HEAD:
[thirdparty/squid.git] / src / CommCalls.cc
CommitLineData
b0469965 1#include "squid.h"
2#include "CommCalls.h"
3
4/* CommCommonCbParams */
5
6CommCommonCbParams::CommCommonCbParams(void *aData):
7 data(cbdataReference(aData)), fd(-1), xerrno(0), flag(COMM_OK)
8{
9}
10
11CommCommonCbParams::CommCommonCbParams(const CommCommonCbParams &p):
12 data(cbdataReference(p.data)), fd(p.fd), xerrno(p.xerrno), flag(p.flag)
13{
14}
15
16CommCommonCbParams::~CommCommonCbParams()
17{
18 cbdataReferenceDone(data);
19}
20
21void
22CommCommonCbParams::print(std::ostream &os) const
23{
24 os << "FD " << fd;
25 if (xerrno)
26 os << ", errno=" << xerrno;
27 if (flag != COMM_OK)
28 os << ", flag=" << flag;
29 if (data)
30 os << ", data=" << data;
31}
32
33
34/* CommAcceptCbParams */
35
36CommAcceptCbParams::CommAcceptCbParams(void *aData): CommCommonCbParams(aData),
37 nfd(-1)
38{
39}
40
41void
42CommAcceptCbParams::print(std::ostream &os) const
43{
44 CommCommonCbParams::print(os);
45 if (nfd >= 0)
46 os << ", newFD " << nfd;
47}
48
49
50/* CommConnectCbParams */
51
52CommConnectCbParams::CommConnectCbParams(void *aData):
53 CommCommonCbParams(aData)
54{
55}
56
57
58/* CommIoCbParams */
59
60CommIoCbParams::CommIoCbParams(void *aData): CommCommonCbParams(aData),
61 buf(NULL), size(0)
62{
63}
64
65void
66CommIoCbParams::print(std::ostream &os) const
67{
68 CommCommonCbParams::print(os);
69 if (buf) {
70 os << ", size=" << size;
71 os << ", buf=" << (void*)buf;
72 }
73}
74
75
76/* CommCloseCbParams */
77
78CommCloseCbParams::CommCloseCbParams(void *aData):
79 CommCommonCbParams(aData)
80{
81}
82
83/* CommTimeoutCbParams */
84
85CommTimeoutCbParams::CommTimeoutCbParams(void *aData):
86 CommCommonCbParams(aData)
87{
88}
89
90
91/* CommAcceptCbPtrFun */
92
93CommAcceptCbPtrFun::CommAcceptCbPtrFun(IOACB *aHandler,
94 const CommAcceptCbParams &aParams):
95 CommDialerParamsT<CommAcceptCbParams>(aParams),
96 handler(aHandler)
97{
98}
99
100void
101CommAcceptCbPtrFun::dial()
102{
103 handler(params.fd, params.nfd, &params.details, params.flag, params.xerrno, params.data);
104}
105
106void
107CommAcceptCbPtrFun::print(std::ostream &os) const
108{
109 os << '(';
110 params.print(os);
111 os << ')';
112}
113
114
115/* CommConnectCbPtrFun */
116
117CommConnectCbPtrFun::CommConnectCbPtrFun(CNCB *aHandler,
118 const CommConnectCbParams &aParams):
119 CommDialerParamsT<CommConnectCbParams>(aParams),
120 handler(aHandler)
121{
122}
123
124void
125CommConnectCbPtrFun::dial()
126{
127 handler(params.fd, params.flag, params.xerrno, params.data);
128}
129
130void
131CommConnectCbPtrFun::print(std::ostream &os) const
132{
133 os << '(';
134 params.print(os);
135 os << ')';
136}
137
138
139/* CommIoCbPtrFun */
140
141CommIoCbPtrFun::CommIoCbPtrFun(IOCB *aHandler, const CommIoCbParams &aParams):
142 CommDialerParamsT<CommIoCbParams>(aParams),
143 handler(aHandler)
144{
145}
146
147void
148CommIoCbPtrFun::dial()
149{
150 handler(params.fd, params.buf, params.size, params.flag, params.xerrno, params.data);
151}
152
153void
154CommIoCbPtrFun::print(std::ostream &os) const
155{
156 os << '(';
157 params.print(os);
158 os << ')';
159}
160
161
162/* CommCloseCbPtrFun */
163
164CommCloseCbPtrFun::CommCloseCbPtrFun(PF *aHandler,
165 const CommCloseCbParams &aParams):
166 CommDialerParamsT<CommCloseCbParams>(aParams),
167 handler(aHandler)
168{
169}
170
171void
172CommCloseCbPtrFun::dial()
173{
174 handler(params.fd, params.data);
175}
176
177void
178CommCloseCbPtrFun::print(std::ostream &os) const
179{
180 os << '(';
181 params.print(os);
182 os << ')';
183}
184
185/* CommTimeoutCbPtrFun */
186
187CommTimeoutCbPtrFun::CommTimeoutCbPtrFun(PF *aHandler,
188 const CommTimeoutCbParams &aParams):
189 CommDialerParamsT<CommTimeoutCbParams>(aParams),
190 handler(aHandler)
191{
192}
193
194void
195CommTimeoutCbPtrFun::dial()
196{
197 handler(params.fd, params.data);
198}
199
200void
201CommTimeoutCbPtrFun::print(std::ostream &os) const
202{
203 os << '(';
204 params.print(os);
205 os << ')';
206}