comparison Core/RestApi/RestApi.h @ 331:5a96dac27959

base class for rest calls made public
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 09 Jan 2013 11:48:51 +0100
parents 78a8eaa5f30b
children c51c9ed603e6
comparison
equal deleted inserted replaced
330:78a8eaa5f30b 331:5a96dac27959
40 40
41 namespace Orthanc 41 namespace Orthanc
42 { 42 {
43 class RestApi : public HttpHandler 43 class RestApi : public HttpHandler
44 { 44 {
45 private: 45 public:
46 class SharedCall 46 class Call
47 { 47 {
48 friend class RestApi; 48 friend class RestApi;
49 49
50 private: 50 private:
51 RestApiOutput* output_; 51 RestApiOutput* output_;
99 99
100 virtual bool ParseJsonRequest(Json::Value& result) const = 0; 100 virtual bool ParseJsonRequest(Json::Value& result) const = 0;
101 }; 101 };
102 102
103 103
104 public: 104 class GetCall : public Call
105 class GetCall : public SharedCall
106 { 105 {
107 friend class RestApi; 106 friend class RestApi;
108 107
109 private: 108 private:
110 const HttpHandler::Arguments* getArguments_; 109 const HttpHandler::Arguments* getArguments_;
122 } 121 }
123 122
124 virtual bool ParseJsonRequest(Json::Value& result) const; 123 virtual bool ParseJsonRequest(Json::Value& result) const;
125 }; 124 };
126 125
127 class PutCall : public SharedCall 126 class PutCall : public Call
128 { 127 {
129 friend class RestApi; 128 friend class RestApi;
130 129
131 private: 130 private:
132 const std::string* data_; 131 const std::string* data_;
141 { 140 {
142 return ParseJsonRequestInternal(result, GetPutBody().c_str()); 141 return ParseJsonRequestInternal(result, GetPutBody().c_str());
143 } 142 }
144 }; 143 };
145 144
146 class PostCall : public SharedCall 145 class PostCall : public Call
147 { 146 {
148 friend class RestApi; 147 friend class RestApi;
149 148
150 private: 149 private:
151 const std::string* data_; 150 const std::string* data_;
160 { 159 {
161 return ParseJsonRequestInternal(result, GetPostBody().c_str()); 160 return ParseJsonRequestInternal(result, GetPostBody().c_str());
162 } 161 }
163 }; 162 };
164 163
165 class DeleteCall : public SharedCall 164 class DeleteCall : public Call
166 { 165 {
167 public: 166 public:
168 virtual bool ParseJsonRequest(Json::Value& result) const 167 virtual bool ParseJsonRequest(Json::Value& result) const
169 { 168 {
170 result.clear(); 169 result.clear();