Twitch SDK (Internal)
chatreplaytask.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  namespace chat
17  {
18  class ChatReplayTask;
19  }
20 }
21 
23 {
24 public:
25  struct Result
26  {
27  struct MessageBatch
28  {
29  std::vector<ReplayMessage> messages;
30  uint64_t baseTimestamp;
31  };
32 
33  std::vector< MessageBatch > messageListBatches;
34  std::string nextUrl;
36  };
37 
38  typedef std::function<void(ChatReplayTask* source, TTV_ErrorCode ec, std::shared_ptr<Result> result)> Callback;
39 
40 public:
41  ChatReplayTask(const std::string& vodId, Timestamp time, const TokenizationOptions& options, const std::shared_ptr<BitsConfiguration>& mBitsConfiguration, Callback&& callback);
42  void SetFetchLimit(uint32_t limit);
43  void SetCursorUrl(std::string url);
44 
45  // Stores the local user's names for properly parsing mentions
46  void SetLocalUserNames(const std::vector<std::string>& localUserNames) { mLocalUserNames = localUserNames; }
47 
48 protected:
49  virtual const char* GetTaskName() const override { return "ChatReplayTask"; }
50 
51  virtual void FillHttpRequestInfo(HttpRequestInfo& requestInfo) override;
52  virtual void ResponseCallback(uint statusCode, const std::vector<char>& response) override;
53  virtual void ProcessResponse(uint statusCode, const std::vector<char>& response) override;
54  virtual void OnComplete() override;
55 
56 private:
57  std::string mCursorUrl;
58  std::string mVodId;
60  uint32_t mLimit;
61  std::shared_ptr<BitsConfiguration> mBitsConfiguration;
62  std::vector<std::string> mLocalUserNames;
63  std::shared_ptr<Result> mResult;
66 };
virtual void ResponseCallback(uint statusCode, const std::vector< char > &response) override
virtual const char * GetTaskName() const override
Definition: chatreplaytask.h:49
std::shared_ptr< BitsConfiguration > mBitsConfiguration
Definition: chatreplaytask.h:61
std::string mCursorUrl
Definition: chatreplaytask.h:57
void SetLocalUserNames(const std::vector< std::string > &localUserNames)
Definition: chatreplaytask.h:46
uint32_t Timestamp
Definition: coretypes.h:27
Definition: httptask.h:19
std::string nextUrl
Definition: chatreplaytask.h:34
virtual void ProcessResponse(uint statusCode, const std::vector< char > &response) override
Definition: chatreplaytask.h:25
ChatReplayTask(const std::string &vodId, Timestamp time, const TokenizationOptions &options, const std::shared_ptr< BitsConfiguration > &mBitsConfiguration, Callback &&callback)
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Callback mCallback
Definition: chatreplaytask.h:65
std::shared_ptr< Result > mResult
Definition: chatreplaytask.h:63
std::vector< MessageBatch > messageListBatches
Definition: chatreplaytask.h:33
std::vector< std::string > mLocalUserNames
Definition: chatreplaytask.h:62
uint32_t mLimit
Definition: chatreplaytask.h:60
std::vector< ReplayMessage > messages
Definition: chatreplaytask.h:29
std::string mVodId
Definition: chatreplaytask.h:58
Definition: chatreplaytask.h:22
Timestamp mTimestamp
Definition: chatreplaytask.h:59
unsigned int uint
Definition: coretypes.h:18
void SetCursorUrl(std::string url)
bool hasNoMessages
Definition: chatreplaytask.h:35
virtual void OnComplete() override
virtual void FillHttpRequestInfo(HttpRequestInfo &requestInfo) override
uint64_t baseTimestamp
Definition: chatreplaytask.h:30
Definition: chattypes.h:41
void SetFetchLimit(uint32_t limit)
std::function< void(ChatReplayTask *source, TTV_ErrorCode ec, std::shared_ptr< Result > result)> Callback
Definition: chatreplaytask.h:38
Definition: httptask.h:22
TokenizationOptions mTokenizationOptions
Definition: chatreplaytask.h:64