Mercurial > hg > orthanc
comparison Core/HttpServer/MongooseServer.h @ 1645:1558b3226b18
IHttpExceptionFormatter
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 24 Sep 2015 15:55:17 +0200 |
parents | d73124f6b439 |
children | b1291df2f780 |
comparison
equal
deleted
inserted
replaced
1644:939b921b2c81 | 1645:1558b3226b18 |
---|---|
32 | 32 |
33 #pragma once | 33 #pragma once |
34 | 34 |
35 #include "IHttpHandler.h" | 35 #include "IHttpHandler.h" |
36 | 36 |
37 #include "../OrthancException.h" | |
38 | |
37 #include <list> | 39 #include <list> |
38 #include <map> | 40 #include <map> |
39 #include <set> | 41 #include <set> |
40 #include <stdint.h> | 42 #include <stdint.h> |
41 #include <boost/shared_ptr.hpp> | 43 #include <boost/shared_ptr.hpp> |
55 const char* uri, | 57 const char* uri, |
56 const char* ip, | 58 const char* ip, |
57 const char* username) const = 0; | 59 const char* username) const = 0; |
58 }; | 60 }; |
59 | 61 |
62 | |
63 class IHttpExceptionFormatter | |
64 { | |
65 public: | |
66 virtual ~IHttpExceptionFormatter() | |
67 { | |
68 } | |
69 | |
70 virtual void Format(HttpOutput& output, | |
71 const OrthancException& exception, | |
72 HttpMethod method, | |
73 const char* uri) = 0; | |
74 }; | |
75 | |
76 | |
60 class MongooseServer | 77 class MongooseServer |
61 { | 78 { |
62 private: | 79 private: |
63 // http://stackoverflow.com/questions/311166/stdauto-ptr-or-boostshared-ptr-for-pimpl-idiom | 80 // http://stackoverflow.com/questions/311166/stdauto-ptr-or-boostshared-ptr-for-pimpl-idiom |
64 struct PImpl; | 81 struct PImpl; |
75 std::string certificate_; | 92 std::string certificate_; |
76 uint16_t port_; | 93 uint16_t port_; |
77 IIncomingHttpRequestFilter* filter_; | 94 IIncomingHttpRequestFilter* filter_; |
78 bool keepAlive_; | 95 bool keepAlive_; |
79 bool httpCompression_; | 96 bool httpCompression_; |
80 bool describeErrors_; | 97 IHttpExceptionFormatter* exceptionFormatter_; |
81 | 98 |
82 bool IsRunning() const; | 99 bool IsRunning() const; |
83 | 100 |
84 public: | 101 public: |
85 MongooseServer(); | 102 MongooseServer(); |
142 return httpCompression_;; | 159 return httpCompression_;; |
143 } | 160 } |
144 | 161 |
145 void SetHttpCompressionEnabled(bool enabled); | 162 void SetHttpCompressionEnabled(bool enabled); |
146 | 163 |
147 bool IsDescribeErrorsEnabled() const | |
148 { | |
149 return describeErrors_; | |
150 } | |
151 | |
152 void SetDescribeErrorsEnabled(bool enabled); | |
153 | |
154 const IIncomingHttpRequestFilter* GetIncomingHttpRequestFilter() const | 164 const IIncomingHttpRequestFilter* GetIncomingHttpRequestFilter() const |
155 { | 165 { |
156 return filter_; | 166 return filter_; |
157 } | 167 } |
158 | 168 |
168 { | 178 { |
169 return handler_ != NULL; | 179 return handler_ != NULL; |
170 } | 180 } |
171 | 181 |
172 IHttpHandler& GetHandler() const; | 182 IHttpHandler& GetHandler() const; |
183 | |
184 void SetHttpExceptionFormatter(IHttpExceptionFormatter& formatter); | |
185 | |
186 IHttpExceptionFormatter* GetExceptionFormatter() | |
187 { | |
188 return exceptionFormatter_; | |
189 } | |
173 }; | 190 }; |
174 } | 191 } |