Twitch SDK (Internal)
httptask.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #pragma once
10 
13 
14 namespace ttv
15 {
16  class HttpTask;
17 }
18 
19 class ttv::HttpTask : public ttv::Task
20 {
21 public:
23  {
25 
26  std::string url;
27  std::vector<HttpParam> requestHeaders;
28  std::string requestBody;
31  };
32 
33 public:
34  HttpTask();
35  HttpTask(const std::string& authToken);
36  HttpTask(TaskCallback callback, void* userData, const char* authToken);
37  virtual ~HttpTask();
38 
39  virtual void Run() override;
40  virtual void OnComplete() override;
41 
42 protected:
43  virtual void FillHttpRequestInfo(HttpRequestInfo& requestInfo) = 0;
44  virtual bool HeadersCallback(uint statusCode, const std::map<std::string, std::string>& headers);
45  virtual void ResponseCallback(uint statusCode, const std::vector<char>& response);
46  virtual bool ProcessHeaders(uint statusCode, const std::map<std::string, std::string>& headers);
47  virtual void ProcessResponse(uint statusCode, const std::vector<char>& response);
48 
49  static bool Is2XX(uint32_t statusCode) { return statusCode >= 200 && statusCode <= 299; }
50  static bool Is3XX(uint32_t statusCode) { return statusCode >= 300 && statusCode <= 399; }
51  static bool Is4XX(uint32_t statusCode) { return statusCode >= 400 && statusCode <= 499; }
52 
53 protected:
55 
56 private:
57  std::string mAuthToken;
58 };
Definition: task.h:19
virtual void Run() override
int timeOutInSecs
Definition: httptask.h:30
HttpRequestType
Definition: httprequest.h:25
std::vector< HttpParam > requestHeaders
Definition: httptask.h:27
virtual bool HeadersCallback(uint statusCode, const std::map< std::string, std::string > &headers)
static bool Is3XX(uint32_t statusCode)
Definition: httptask.h:50
Definition: httptask.h:19
std::string url
Definition: httptask.h:26
std::string requestBody
Definition: httptask.h:28
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
virtual void ProcessResponse(uint statusCode, const std::vector< char > &response)
static bool Is2XX(uint32_t statusCode)
Definition: httptask.h:49
virtual void ResponseCallback(uint statusCode, const std::vector< char > &response)
TTV_TaskCallback TaskCallback
Definition: task.h:22
std::string mAuthToken
Definition: httptask.h:57
HttpRequestType httpReqType
Definition: httptask.h:29
virtual void OnComplete() override
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
unsigned int uint
Definition: coretypes.h:18
static bool Is4XX(uint32_t statusCode)
Definition: httptask.h:51
TTV_ErrorCode mTaskStatus
Definition: httptask.h:54
virtual void FillHttpRequestInfo(HttpRequestInfo &requestInfo)=0
virtual ~HttpTask()
Definition: httptask.h:22
virtual bool ProcessHeaders(uint statusCode, const std::map< std::string, std::string > &headers)