Twitch SDK (Internal)
fetchexperimentstask.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 #include <map>
9 
10 namespace ttv
11 {
12  namespace experiment
13  {
14  class FetchExperimentsTask;
15  }
16 }
17 
19 {
20 public:
21  using Callback = std::function<void(FetchExperimentsTask* source, TTV_ErrorCode ec, const std::shared_ptr<ExperimentSet>& result)>;
22 
23 public:
25 
26  void ProcessResponse(uint statusCode, const std::vector<char>& response) override;
27  void OnComplete() override;
28 
29  static TTV_ErrorCode ParseExperimentSet(const std::string& json, ExperimentSet& result);
30 
31 protected:
32  virtual const char* GetTaskName() const override { return "FetchExperimentsTask"; }
33  virtual void FillHttpRequestInfo(HttpRequestInfo & requestInfo) override;
34 
35  static TTV_ErrorCode ParseExperiment(const json::Value& jsonExperiment, Experiment& experiment);
36 
37 private:
39  std::shared_ptr<ExperimentSet> mResult;
40 };
Definition: fetchexperimentstask.h:18
static TTV_ErrorCode ParseExperiment(const json::Value &jsonExperiment, Experiment &experiment)
std::shared_ptr< ExperimentSet > mResult
Definition: fetchexperimentstask.h:39
Callback mCallback
Definition: fetchexperimentstask.h:38
void ProcessResponse(uint statusCode, const std::vector< char > &response) override
Definition: httptask.h:19
static TTV_ErrorCode ParseExperimentSet(const std::string &json, ExperimentSet &result)
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Represents a JSON value.
Definition: value.h:114
virtual const char * GetTaskName() const override
Definition: fetchexperimentstask.h:32
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
virtual void FillHttpRequestInfo(HttpRequestInfo &requestInfo) override
unsigned int uint
Definition: coretypes.h:18
Definition: experimenttypes.h:33
Definition: experimenttypes.h:26
std::function< void(FetchExperimentsTask *source, TTV_ErrorCode ec, const std::shared_ptr< ExperimentSet > &result)> Callback
Definition: fetchexperimentstask.h:21
Definition: httptask.h:22