]> git.ipfire.org Git - thirdparty/squid.git/blame - src/ipc/Response.h
Boilerplate: update copyright blurbs on Squid helpers
[thirdparty/squid.git] / src / ipc / Response.h
CommitLineData
51ea0904 1/*
51ea0904
CT
2 * DEBUG: section 54 Interprocess Communication
3 *
4 */
5
6#ifndef SQUID_IPC_RESPONSE_H
7#define SQUID_IPC_RESPONSE_H
8
8bf217bd 9#include "base/RefCount.h"
51ea0904 10#include "ipc/forward.h"
51ea0904 11
51ea0904
CT
12namespace Ipc
13{
14
15/// A response to Ipc::Request.
16class Response: public RefCountable
17{
18public:
19 typedef RefCount<Response> Pointer;
20
21public:
22 explicit Response(unsigned int aRequestId):
8fb5a96c 23 requestId(aRequestId) {}
51ea0904
CT
24
25 virtual void pack(TypedMsgHdr& msg) const = 0; ///< prepare for sendmsg()
26 virtual Pointer clone() const = 0; ///< returns a copy of this
27
28private:
29 Response(const Response&); // not implemented
30 Response& operator= (const Response&); // not implemented
31
32public:
33 unsigned int requestId; ///< ID of request we are responding to
34};
35
f738d783
CT
36inline
37std::ostream& operator << (std::ostream &os, const Response& response)
38{
39 os << "[response.requestId %u]" << response.requestId << '}';
40 return os;
41}
42
51ea0904
CT
43} // namespace Ipc
44
45#endif /* SQUID_IPC_RESPONSE_H */