Twitch SDK (Internal)
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
ttv::chat::ChatUserThread Class Reference

#include <chatuserthread.h>

Inheritance diagram for ttv::chat::ChatUserThread:
ttv::UserComponent ttv::Component ttv::IComponent

Classes

class  Listener
 

Public Types

using FetchMessagesCallback = std::function< void(TTV_ErrorCode ec, const std::vector< WhisperMessage > &messages)>
 
using SetMutedCallback = std::function< void(TTV_ErrorCode ec)>
 
using SetArchivedCallback = std::function< void(TTV_ErrorCode ec)>
 
using SetLastMessageReadIdCallback = std::function< void(TTV_ErrorCode ec)>
 
enum  State { State::Uninitialized, State::Initialized, State::ShuttingDown, State::Inert }
 

Public Member Functions

 ChatUserThread (const std::string &threadId, const std::shared_ptr< User > &user, const ThreadData &data)
 
 ChatUserThread (const std::string &threadId, const std::shared_ptr< User > &user)
 
virtual ~ChatUserThread ()
 
std::string GetId () const
 
void SetTokenizationOptions (const TokenizationOptions &tokenizationOptions)
 
void SetBitsConfiguration (std::shared_ptr< BitsConfiguration > bitsConfiguration)
 
bool GetPlaceholder () const
 
bool GetFetchFailed () const
 
void SetFailedSend (bool failed)
 
bool GetFailedSend () const
 
void AddListener (std::shared_ptr< Listener > listener)
 
void RemoveListener (std::shared_ptr< Listener > listener)
 
virtual void Update () override
 
virtual std::string GetLoggerName () const override
 
void UpdateMetadata (const ThreadData &thread)
 
TTV_ErrorCode FetchMessages (MessageId start, uint32_t beforeCount, const FetchMessagesCallback &callback)
 
void AddRealtimeMessage (const WhisperMessage &message)
 
void GetMetadata (ThreadData &thread) const
 
bool GetLocalParticipant (ChatUserInfo &userInfo) const
 
const std::vector< ChatUserInfo > & GetParticipants ()
 
Timestamp GetLastUpdateTimestamp () const
 
MessageId GetLastMessageId () const
 
MessageId GetLastReadMessageId () const
 
TTV_ErrorCode SetMuted (bool muted, const SetMutedCallback &callback)
 
TTV_ErrorCode SetArchived (bool archived, const SetMutedCallback &callback)
 
TTV_ErrorCode SetLastMessageReadId (MessageId id, const SetLastMessageReadIdCallback &callback)
 
void SetUnreadMessageWindow (MessageId lastMessageId, MessageId lastReadMessageId)
 
virtual TTV_ErrorCode Initialize () override
 
virtual void SetTaskRunner (std::shared_ptr< TaskRunner > taskRunner)
 
std::shared_ptr< TaskRunnerGetTaskRunner ()
 
virtual State GetState () const override
 
virtual TTV_ErrorCode Shutdown () override
 

Protected Member Functions

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)
 
virtual bool CheckShutdown ()
 

Protected Attributes

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
 

Private Member Functions

 ChatUserThread (const std::string &threadId, const std::shared_ptr< User > &user, bool placeholder)
 
void BumpLastMessage (const WhisperMessage &message)
 
void UpdateParticipants (const WhisperMessage &message)
 
void ScheduleFetch ()
 
TTV_ErrorCode FetchMetadata ()
 
virtual void CompleteShutdown () override
 

Private Attributes

EventSource< ListenermListeners
 
std::shared_ptr< BitsConfigurationmBitsConfiguration
 
std::shared_ptr< WhisperMessagemLastMessage
 
std::vector< ChatUserInfomParticipants
 
std::string mThreadId
 
WaitForExpiry mMetadataFetchTimer
 
MessageId mLastMessageId
 
MessageId mLastReadMessageId
 
Timestamp mLastUpdateTimestamp
 
Timestamp mLastFetchedTimestamp
 
TokenizationOptions mTokenizationOptions
 
bool mMuted
 
bool mArchived
 
bool mParticipantsUpdated
 
bool mLastMessageUpdated
 
