3 * Copyright (C) 2011-2013 Team XBMC
6 * This Program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
11 * This Program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with XBMC; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
22 #include "IHTTPRequestHandler.h"
23 #include "interfaces/json-rpc/IClient.h"
25 class CHTTPJsonRpcHandler : public IHTTPRequestHandler
28 CHTTPJsonRpcHandler() { };
30 virtual IHTTPRequestHandler* GetInstance() { return new CHTTPJsonRpcHandler(); }
31 virtual bool CheckHTTPRequest(const HTTPRequest &request);
32 virtual int HandleHTTPRequest(const HTTPRequest &request);
34 virtual void* GetHTTPResponseData() const { return (void *)m_response.c_str(); };
35 virtual size_t GetHTTPResonseDataLength() const { return m_response.size(); }
37 virtual int GetPriority() const { return 2; }
40 #if (MHD_VERSION >= 0x00040001)
41 virtual bool appendPostData(const char *data, size_t size);
43 virtual bool appendPostData(const char *data, unsigned int size);
47 std::string m_request;
48 std::string m_response;
50 class CHTTPClient : public JSONRPC::IClient
53 virtual int GetPermissionFlags();
54 virtual int GetAnnouncementFlags();
55 virtual bool SetAnnouncementFlags(int flags);