Twitch SDK (Internal)
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ttv::PubSubComponentBase Class Referenceabstract

#include <pubsubcomponent.h>

Inheritance diagram for ttv::PubSubComponentBase:
ttv::UserComponent ttv::Component ttv::IComponent ttv::PubSubComponent< IBitsListener > ttv::PubSubComponent< IChannelChatRoomManagerListener > ttv::PubSubComponent< IChannelListener > ttv::PubSubComponent< IChatChannelPropertyListener > ttv::PubSubComponent< IChatRaidListener > ttv::PubSubComponent< IChatRoomListener > ttv::PubSubComponent< IChatRoomNotificationsListener > ttv::PubSubComponent< IFollowersListener > ttv::PubSubComponent< ISubscribersListener > ttv::PubSubComponent< UserEmoticonSetsListener > ttv::PubSubComponent< LISTENER >

Classes

class  PubSubTopicListener
 

Public Types

using DisposerFunc = std::function< void()>
 
enum  State { State::Uninitialized, State::Initialized, State::ShuttingDown, State::Inert }
 

Public Member Functions

 PubSubComponentBase (const std::shared_ptr< User > &user)
 
virtual ~PubSubComponentBase ()=default
 
void SetDisposer (DisposerFunc &&func)
 
TTV_ErrorCode Dispose ()
 
virtual TTV_ErrorCode Initialize () override
 
virtual TTV_ErrorCode Shutdown () override
 
virtual std::string GetLoggerName () const override=0
 
virtual void OnTopicSubscribeStateChanged (const std::string &topic, PubSubClient::SubscribeState::Enum state, TTV_ErrorCode ec)=0
 
virtual void OnTopicMessageReceived (const std::string &topic, const json::Value &msg)=0
 
virtual void OnTopicListenerRemoved (const std::string &topic, TTV_ErrorCode ec)
 
virtual void SetTaskRunner (std::shared_ptr< TaskRunner > taskRunner)
 
std::shared_ptr< TaskRunnerGetTaskRunner ()
 
virtual State GetState () const override
 
virtual void Update () override
 

Protected Member Functions

virtual bool CheckShutdown () override
 
virtual void CompleteShutdown () override
 
virtual void AddTopic (const std::string &topic)
 
virtual TTV_ErrorCode SubscribeTopics ()
 
virtual void OnUserLogInComplete (TTV_ErrorCode ec)
 
virtual void OnUserLogOutComplete (TTV_ErrorCode ec)
 
virtual void OnUserInfoFetchComplete (TTV_ErrorCode ec)
 
virtual void OnUserAuthenticationIssue (std::shared_ptr< const OAuthToken > oauthToken, TTV_ErrorCode ec)
 
void Log (TTV_MessageLevel level, const char *format,...)
 
TTV_ErrorCode StartTask (std::shared_ptr< Task > task)
 
void CompleteTask (Task *task)
 
bool IsTaskRunning (Task *task) const
 
virtual void SetState (State state)
 
virtual void SetClientState (State state)
 
virtual void SetServerState (State state)
 

Protected Attributes

std::shared_ptr< PubSubClientmPubSub
 
std::shared_ptr< PubSubTopicListenermPubSubTopicListener
 
std::shared_ptr< PubSubTopicListenerHelpermPubSubTopicListenerHelper
 
DisposerFunc mDisposerFunc
 
std::vector< std::string > mPubSubTopics
 
std::weak_ptr< UsermUser
 
bool mOAuthIssue
 Whether or not the internal updates of the component are on hold because of an issue with the OAuth token. More...
 
ClientServerValue< StatemState
 
std::shared_ptr< TaskRunnermTaskRunner
 
std::vector< std::shared_ptr< Task > > mRunningTasks
 
std::mutex mTaskMutex
 
uint64_t mShutdownTimeMilliseconds
 

Member Typedef Documentation

◆ DisposerFunc

using ttv::PubSubComponentBase::DisposerFunc = std::function<void()>

Member Enumeration Documentation

◆ State

enum ttv::IComponent::State
stronginherited
Enumerator
Uninitialized 
Initialized 
ShuttingDown 
Inert 

The component doesn't require shutting down.

Constructor & Destructor Documentation

◆ PubSubComponentBase()

ttv::PubSubComponentBase::PubSubComponentBase ( const std::shared_ptr< User > &  user)

◆ ~PubSubComponentBase()

virtual ttv::PubSubComponentBase::~PubSubComponentBase ( )
virtualdefault

Member Function Documentation

◆ AddTopic()

virtual void ttv::PubSubComponentBase::AddTopic ( const std::string &  topic)
protectedvirtual

◆ CheckShutdown()

virtual bool ttv::PubSubComponentBase::CheckShutdown ( )
overrideprotectedvirtual

Reimplemented from ttv::Component.

Reimplemented in ttv::ChannelStatus, and ttv::ProfileImageStatus.

◆ CompleteShutdown()

virtual void ttv::PubSubComponentBase::CompleteShutdown ( )
overrideprotectedvirtual

◆ CompleteTask()

void ttv::Component::CompleteTask ( Task task)
protectedinherited

◆ Dispose()