bool mUnreadMessageWindowUpdate
 
bool mPlaceholder
 
bool mFetchMetadataFailed
 
bool mFailedSend
 

Member Typedef Documentation

◆ FetchMessagesCallback

using ttv::chat::ChatUserThread::FetchMessagesCallback = std::function<void(TTV_ErrorCode ec, const std::vector<WhisperMessage>& messages)>

◆ SetArchivedCallback

◆ SetLastMessageReadIdCallback

◆ SetMutedCallback

Member Enumeration Documentation

◆ State

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

The component doesn't require shutting down.

Constructor & Destructor Documentation

◆ ChatUserThread() [1/3]

ttv::chat::ChatUserThread::ChatUserThread ( const std::string &  threadId,
const std::shared_ptr< User > &  user,
const ThreadData data 
)

◆ ChatUserThread() [2/3]

ttv::chat::ChatUserThread::ChatUserThread ( const std::string &  threadId,
const std::shared_ptr< User > &  user 
)

◆ ~ChatUserThread()

virtual ttv::chat::ChatUserThread::~ChatUserThread ( )
virtual

◆ ChatUserThread() [3/3]

ttv::chat::ChatUserThread::ChatUserThread ( const std::string &  threadId,
const std::shared_ptr< User > &  user,
bool  placeholder 
)
private

Member Function Documentation

◆ AddListener()

void ttv::chat::ChatUserThread::AddListener ( std::shared_ptr< Listener listener)

◆ AddRealtimeMessage()

void ttv::chat::ChatUserThread::AddRealtimeMessage ( const WhisperMessage message)

Inserts a message that has come in over pub sub.

◆ BumpLastMessage()

void ttv::chat::ChatUserThread::BumpLastMessage ( const WhisperMessage message)
private

◆ CheckShutdown()

virtual bool ttv::Component::CheckShutdown ( )
protectedvirtualinherited

◆ CompleteShutdown()

virtual void ttv::chat::ChatUserThread::CompleteShutdown ( )
overrideprivatevirtual

Reimplemented from ttv::UserComponent.

◆ CompleteTask()

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

◆ FetchMessages()

TTV_ErrorCode ttv::chat::ChatUserThread::FetchMessages ( MessageId  start,
uint32_t  beforeCount,
const FetchMessagesCallback callback 
)

◆ FetchMetadata()

TTV_ErrorCode ttv::chat::ChatUserThread::FetchMetadata ( )
private

◆ GetFailedSend()

bool ttv::chat::ChatUserThread::GetFailedSend ( ) const
inline

◆ GetFetchFailed()

bool ttv::chat::ChatUserThread::GetFetchFailed ( ) const
inline

◆ GetId()

std::string ttv::chat::ChatUserThread::GetId ( ) const
inline

◆ GetLastMessageId()

MessageId ttv::chat::ChatUserThread::GetLastMessageId ( ) const
inline

◆ GetLastReadMessageId()

MessageId ttv::chat::ChatUserThread::GetLastReadMessageId ( ) const
inline

◆ GetLastUpdateTimestamp()

Timestamp ttv::chat::ChatUserThread::GetLastUpdateTimestamp ( ) const
inline

◆ GetLocalParticipant()

bool ttv::chat::ChatUserThread::GetLocalParticipant ( ChatUserInfo userInfo) const

Find the chat user info for the local user and returns it if it exists.

◆ GetLoggerName()

virtual std::string ttv::chat::ChatUserThread::GetLoggerName ( ) const
overridevirtual

Implements ttv::Component.

◆ GetMetadata()

void ttv::chat::ChatUserThread::GetMetadata ( ThreadData thread) const

◆ GetParticipants()

const std::vector<ChatUserInfo>& ttv::chat::ChatUserThread::GetParticipants ( )
inline

◆ GetPlaceholder()

bool ttv::chat::ChatUserThread::GetPlaceholder ( ) const
inline

◆ 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::UserComponent::Initialize ( )
overridevirtualinherited

◆ IsTaskRunning()

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

◆ Log()

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

◆ 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

◆ RemoveListener()

void ttv::chat::ChatUserThread::RemoveListener ( std::shared_ptr< Listener listener)

