00001
00033 #ifndef LL_LLFILTERSD2XMLRPC_H
00034 #define LL_LLFILTERSD2XMLRPC_H
00035
00043 #include <iosfwd>
00044 #include "lliopipe.h"
00045
00053 class LLFilterSD2XMLRPC : public LLIOPipe
00054 {
00055 public:
00056 LLFilterSD2XMLRPC();
00057 virtual ~LLFilterSD2XMLRPC();
00058
00059 protected:
00063 void streamOut(std::ostream& ostr, const LLSD& sd);
00064 };
00065
00090 class LLFilterSD2XMLRPCResponse : public LLFilterSD2XMLRPC
00091 {
00092 public:
00093
00094 LLFilterSD2XMLRPCResponse();
00095
00096
00097 virtual ~LLFilterSD2XMLRPCResponse();
00098
00099
00100
00102 protected:
00106 virtual EStatus process_impl(
00107 const LLChannelDescriptors& channels,
00108 buffer_ptr_t& buffer,
00109 bool& eos,
00110 LLSD& context,
00111 LLPumpIO* pump);
00113 };
00114
00146 class LLFilterSD2XMLRPCRequest : public LLFilterSD2XMLRPC
00147 {
00148 public:
00149
00150 LLFilterSD2XMLRPCRequest();
00151
00152
00153 LLFilterSD2XMLRPCRequest(const char* method);
00154
00155
00156 virtual ~LLFilterSD2XMLRPCRequest();
00157
00158
00159
00161 protected:
00165 virtual EStatus process_impl(
00166 const LLChannelDescriptors& channels,
00167 buffer_ptr_t& buffer,
00168 bool& eos,
00169 LLSD& context,
00170 LLPumpIO* pump);
00172
00173 protected:
00174
00175 std::string mMethod;
00176 };
00177
00193 class LLFilterXMLRPCResponse2LLSD : public LLIOPipe
00194 {
00195 public:
00196
00197 LLFilterXMLRPCResponse2LLSD();
00198
00199
00200 virtual ~LLFilterXMLRPCResponse2LLSD();
00201
00202
00203
00205 protected:
00209 virtual EStatus process_impl(
00210 const LLChannelDescriptors& channels,
00211 buffer_ptr_t& buffer,
00212 bool& eos,
00213 LLSD& context,
00214 LLPumpIO* pump);
00216
00217 protected:
00218 };
00219
00236 class LLFilterXMLRPCRequest2LLSD : public LLIOPipe
00237 {
00238 public:
00239
00240 LLFilterXMLRPCRequest2LLSD();
00241
00242
00243 virtual ~LLFilterXMLRPCRequest2LLSD();
00244
00245
00246
00248 protected:
00252 virtual EStatus process_impl(
00253 const LLChannelDescriptors& channels,
00254 buffer_ptr_t& buffer,
00255 bool& eos,
00256 LLSD& context,
00257 LLPumpIO* pump);
00259
00260 protected:
00261 };
00262
00267 std::string xml_escape_string(const std::string& in);
00268
00272 extern const char LLSDRPC_REQUEST_HEADER_1[];
00273 extern const char LLSDRPC_REQUEST_HEADER_2[];
00274 extern const char LLSDRPC_REQUEST_FOOTER[];
00275
00276 #endif // LL_LLFILTERSD2XMLRPC_H