TTV_ErrorCode ttv::PubSubComponentBase::Dispose ( )

◆ GetLoggerName()

virtual std::string ttv::PubSubComponentBase::GetLoggerName ( ) const
overridepure virtual

◆ GetState()

virtual State ttv::Component::GetState ( ) const
overridevirtualinherited

Implements ttv::IComponent.

◆ GetTaskRunner()

std::shared_ptr<TaskRunner> ttv::Component::GetTaskRunner ( )
inlineinherited

◆ Initialize()

virtual TTV_ErrorCode ttv::PubSubComponentBase::Initialize ( )
overridevirtual

◆ IsTaskRunning()

bool ttv::Component::IsTaskRunning ( Task task) const
protectedinherited

◆ Log()

void ttv::UserComponent::Log ( TTV_MessageLevel  level,
const char *  format,
  ... 
)
protectedinherited

◆ OnTopicListenerRemoved()

virtual void ttv::PubSubComponentBase::OnTopicListenerRemoved ( const std::string &  topic,
TTV_ErrorCode  ec 
)
virtual

◆ OnTopicMessageReceived()

virtual void ttv::PubSubComponentBase::OnTopicMessageReceived ( const std::string &  topic,
const json::Value msg 
)
pure virtual

◆ OnTopicSubscribeStateChanged()

virtual void ttv::PubSubComponentBase::OnTopicSubscribeStateChanged ( const std::string &  topic,
PubSubClient::SubscribeState::Enum  state,
TTV_ErrorCode  ec 
)
pure virtual

◆ OnUserAuthenticationIssue()

virtual void ttv::UserComponent::OnUserAuthenticationIssue ( std::shared_ptr< const OAuthToken oauthToken,
TTV_ErrorCode  ec 
)
protectedvirtualinherited

◆ OnUserInfoFetchComplete()

virtual void ttv::UserComponent::OnUserInfoFetchComplete ( TTV_ErrorCode  ec)
protectedvirtualinherited

◆ OnUserLogInComplete()

virtual void ttv::UserComponent::OnUserLogInComplete ( TTV_ErrorCode  ec)
protectedvirtualinherited

◆ OnUserLogOutComplete()

virtual void ttv::UserComponent::OnUserLogOutComplete ( TTV_ErrorCode  ec)
protectedvirtualinherited

◆ SetClientState()

virtual void ttv::Component::SetClientState ( State  state)
protectedvirtualinherited

◆ SetDisposer()

void ttv::PubSubComponentBase::SetDisposer ( DisposerFunc &&  func)
inline

◆ SetServerState()

virtual void ttv::Component::SetServerState ( State  state)
protectedvirtualinherited

◆ SetState()

virtual void ttv::Component::SetState ( State  state)
protectedvirtualinherited

◆ SetTaskRunner()

virtual void ttv::Component::SetTaskRunner ( std::shared_ptr< TaskRunner taskRunner)
virtualinherited

◆ Shutdown()

virtual TTV_ErrorCode ttv::PubSubComponentBase::Shutdown ( )
overridevirtual

Reimplemented from ttv::Component.

Reimplemented in ttv::chat::BitsStatus, and ttv::chat::UserEmoticonSets.

◆ StartTask()

TTV_ErrorCode ttv::Component::StartTask ( std::shared_ptr< Task task)
protectedinherited

◆ SubscribeTopics()

virtual TTV_ErrorCode ttv::PubSubComponentBase::SubscribeTopics ( )
protectedvirtual

◆ Update()

virtual void ttv::Component::Update ( )
overridevirtualinherited

Member Data Documentation

◆ mDisposerFunc

DisposerFunc ttv::PubSubComponentBase::mDisposerFunc
protected

◆ mOAuthIssue

bool ttv::UserComponent::mOAuthIssue
protectedinherited

Whether or not the internal updates of the component are on hold because of an issue with the OAuth token.

◆ mPubSub

std::shared_ptr<PubSubClient> ttv::PubSubComponentBase::mPubSub
protected

◆ mPubSubTopicListener

std::shared_ptr<PubSubTopicListener> ttv::PubSubComponentBase::mPubSubTopicListener
protected

◆ mPubSubTopicListenerHelper

std::shared_ptr<PubSubTopicListenerHelper> ttv::PubSubComponentBase::mPubSubTopicListenerHelper
protected

◆ mPubSubTopics

std::vector<std::string> ttv::PubSubComponentBase::mPubSubTopics
protected

◆ mRunningTasks

std::vector<std::shared_ptr<Task> > ttv::Component::mRunningTasks
protectedinherited

◆ mShutdownTimeMilliseconds

uint64_t ttv::Component::mShutdownTimeMilliseconds
protectedinherited

◆ mState

ClientServerValue<State> ttv::Component::mState
protectedinherited

◆ mTaskMutex

std::mutex ttv::Component::mTaskMutex
mutableprotectedinherited

◆ mTaskRunner

std::shared_ptr<TaskRunner> ttv::Component::mTaskRunner
protectedinherited

◆ mUser

std::weak_ptr<User> ttv::UserComponent::mUser
protectedinherited

The documentation for this class was generated from the following file: