Twitch SDK (Internal)
socialrecommendedfriendstask.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 
15 
16 namespace ttv
17 {
18  namespace social
19  {
20  class SocialRecommendedFriendsTask;
21  }
22 }
23 
25 {
26 public:
27  enum class Action
28  {
29  Unset,
30  Fetch,
31  Dismiss
32  };
33 
35  {
37  };
38 
39  struct Result
40  {
41  Result();
42 
43  std::vector<RecommendedFriendEntry> recommendedFriends; // Used if action == Action::Fetch
45  };
46 
47  typedef std::function<void(SocialRecommendedFriendsTask* source, TTV_ErrorCode ec, std::shared_ptr<Result> result)> Callback;
48 
49 public:
50  SocialRecommendedFriendsTask(UserId userId, const std::string& authToken, Callback callback);
51 
55  void Fetch();
59  void Dismiss(UserId recommendedUserId);
60 
61 protected:
62  virtual const char* GetTaskName() const override { return "SocialRecommendedFriendsTask"; }
63 
64  virtual void FillHttpRequestInfo(HttpRequestInfo& requestInfo) override;
65  virtual bool ProcessHeaders(uint statusCode, const std::map<std::string, std::string>& headers) override;
66  virtual void ProcessResponse(uint statusCode, const std::vector<char>& response) override;
67  virtual void OnComplete() override;
68 
69 private:
70  bool ParseRecommendedFriendListJson(const json::Value& jArray);
71 
72  std::shared_ptr<Result> mResult;
77 };
uint32_t UserId
Definition: coretypes.h:22
SocialRecommendedFriendsTask(UserId userId, const std::string &authToken, Callback callback)
Definition: socialrecommendedfriendstask.h:39
Definition: coretypes.h:32
Definition: socialrecommendedfriendstask.h:24
virtual bool ProcessHeaders(uint statusCode, const std::map< std::string, std::string > &headers) override
Definition: httptask.h:19
Action
Definition: socialrecommendedfriendstask.h:27
Action mAction
Definition: socialrecommendedfriendstask.h:76
Definition: socialrecommendedfriendstask.h:34
virtual void FillHttpRequestInfo(HttpRequestInfo &requestInfo) override
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
virtual void ProcessResponse(uint statusCode, const std::vector< char > &response) override
Represents a JSON value.
Definition: value.h:114
std::vector< RecommendedFriendEntry > recommendedFriends
Definition: socialrecommendedfriendstask.h:43
bool ParseRecommendedFriendListJson(const json::Value &jArray)
unsigned int uint
Definition: coretypes.h:18
UserId mUserId
Definition: socialrecommendedfriendstask.h:74
std::function< void(SocialRecommendedFriendsTask *source, TTV_ErrorCode ec, std::shared_ptr< Result > result)> Callback
Definition: socialrecommendedfriendstask.h:47
Action action
Definition: socialrecommendedfriendstask.h:44
Callback mCallback
Definition: socialrecommendedfriendstask.h:73
UserInfo userInfo
Definition: socialrecommendedfriendstask.h:36
std::shared_ptr< Result > mResult
Definition: socialrecommendedfriendstask.h:72
Definition: httptask.h:22
UserId mRecommendedUserId
Definition: socialrecommendedfriendstask.h:75
virtual const char * GetTaskName() const override
Definition: socialrecommendedfriendstask.h:62