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 }