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

#include <user.h>

Inheritance diagram for ttv::User:
ttv::Component ttv::IComponent

Public Types

enum  State { State::Uninitialized, State::Initialized, State::ShuttingDown, State::Inert }
 

Public Member Functions

 User (UserId userId)
 
virtual ~User ()
 
void SetUserRepository (const std::shared_ptr< UserRepository > &repository)
 
void AddListener (const std::shared_ptr< IUserListener > &listener)
 
void RemoveListener (const std::shared_ptr< IUserListener > &listener)
 
std::shared_ptr< ComponentContainerGetComponentContainer ()
 
void LogIn ()
 
void LogOut ()
 
void ReportOAuthTokenInvalid (const std::shared_ptr< const OAuthToken > &oauthToken, TTV_ErrorCode ec)
 
const UserInfoGetUserInfo () const
 
void SetUserInfo (const UserInfo &userInfo)
 
std::string GetUserName () const
 
void SetOAuthToken (const std::shared_ptr< OAuthToken > &authToken)
 
std::shared_ptr< const OAuthTokenGetOAuthToken () const
 
std::string GetDisplayName () const
 
uint32_t GetUserId () const
 
virtual TTV_ErrorCode Initialize () override
 
virtual void Update () override
 
virtual TTV_ErrorCode Shutdown () override
 
virtual std::string GetLoggerName () const override
 
virtual void SetTaskRunner (std::shared_ptr< TaskRunner > taskRunner)
 
std::shared_ptr< TaskRunnerGetTaskRunner ()
 
virtual State GetState () const override
 

Protected Member Functions

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

ClientServerValue< StatemState
 
std::shared_ptr< TaskRunnermTaskRunner
 
std::vector< std::shared_ptr< Task > > mRunningTasks
 
std::mutex mTaskMutex
 
uint64_t mShutdownTimeMilliseconds
 

Private Member Functions

virtual bool CheckShutdown () override
 
virtual void CompleteShutdown () override
 

Private Attributes

UserInfo mUserInfo
 
std::shared_ptr< OAuthTokenmOAuthToken
 
std::weak_ptr< UserRepositorymUserRepository
 
EventSource< IUserListenermListeners
 
std::shared_ptr< ComponentContainermComponentContainer
 
UserId mUserId
 

Member Enumeration Documentation

◆ State

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

The component doesn't require shutting down.

Constructor & Destructor Documentation

◆ User()

ttv::User::User ( UserId  userId)

◆ ~User()

virtual ttv::User::~User ( )
virtual

Member Function Documentation

◆ AddListener()

void ttv::User::AddListener ( const std::shared_ptr< IUserListener > &  listener)

◆ CheckShutdown()

virtual bool ttv::User::CheckShutdown ( )
overrideprivatevirtual

Reimplemented from ttv::Component.

◆ CompleteShutdown()

virtual void ttv::User::CompleteShutdown ( )
overrideprivatevirtual

Reimplemented from ttv::Component.

◆ CompleteTask()

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

◆ GetComponentContainer()

std::shared_ptr<ComponentContainer> ttv::User::GetComponentContainer ( )
inline

◆ GetDisplayName()

std::string ttv::User::GetDisplayName ( ) const
inline

◆ GetLoggerName()

virtual std::string ttv::User::GetLoggerName ( ) const
overridevirtual

Implements ttv::Component.

◆ GetOAuthToken()

std::shared_ptr<const OAuthToken> ttv::User::GetOAuthToken ( ) const

◆ GetState()

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

Implements ttv::IComponent.

◆ GetTaskRunner()

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

◆ GetUserId()

uint32_t ttv::User::GetUserId ( ) const
inline

◆ GetUserInfo()

const UserInfo& ttv::User::GetUserInfo ( ) const
inline

◆ GetUserName()

std::string ttv::User::GetUserName ( ) const
inline

◆ Initialize()

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

Reimplemented from ttv::Component.

◆ IsTaskRunning()

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

◆ LogIn()

void ttv::User::LogIn ( )

Assigns a new OAuth token to the user and initiates validation. When validation is complete it will fire IUserListener::OnUserLogInComplete.

◆ LogOut()

void ttv::User::LogOut ( )

Resets the OAuth token and fires IUserListener::OnUserLogOutComplete.

◆ RemoveListener()

void ttv::User::RemoveListener ( const std::shared_ptr< IUserListener > &  listener)

◆ ReportOAuthTokenInvalid()

void ttv::User::ReportOAuthTokenInvalid ( const std::shared_ptr< const OAuthToken > &  oauthToken,
TTV_ErrorCode  ec 
)

Called by any client of User the has attempted to use the OAuth token to access a resource and was rejected.

◆ SetClientState()

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

◆ SetOAuthToken()

void ttv::User::SetOAuthToken ( const std::shared_ptr< OAuthToken > &  authToken)

◆ 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

◆ SetUserInfo()

void ttv::User::SetUserInfo ( const UserInfo userInfo)

◆ SetUserRepository()

void ttv::User::SetUserRepository ( const std::shared_ptr< UserRepository > &  repository)
inline

◆ Shutdown()

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

Reimplemented from ttv::Component.

◆ StartTask()

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

◆ Update()

virtual void ttv::User::Update ( )
overridevirtual

Reimplemented from ttv::Component.

Member Data Documentation

◆ mComponentContainer

std::shared_ptr<ComponentContainer> ttv::User::mComponentContainer
private

◆ mListeners

EventSource<IUserListener> ttv::User::mListeners
private

◆ mOAuthToken

std::shared_ptr<OAuthToken> ttv::User::mOAuthToken
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

◆ mUserId

UserId ttv::User::mUserId
private

◆ mUserInfo

UserInfo ttv::User::mUserInfo
private

◆ mUserRepository

std::weak_ptr<UserRepository> ttv::User::mUserRepository
private

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