comparison Plugins/Engine/PluginsManager.cpp @ 897:bafc9d592632 plugins

REST callbacks are working
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 17 Jun 2014 17:43:39 +0200
parents c4053ac5db04
children 7000fc86fe62
comparison
equal deleted inserted replaced
896:c4053ac5db04 897:bafc9d592632
31 31
32 32
33 #include "PluginsManager.h" 33 #include "PluginsManager.h"
34 34
35 #include "../../Core/Toolbox.h" 35 #include "../../Core/Toolbox.h"
36 #include "../../Core/HttpServer/HttpOutput.h"
36 37
37 #include <glog/logging.h> 38 #include <glog/logging.h>
38 #include <cassert> 39 #include <cassert>
39 #include <memory> 40 #include <memory>
40 #include <boost/filesystem.hpp> 41 #include <boost/filesystem.hpp>
148 149
149 void PluginsManager::RegisterRestCallback(const OrthancPluginContext* context, 150 void PluginsManager::RegisterRestCallback(const OrthancPluginContext* context,
150 const char* pathRegularExpression, 151 const char* pathRegularExpression,
151 OrthancPluginRestCallback callback) 152 OrthancPluginRestCallback callback)
152 { 153 {
153 // TODO
154 LOG(INFO) << "Plugin has registered a REST callback on: " << pathRegularExpression; 154 LOG(INFO) << "Plugin has registered a REST callback on: " << pathRegularExpression;
155
156 PluginsManager* manager = reinterpret_cast<PluginsManager*>(context->pimpl); 155 PluginsManager* manager = reinterpret_cast<PluginsManager*>(context->pimpl);
157 manager->restCallbacks_.push_back(callback); 156 manager->restCallbacks_.push_back(std::make_pair(pathRegularExpression, callback));
158
159 callback(NULL, OrthancPluginHttpMethod_Get, "/hello/world", NULL, 0);
160 } 157 }
161 158
162 159
163 static void AnswerBuffer(OrthancPluginRestOutput* output, 160 static void AnswerBuffer(OrthancPluginRestOutput* output,
164 const char* answer, 161 const char* answer,
165 uint32_t answerSize, 162 uint32_t answerSize,
166 const char* mimeType) 163 const char* mimeType)
167 { 164 {
168 std::cout << "MIME " << mimeType << ": " << answer << std::endl; 165 HttpOutput* translatedOutput = reinterpret_cast<HttpOutput*>(output);
166 translatedOutput->AnswerBufferWithContentType(answer, answerSize, mimeType);
169 } 167 }
170 168
171 169
172 PluginsManager::PluginsManager() 170 PluginsManager::PluginsManager()
173 { 171 {