]> git.ipfire.org Git - thirdparty/squid.git/blob - src/snmp/Request.h
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / snmp / Request.h
1 /*
2 * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 /* DEBUG: section 49 SNMP Interface */
10
11 #ifndef SQUID_SNMPX_REQUEST_H
12 #define SQUID_SNMPX_REQUEST_H
13
14 #include "ip/Address.h"
15 #include "ipc/forward.h"
16 #include "ipc/Request.h"
17 #include "snmp/Pdu.h"
18 #include "snmp/Session.h"
19
20 namespace Snmp
21 {
22
23 /// SNMP request
24 class Request: public Ipc::Request
25 {
26 public:
27 Request(int aRequestorId, unsigned int aRequestId, const Pdu& aPdu,
28 const Session& aSession, int aFd, const Ip::Address& anAddress);
29
30 explicit Request(const Ipc::TypedMsgHdr& msg); ///< from recvmsg()
31 /* Ipc::Request API */
32 virtual void pack(Ipc::TypedMsgHdr& msg) const;
33 virtual Pointer clone() const;
34
35 private:
36 Request(const Request& request);
37
38 public:
39 Pdu pdu; ///< SNMP protocol data unit
40 Session session; ///< SNMP session
41 int fd; ///< client connection descriptor
42 Ip::Address address; ///< client address
43 };
44
45 } // namespace Snmp
46
47 #endif /* SQUID_SNMPX_REQUEST_H */
48