Twitch SDK (Internal)
subscribersstatus.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-2017 Twitch Interactive, Inc.
7  *********************************************************************************************/
8 
9 #pragma once
10 
14 
15 namespace ttv
16 {
17  namespace chat
18  {
19  class ISubscribersListener;
20  class SubscribersStatus;
21  }
22 }
23 
27 class ttv::chat::SubscribersStatus : public ttv::PubSubComponent<ISubscribersListener>, public ISubscribersStatus
28 {
29 public:
30  using DisposerFunc = std::function<void()>;
31 
32 public:
33  SubscribersStatus(const std::shared_ptr<User>& user, ChannelId channelId);
34 
35  static std::string GetComponentName() { return "ttv::SubscribersStatus"; }
36  virtual std::string GetLoggerName() const override;
37 
38  // ISubscribersStatus Implementation
39  virtual TTV_ErrorCode Dispose() override;
40 
41  void SetTokenizationOptions(const TokenizationOptions& tokenizationOptions) { mTokenizationOptions = tokenizationOptions; }
42 
43  void OnTopicSubscribeStateChanged(const std::string& topic, PubSubClient::SubscribeState::Enum state, TTV_ErrorCode ec) override;
44  void OnTopicMessageReceived(const std::string& topic, const json::Value& msg) override;
45 
46 private:
47  void ParseSubscriptionMessage(const ttv::json::Value& jSubMessage, SubscriberAddedEvent& event);
48 
49  std::string mPubSubTopic;
51 };
TokenizationOptions mTokenizationOptions
Definition: subscribersstatus.h:50
Definition: subscribersstatus.h:27
Definition: isubscribersstatus.h:26
void SetTokenizationOptions(const TokenizationOptions &tokenizationOptions)
Definition: subscribersstatus.h:41
Definition: chattypes.h:510
SubscribersStatus(const std::shared_ptr< User > &user, ChannelId channelId)
Enum
Definition: pubsubclient.h:91
virtual TTV_ErrorCode Dispose() override
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Represents a JSON value.
Definition: value.h:114
void OnTopicSubscribeStateChanged(const std::string &topic, PubSubClient::SubscribeState::Enum state, TTV_ErrorCode ec) override
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
std::function< void()> DisposerFunc
Definition: subscribersstatus.h:30
std::string mPubSubTopic
Definition: subscribersstatus.h:49
static std::string GetComponentName()
Definition: subscribersstatus.h:35
virtual std::string GetLoggerName() const override
uint32_t ChannelId
Definition: coretypes.h:23
Definition: chattypes.h:41
void OnTopicMessageReceived(const std::string &topic, const json::Value &msg) override
Definition: pubsubcomponent.h:21
void ParseSubscriptionMessage(const ttv::json::Value &jSubMessage, SubscriberAddedEvent &event)