15 #include <boost/pointer_cast.hpp>
24 HookedCommandMgr::HookedCommandMgr()
35 if (HooksManager::commandHandlersPresent(cmd_name)) {
40 callout_handle->setStatus(CalloutHandle::NEXT_STEP_CONTINUE);
43 callout_handle->deleteAllArguments();
49 callout_handle->setArgument(
"command", command);
50 callout_handle->setArgument(
"response", hook_response);
52 HooksManager::callCommandHandlers(cmd_name, *callout_handle);
55 callout_handle->getArgument(
"response", hook_response);
57 answer = boost::const_pointer_cast<Element>(hook_response);
74 if ((cmd_name !=
"list-commands")) {
81 return (hook_response);
94 if (cmd_name ==
"list-commands") {
96 const std::vector<std::string>& hooks =
97 ServerHooks::getServerHooksPtr()->getHookNames();
100 if (!hooks.empty()) {
101 ElementPtr hooks_commands = Element::createList();
102 for (
auto h = hooks.cbegin(); h != hooks.end(); ++h) {
108 std::string command_name = ServerHooks::hookToCommandName(*h);
109 if (!command_name.empty()) {
113 if (HooksManager::commandHandlersPresent(command_name)) {
114 hooks_commands->add(Element::create(command_name));
122 if (!hooks_commands->empty()) {