Kea 2.7.5
|
Base class for classes which need to be associated with a CalloutHandle
object.
More...
#include <callout_handle_associate.h>
Public Member Functions | |
CalloutHandleAssociate () | |
Constructor. | |
CalloutHandlePtr | getCalloutHandle () |
Returns callout handle. | |
void | resetCalloutHandle () |
Reset callout handle. | |
Protected Attributes | |
CalloutHandlePtr | callout_handle_ |
Callout handle stored. | |
Base class for classes which need to be associated with a CalloutHandle
object.
The CalloutHandle
is an object used to pass various parameters between Kea and the callouts. The Kea servers usually invoke multiple different callouts for a single packet such as DHCP packet, control command etc. Therefore, it is required to associate this packet with an instance of the callout handle, so this instance can be used for all callouts invoked for this packet.
Previously this association was made by the CalloutHandleStore
class. However, with the introduction of parallel processing of packets (DHCP packets parking) it became awkward to use. Attempts to extend this class to hold a map of associations failed because of no easy way to garbage collect unused handles.
The easiest way to deal with this is to provide ownership of the CalloutHandle
to the object with which it is associated. The class of this object needs to derive from this class. When the object (e.g. DHCP packet) goes out of scope and is destroyed this instance is destroyed as well.
Definition at line 37 of file callout_handle_associate.h.
isc::hooks::CalloutHandleAssociate::CalloutHandleAssociate | ( | ) |
Constructor.
Definition at line 15 of file callout_handle_associate.cc.
CalloutHandlePtr isc::hooks::CalloutHandleAssociate::getCalloutHandle | ( | ) |
Returns callout handle.
The callout handle is created if it doesn't exist. Subsequent calls to this method always return the same handle.
Definition at line 20 of file callout_handle_associate.cc.
References callout_handle_, and isc::hooks::HooksManager::createCalloutHandle().
void isc::hooks::CalloutHandleAssociate::resetCalloutHandle | ( | ) |
Reset callout handle.
Definition at line 29 of file callout_handle_associate.cc.
References callout_handle_.
|
protected |
Callout handle stored.
Definition at line 57 of file callout_handle_associate.h.
Referenced by getCalloutHandle(), and resetCalloutHandle().