17#include <boost/shared_ptr.hpp>
29HooksManager::HooksManager() {
43HooksManager::calloutsPresentInternal(
int index) {
44 conditionallyInitialize();
45 return (callout_manager_->calloutsPresent(index));
54HooksManager::commandHandlersPresentInternal(
const std::string& command_name) {
55 conditionallyInitialize();
56 return (callout_manager_->commandHandlersPresent(command_name));
61 return (
getHooksManager().commandHandlersPresentInternal(command_name));
67HooksManager::callCalloutsInternal(
int index,
CalloutHandle& handle) {
68 conditionallyInitialize();
69 callout_manager_->callCallouts(index, handle);
78HooksManager::callCommandHandlersInternal(
const std::string& command_name,
80 conditionallyInitialize();
81 callout_manager_->callCommandHandlers(command_name, handle);
97 unloadLibrariesInternal();
101 bool status = lm_collection_->loadLibraries();
105 callout_manager_ = lm_collection_->getCalloutManager();
109 lm_collection_.reset();
110 callout_manager_.reset();
125HooksManager::unloadLibrariesInternal() {
131 lm_collection_.reset();
132 callout_manager_.reset();
142boost::shared_ptr<CalloutHandle>
143HooksManager::createCalloutHandleInternal() {
144 conditionallyInitialize();
145 return (boost::shared_ptr<CalloutHandle>(
149boost::shared_ptr<CalloutHandle>
156std::vector<std::string>
157HooksManager::getLibraryNamesInternal()
const {
158 return (lm_collection_ ? lm_collection_->getLibraryNames()
159 : std::vector<std::string>());
163HooksManager::getLibraryInfoInternal()
const {
164 return (lm_collection_ ? lm_collection_->getLibraryInfo()
168std::vector<std::string>
181HooksManager::performConditionalInitialization() {
187 lm_collection_->loadLibraries();
189 callout_manager_ = lm_collection_->getCalloutManager();
202HooksManager::preCalloutsLibraryHandleInternal() {
203 conditionallyInitialize();
204 return (callout_manager_->getPreLibraryHandle());
213HooksManager::postCalloutsLibraryHandleInternal() {
214 conditionallyInitialize();
215 return (callout_manager_->getPostLibraryHandle());
225std::vector<std::string>
231boost::shared_ptr<CalloutManager>&
Per-packet callout handle.
static void unloadLibraries()
Unload libraries.
static int registerHook(const std::string &name)
Register Hook.
static LibraryHandle & postCalloutsLibraryHandle()
Return post-callouts library handle.
static bool calloutsPresent(int index)
Are callouts present?
static std::vector< std::string > getLibraryNames()
Return list of loaded libraries.
static void callCommandHandlers(const std::string &command_name, CalloutHandle &handle)
Calls the callouts/command handlers for a given command name.
static boost::shared_ptr< CalloutManager > & getSharedCalloutManager()
Return the shared callout manager.
static bool loadLibraries(const HookLibsCollection &libraries)
Load and reload libraries.
static LibraryHandle & preCalloutsLibraryHandle()
Return pre-callouts library handle.
static bool commandHandlersPresent(const std::string &command_name)
Checks if control command handlers are present for the specified command.
static boost::shared_ptr< CalloutHandle > createCalloutHandle()
Return callout handle.
static void callCallouts(int index, CalloutHandle &handle)
Calls the callouts for a given hook.
static HookLibsCollection getLibraryInfo()
Return list of loaded libraries with its parameters.
static HooksManager & getHooksManager()
Get singleton hooks manager.
static std::vector< std::string > validateLibraries(const std::vector< std::string > &libraries)
Validate library list.
Library manager collection.
static std::vector< std::string > validateLibraries(const std::vector< std::string > &libraries)
Validate libraries.
static ServerHooks & getServerHooks()
Return ServerHooks object.
ParkingLotsPtr getParkingLotsPtr() const
Returns pointer to all parking lots.
std::vector< HookLibInfo > HookLibsCollection
A storage for information about hook libraries.
Defines the logger used by the top-level component of kea-dhcp-ddns.