◆ ScheduleFetch()

void ttv::chat::ChatUserThread::ScheduleFetch ( )
private

◆ SetArchived()

TTV_ErrorCode ttv::chat::ChatUserThread::SetArchived ( bool  archived,
const SetMutedCallback callback 
)

◆ SetBitsConfiguration()

void ttv::chat::ChatUserThread::SetBitsConfiguration ( std::shared_ptr< BitsConfiguration bitsConfiguration)
inline

◆ SetClientState()

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

◆ SetFailedSend()

void ttv::chat::ChatUserThread::SetFailedSend ( bool  failed)
inline

◆ SetLastMessageReadId()

TTV_ErrorCode ttv::chat::ChatUserThread::SetLastMessageReadId ( MessageId  id,
const SetLastMessageReadIdCallback callback 
)

◆ SetMuted()

TTV_ErrorCode ttv::chat::ChatUserThread::SetMuted ( bool  muted,
const SetMutedCallback callback 
)

◆ 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

◆ SetTokenizationOptions()

void ttv::chat::ChatUserThread::SetTokenizationOptions ( const TokenizationOptions tokenizationOptions)
inline

◆ SetUnreadMessageWindow()

void ttv::chat::ChatUserThread::SetUnreadMessageWindow ( MessageId  lastMessageId,
MessageId  lastReadMessageId 
)

Updates the local values and does not apply changes to the backend.

◆ Shutdown()

virtual TTV_ErrorCode ttv::Component::Shutdown ( )
overridevirtualinherited

◆ StartTask()

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

◆ Update()

virtual void ttv::chat::ChatUserThread::Update ( )
overridevirtual

Reimplemented from ttv::Component.

◆ UpdateMetadata()

void ttv::chat::ChatUserThread::UpdateMetadata ( const ThreadData thread)

Updates the internal metadata.

◆ UpdateParticipants()

void ttv::chat::ChatUserThread::UpdateParticipants ( const WhisperMessage message)
private

Member Data Documentation

◆ mArchived

bool ttv::chat::ChatUserThread::mArchived
private

◆ mBitsConfiguration

std::shared_ptr<BitsConfiguration> ttv::chat::ChatUserThread::mBitsConfiguration
private

◆ mFailedSend

bool ttv::chat::ChatUserThread::mFailedSend
private

◆ mFetchMetadataFailed

bool ttv::chat::ChatUserThread::mFetchMetadataFailed
private

◆ mLastFetchedTimestamp

Timestamp ttv::chat::ChatUserThread::mLastFetchedTimestamp
private

◆ mLastMessage

std::shared_ptr<WhisperMessage> ttv::chat::ChatUserThread::mLastMessage
private

◆ mLastMessageId

MessageId ttv::chat::ChatUserThread::mLastMessageId
private

◆ mLastMessageUpdated

bool ttv::chat::ChatUserThread::mLastMessageUpdated
private

◆ mLastReadMessageId

MessageId ttv::chat::ChatUserThread::mLastReadMessageId
private

◆ mLastUpdateTimestamp

Timestamp ttv::chat::ChatUserThread::mLastUpdateTimestamp
private

◆ mListeners

EventSource<Listener> ttv::chat::ChatUserThread::mListeners
private

◆ mMetadataFetchTimer

WaitForExpiry ttv::chat::ChatUserThread::mMetadataFetchTimer
private

◆ mMuted

bool ttv::chat::ChatUserThread::mMuted
private

◆ 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.

◆ mParticipants

std::vector<ChatUserInfo> ttv::chat::ChatUserThread::mParticipants
private

◆ mParticipantsUpdated

bool ttv::chat::ChatUserThread::mParticipantsUpdated
private

◆ mPlaceholder

bool ttv::chat::ChatUserThread::mPlaceholder
private

◆ 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

◆ mThreadId

std::string ttv::chat::ChatUserThread::mThreadId
private

◆ mTokenizationOptions

TokenizationOptions ttv::chat::ChatUserThread::mTokenizationOptions
private

◆ mUnreadMessageWindowUpdate

bool ttv::chat::ChatUserThread::mUnreadMessageWindowUpdate
private

◆ mUser

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

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