Twitch SDK (Internal)
chatapitask.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 #ifndef TTVSDK_CHATAPITASK_H
10 #define TTVSDK_CHATAPITASK_H
11 
14 
15 namespace ttv
16 {
17  namespace chat
18  {
19  class ChatApiTask;
20  }
21 }
22 
24 {
25 public:
27  {
29 
30  std::string url;
31  std::vector<HttpParam> requestHeaders;
32  std::string requestBody;
36  };
37 
38 public:
39  ChatApiTask(TaskCallback callback, void* userData, const char* authToken)
40  : Task(callback, userData)
41  , mTaskStatus(TTV_EC_UNKNOWN_ERROR)
42  {
43  if (authToken)
44  {
45  mAuthToken = authToken;
46  }
47  }
48 
49  virtual ~ChatApiTask();
50 
51  virtual void Run();
52  virtual void OnComplete();
53 
54 protected:
55  virtual void FillHttpRequestInfo(HttpRequestInfo& requestInfo) = 0;
56  virtual void ResponseCallback(uint statusCode, const std::vector<char>& response, void* userData);
57  virtual bool ProcessHeaders(const std::map<std::string, std::string>& headers);
58  virtual void ProcessResponse(const std::vector<char>& response) = 0;
59 
60 private:
61  bool HeadersCallback(uint statusCode, const std::map<std::string, std::string>& headers, void* userData);
62 
63 protected:
65 
66 private:
67  std::string mAuthToken;
68 };
69 
70 #endif // TTVSDK_CHATAPITASK_H
Definition: task.h:19
HttpRequestType
Definition: httprequest.h:25
std::string url
Definition: chatapitask.h:30
virtual void FillHttpRequestInfo(HttpRequestInfo &requestInfo)=0
virtual void ResponseCallback(uint statusCode, const std::vector< char > &response, void *userData)
virtual void ProcessResponse(const std::vector< char > &response)=0
uint numRetries
Definition: chatapitask.h:35
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::string requestBody
Definition: chatapitask.h:32
std::vector< HttpParam > requestHeaders
Definition: chatapitask.h:31
TTV_TaskCallback TaskCallback
Definition: task.h:22
ChatApiTask(TaskCallback callback, void *userData, const char *authToken)
Definition: chatapitask.h:39
int timeOutInSecs
Definition: chatapitask.h:34
Definition: chatapitask.h:26
std::string mAuthToken
Definition: chatapitask.h:67
HttpRequestType httpReqType
Definition: chatapitask.h:33
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
unsigned int uint
Definition: coretypes.h:18
bool HeadersCallback(uint statusCode, const std::map< std::string, std::string > &headers, void *userData)
virtual bool ProcessHeaders(const std::map< std::string, std::string > &headers)
virtual void OnComplete()
virtual void Run()
TTV_ErrorCode mTaskStatus
Definition: chatapitask.h:64
Definition: chatapitask.h:23