Mercurial > hg > orthanc
comparison Plugins/Engine/OrthancPlugins.cpp @ 1437:02f5a3f5c0a0
access to the REST API from Lua
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 30 Jun 2015 18:41:33 +0200 |
parents | 0a3e3be59094 |
children | f3672356c121 |
comparison
equal
deleted
inserted
replaced
1436:0a3e3be59094 | 1437:02f5a3f5c0a0 |
---|---|
31 | 31 |
32 | 32 |
33 #include "OrthancPlugins.h" | 33 #include "OrthancPlugins.h" |
34 | 34 |
35 #include "../../Core/ChunkedBuffer.h" | 35 #include "../../Core/ChunkedBuffer.h" |
36 #include "../../Core/HttpServer/HttpOutput.h" | 36 #include "../../Core/HttpServer/StringHttpOutput.h" |
37 #include "../../Core/ImageFormats/PngWriter.h" | 37 #include "../../Core/ImageFormats/PngWriter.h" |
38 #include "../../Core/OrthancException.h" | 38 #include "../../Core/OrthancException.h" |
39 #include "../../Core/Toolbox.h" | 39 #include "../../Core/Toolbox.h" |
40 #include "../../OrthancServer/OrthancInitialization.h" | 40 #include "../../OrthancServer/OrthancInitialization.h" |
41 #include "../../OrthancServer/OrthancRestApi/OrthancRestApi.h" | 41 #include "../../OrthancServer/OrthancRestApi/OrthancRestApi.h" |
104 return OrthancPluginChangeType_StableStudy; | 104 return OrthancPluginChangeType_StableStudy; |
105 | 105 |
106 default: | 106 default: |
107 throw OrthancException(ErrorCode_ParameterOutOfRange); | 107 throw OrthancException(ErrorCode_ParameterOutOfRange); |
108 } | 108 } |
109 } | |
110 | |
111 | |
112 namespace | |
113 { | |
114 // Anonymous namespace to avoid clashes between compilation modules | |
115 class StringHttpOutput : public IHttpOutputStream | |
116 { | |
117 private: | |
118 ChunkedBuffer buffer_; | |
119 | |
120 public: | |
121 void GetOutput(std::string& output) | |
122 { | |
123 buffer_.Flatten(output); | |
124 } | |
125 | |
126 virtual void OnHttpStatusReceived(HttpStatus status) | |
127 { | |
128 if (status != HttpStatus_200_Ok) | |
129 { | |
130 throw OrthancException(ErrorCode_BadRequest); | |
131 } | |
132 } | |
133 | |
134 virtual void Send(bool isHeader, const void* buffer, size_t length) | |
135 { | |
136 if (!isHeader) | |
137 { | |
138 buffer_.AddChunk(reinterpret_cast<const char*>(buffer), length); | |
139 } | |
140 } | |
141 }; | |
142 } | 109 } |
143 | 110 |
144 | 111 |
145 | 112 |
146 struct OrthancPlugins::PImpl | 113 struct OrthancPlugins::PImpl |
647 bool afterPlugins) | 614 bool afterPlugins) |
648 { | 615 { |
649 const _OrthancPluginRestApiGet& p = | 616 const _OrthancPluginRestApiGet& p = |
650 *reinterpret_cast<const _OrthancPluginRestApiGet*>(parameters); | 617 *reinterpret_cast<const _OrthancPluginRestApiGet*>(parameters); |
651 | 618 |
619 // TODO : Use "HttpHandler::SimpleGet()" | |
620 | |
652 HttpHandler::Arguments headers; // No HTTP header | 621 HttpHandler::Arguments headers; // No HTTP header |
653 std::string body; // No body for a GET request | 622 std::string body; // No body for a GET request |
654 | 623 |
655 UriComponents uri; | 624 UriComponents uri; |
656 HttpHandler::GetArguments getArguments; | 625 HttpHandler::GetArguments getArguments; |