1 // Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef PACKET_QUEUE_MGR4_H
8 #define PACKET_QUEUE_MGR4_H
9 
10 #include <dhcp/packet_queue_mgr.h>
11 
12 #include <boost/scoped_ptr.hpp>
13 
14 namespace isc {
15 namespace dhcp {
16 
17 /// @brief Packet Queue Manager for DHPCv4 servers.
18 ///
19 /// Implements the "manager" class which holds information about the
20 /// supported DHCPv4 packet queue implementations and provides management
21 /// of the current queue instance.
22 class PacketQueueMgr4 : public PacketQueueMgr<PacketQueue4Ptr> {
23 
24 public:
25     /// @brief Logical name of the pre-registered, default queue implementation
26     static const std::string DEFAULT_QUEUE_TYPE4;
27 
28     /// It registers a default factory for DHCPv4 queues.
29     PacketQueueMgr4();
30 
31     /// @brief virtual Destructor
~PacketQueueMgr4()32     virtual ~PacketQueueMgr4(){}
33 };
34 
35 /// @brief Defines a shared pointer to PacketQueueMgr4
36 typedef boost::shared_ptr<PacketQueueMgr4> PacketQueueMgr4Ptr;
37 
38 
39 } // end of namespace isc::dhcp
40 } // end of namespace isc
41 
42 #endif // PACKET_QUEUE_MGR4_H
43