17 #include <boost/shared_ptr.hpp> 29 HooksManager::HooksManager() {
35 HooksManager::getHooksManager() {
43 HooksManager::calloutsPresentInternal(
int index) {
44 conditionallyInitialize();
45 return (callout_manager_->calloutsPresent(index));
49 HooksManager::calloutsPresent(
int index) {
50 return (getHooksManager().calloutsPresentInternal(index));
54 HooksManager::commandHandlersPresentInternal(
const std::string& command_name) {
55 conditionallyInitialize();
56 return (callout_manager_->commandHandlersPresent(command_name));
60 HooksManager::commandHandlersPresent(
const std::string& command_name) {
61 return (getHooksManager().commandHandlersPresentInternal(command_name));
67 HooksManager::callCalloutsInternal(
int index,
CalloutHandle& handle) {
68 conditionallyInitialize();
69 callout_manager_->callCallouts(index, handle);
74 getHooksManager().callCalloutsInternal(index, handle);
78 HooksManager::callCommandHandlersInternal(
const std::string& command_name,
80 conditionallyInitialize();
81 callout_manager_->callCommandHandlers(command_name, handle);
85 HooksManager::callCommandHandlers(
const std::string& command_name,
87 getHooksManager().callCommandHandlersInternal(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();
118 return (getHooksManager().loadLibrariesInternal(libraries));
125 HooksManager::unloadLibrariesInternal() {
131 lm_collection_.reset();
132 callout_manager_.reset();
133 ServerHooks::getServerHooks().getParkingLotsPtr()->clear();
136 void HooksManager::unloadLibraries() {
137 getHooksManager().unloadLibrariesInternal();
142 boost::shared_ptr<CalloutHandle>
143 HooksManager::createCalloutHandleInternal() {
144 conditionallyInitialize();
145 return (boost::shared_ptr<CalloutHandle>(
149 boost::shared_ptr<CalloutHandle>
150 HooksManager::createCalloutHandle() {
151 return (getHooksManager().createCalloutHandleInternal());
156 std::vector<std::string>
157 HooksManager::getLibraryNamesInternal()
const {
158 return (lm_collection_ ? lm_collection_->getLibraryNames()
159 : std::vector<std::string>());
163 HooksManager::getLibraryInfoInternal()
const {
164 return (lm_collection_ ? lm_collection_->getLibraryInfo()
168 std::vector<std::string>
169 HooksManager::getLibraryNames() {
170 return (getHooksManager().getLibraryNamesInternal());
174 HooksManager::getLibraryInfo() {
175 return (getHooksManager().getLibraryInfoInternal());
181 HooksManager::performConditionalInitialization() {
187 lm_collection_->loadLibraries();
189 callout_manager_ = lm_collection_->getCalloutManager();
195 HooksManager::registerHook(
const std::string& name) {
196 return (ServerHooks::getServerHooks().registerHook(name));
202 HooksManager::preCalloutsLibraryHandleInternal() {
203 conditionallyInitialize();
204 return (callout_manager_->getPreLibraryHandle());
208 HooksManager::preCalloutsLibraryHandle() {
209 return (getHooksManager().preCalloutsLibraryHandleInternal());
213 HooksManager::postCalloutsLibraryHandleInternal() {
214 conditionallyInitialize();
215 return (callout_manager_->getPostLibraryHandle());
219 HooksManager::postCalloutsLibraryHandle() {
220 return (getHooksManager().postCalloutsLibraryHandleInternal());
225 std::vector<std::string>
226 HooksManager::validateLibraries(
const std::vector<std::string>& libraries) {
227 return (LibraryManagerCollection::validateLibraries(libraries));
231 boost::shared_ptr<CalloutManager>&
232 HooksManager::getSharedCalloutManager() {
233 return (getHooksManager().shared_callout_manager_);
Library manager collection.
std::vector< HookLibInfo > HookLibsCollection
A storage for information about hook libraries.
Per-packet callout handle.
Defines the logger used by the top-level component of kea-dhcp-ddns.