diff options
Diffstat (limited to 'protocols/Slack/src/http_request.h')
| -rw-r--r-- | protocols/Slack/src/http_request.h | 348 | 
1 files changed, 0 insertions, 348 deletions
diff --git a/protocols/Slack/src/http_request.h b/protocols/Slack/src/http_request.h deleted file mode 100644 index dcd2e59476..0000000000 --- a/protocols/Slack/src/http_request.h +++ /dev/null @@ -1,348 +0,0 @@ -#ifndef _HTTP_REQUEST_H_ -#define _HTTP_REQUEST_H_ - -typedef void (CSlackProto::*HttpCallback)(NETLIBHTTPREQUEST*, struct AsyncHttpRequest*); - -class HttpRequest; -class HttpResponse; - -struct VALUE -{ -	LPCSTR szName; -	__forceinline VALUE(LPCSTR _name) : szName(_name) { } -}; - -struct INT_VALUE : public VALUE -{ -	int iValue; -	__forceinline INT_VALUE(LPCSTR _name, int _value) -		: VALUE(_name), iValue(_value) { } -}; - -struct LONG_VALUE : public VALUE -{ -	LONGLONG llValue; -	__forceinline LONG_VALUE(LPCSTR _name, LONGLONG _value) -		: VALUE(_name), llValue(_value) { } -}; - -struct CHAR_VALUE : public VALUE -{ -	LPCSTR szValue; -	__forceinline CHAR_VALUE(LPCSTR _name, LPCSTR _value) -		: VALUE(_name), szValue(_value) { } -}; - -struct ENCODED_VALUE : public VALUE -{ -	LPSTR szValue; -	__forceinline ENCODED_VALUE(LPCSTR _name, LPCSTR _value) -		: VALUE(_name) { szValue = mir_urlEncode(_value); } -	__forceinline ~ENCODED_VALUE() { mir_free(szValue); } -}; - -class HttpUri -{ -	friend class HttpRequest; - -private: -	CMStringA m_uri; -	NETLIBHTTPREQUEST *m_request; - -	HttpUri(NETLIBHTTPREQUEST *request, const char *uri) -		: m_request(request), m_uri(uri) -	{ -		if (m_request) -			m_request->szUrl = m_uri.GetBuffer(); -	} - -	HttpUri(NETLIBHTTPREQUEST *request, const char *urlFormat, va_list args) -		: m_request(request) -	{ -		m_uri.AppendFormatV(urlFormat, args); -		if (m_request) -			m_request->szUrl = m_uri.GetBuffer(); -	} - -	void Add(const char *fmt, ...) -	{ -		va_list args; -		va_start(args, fmt); -		m_uri += (m_uri.Find('?') == -1) ? '?' : '&'; -		m_uri.AppendFormatV(fmt, args); -		va_end(args); -		 -		if (m_request) -			m_request->szUrl = m_uri.GetBuffer(); -	} - -	~HttpUri() -	{ -		if (m_request) -			m_request->szUrl = NULL; -	} - -public: -	HttpUri& operator=(const HttpUri&); // to prevent copying; - -	operator const char*() -	{ -		return m_request -			? m_request->szUrl -			: NULL; -	} - -	HttpUri &operator<<(const VALUE ¶m) -	{ -		Add(param.szName); -		return *this; -	} - -	HttpUri &operator<<(const INT_VALUE ¶m) -	{ -		Add("%s=%i", param.szName, param.iValue); -		return *this; -	} - -	HttpUri &operator<<(const LONG_VALUE ¶m) -	{ -		Add("%s=%lld", param.szName, param.llValue); -		return *this; -	} - -	HttpUri &operator<<(const CHAR_VALUE ¶m) -	{ -		Add("%s=%s", param.szName, param.szValue); -		return *this; -	} - -	HttpUri &operator<<(const ENCODED_VALUE ¶m) -	{ -		Add("%s=%s", param.szName, param.szValue); -		return *this; -	} -}; - -class HttpHeaders -{ -	friend class HttpRequest; -	friend class HttpResponse; - -private: -	NETLIBHTTPREQUEST *m_request; - -	HttpHeaders(NETLIBHTTPREQUEST *request) -		: m_request(request) -	{ -	} - -	void Add(LPCSTR szName) -	{ -		Add(szName, ""); -	} - -	void Add(LPCSTR szName, LPCSTR szValue) -	{ -		if (!m_request) -			return; - -		m_request->headers = (NETLIBHTTPHEADER*)mir_realloc(m_request->headers, -			sizeof(NETLIBHTTPHEADER)*(m_request->headersCount + 1)); -		m_request->headers[m_request->headersCount].szName = mir_strdup(szName); -		m_request->headers[m_request->headersCount].szValue = mir_strdup(szValue); -		m_request->headersCount++; -	} - -public: -	HttpHeaders& operator=(const HttpHeaders&); // to prevent copying; - -	const NETLIBHTTPHEADER* operator[](size_t idx) -	{ -		return m_request -			? &m_request->headers[idx] -			: NULL; -	} - -	HttpHeaders& operator<<(const VALUE ¶m) -	{ -		Add(param.szName); -		return *this; -	} - -	HttpHeaders& operator<<(const CHAR_VALUE ¶m) -	{ -		Add(param.szName, param.szValue); -		return *this; -	} - -	HttpHeaders& operator<<(const ENCODED_VALUE ¶m) -	{ -		Add(param.szName, param.szValue); -		return *this; -	} -}; - -class HttpContent -{ -	friend class HttpRequest; -	friend class HttpResponse; - -protected: -	CMStringA m_content; -	NETLIBHTTPREQUEST *m_request; - -	HttpContent(NETLIBHTTPREQUEST *request) -		: m_request(request) -	{ -	} - -	~HttpContent() -	{ -		if (m_request) -		{ -			m_request->pData = NULL; -			m_request->dataLength = 0; -		} -	} - -	void Add(const char *fmt, ...) -	{ -		va_list args; -		va_start(args, fmt); -		if (!m_content.IsEmpty()) -			m_content += '&'; -		m_content.AppendFormatV(fmt, args); -		va_end(args); - -		if (m_request) -		{ -			m_request->pData = m_content.GetBuffer(); -			m_request->dataLength = m_content.GetLength(); -		} -	} - -public: -	HttpContent& operator=(const HttpContent&); // to prevent copying; - -	bool operator!() const -	{ -		return !m_request || !m_request->pData || !m_request->dataLength; -	} - -	operator const char*() -	{ -		return m_request -			? m_request->pData -			: NULL; -	} - -	virtual size_t GetSize() const -	{ -		return m_request -			? m_request->dataLength -			: 0; -	} - -	HttpContent & operator<<(const VALUE ¶m) -	{ -		Add(param.szName); -		return *this; -	} - -	HttpContent & operator<<(const INT_VALUE ¶m) -	{ -		Add("%s=%i", param.szName, param.iValue); -		return *this; -	} - -	HttpContent & operator<<(const LONG_VALUE ¶m) -	{ -		Add("%s=%lld", param.szName, param.llValue); -		return *this; -	} - -	HttpContent & operator<<(const CHAR_VALUE ¶m) -	{ -		Add("%s=%s", param.szName, param.szValue); -		return *this; -	} - -	HttpContent &operator<<(const ENCODED_VALUE ¶m) -	{ -		Add("%s=%s", param.szName, param.szValue); -		return *this; -	} -}; - -enum HttpMethod -{ -	HttpGet = 1, -	HttpPost -}; - -class HttpResponse -{ -	friend class HttpRequest; - -private: -	NETLIBHTTPREQUEST *m_response; - -public: -	HttpRequest *Request; -	HttpHeaders Headers; -	HttpContent Content; - -	HttpResponse(HttpRequest *request, NETLIBHTTPREQUEST *response) -		: Request(request), m_response(response), -		Headers(response), Content(response) -	{ -	} - -	~HttpResponse() -	{ -		Netlib_FreeHttpRequest(m_response); -	} - -	bool IsSuccess() const -	{ -		return m_response->resultCode >= HTTP_CODE_OK && -			m_response->resultCode <= HTTP_CODE_MULTI_STATUS; -	} - -	int GetStatusCode() const -	{ -		return m_response->resultCode; -	} -}; - -class HttpRequest : protected NETLIBHTTPREQUEST, public MZeroedObject -{ -	friend class HttpUri; -	friend class HttpHeaders; -	friend class HttpContent; -	friend class FormContent; - -public: -	HttpUri Uri; -	HttpHeaders Headers; -	HttpContent Content; - -	HttpRequest(HttpMethod method, const char *url) -		: Uri(this, url), Headers(this), Content(this) -	{ -		cbSize = sizeof(NETLIBHTTPREQUEST); -		requestType = method; -		flags = NLHRF_HTTP11 | NLHRF_SSL | NLHRF_NODUMPHEADERS; -	} - -	~HttpRequest() -	{ -	} - -	operator NETLIBHTTPREQUEST*() -	{ -		return this; -	} -}; - -#endif //_HTTP_REQUEST_H_
\ No newline at end of file  | 
