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

#include <component.h>

Inheritance diagram for ttv::ComponentContainer:
ttv::Component ttv::IComponent

Public Types

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

Public Member Functions

 ComponentContainer ()
 
virtual ~ComponentContainer ()
 
virtual TTV_ErrorCode Initialize () override
 
virtual void Update () override
 
virtual TTV_ErrorCode Shutdown () override
 
virtual std::string GetLoggerName () const override
 
virtual TTV_ErrorCode AddComponent (std::shared_ptr< IComponent > component)
 
virtual TTV_ErrorCode RemoveComponent (std::shared_ptr< IComponent > component)
 
virtual TTV_ErrorCode DisposeComponent (std::shared_ptr< IComponent > component)
 
virtual TTV_ErrorCode SetComponent (const std::string &name, std::shared_ptr< IComponent > component)
 
virtual TTV_ErrorCode GetComponent (const std::string &name, std::shared_ptr< IComponent > &result)
 
virtual TTV_ErrorCode RemoveComponent (const std::string &name)
 
virtual TTV_ErrorCode DisposeComponent (const std::string &name)
 
bool ContainsComponent (std::shared_ptr< IComponent > component) const
 
template<typename T >
std::shared_ptr< T > GetComponentAs (const std::string &name)
 
template<typename T >
std::shared_ptr< T > GetComponent ()
 
virtual void SetTaskRunner (std::shared_ptr< TaskRunner > taskRunner)
 
std::shared_ptr< TaskRunnerGetTaskRunner ()
 
virtual State GetState () const override
 

Protected Member Functions

virtual bool CheckShutdown () override
 
virtual void CompleteShutdown () override
 
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< IMutexmMutex
 
std::vector< std::shared_ptr< IComponent > > mComponents
 
std::map< std::string, std::shared_ptr< IComponent > > mComponentMap
 
std::vector< std::shared_ptr< IComponent > > mDisposeComponents
 
ClientServerValue< StatemState
 
std::shared_ptr< TaskRunnermTaskRunner
 
std::vector< std::shared_ptr< Task > > mRunningTasks
 
std::mutex mTaskMutex
 
uint64_t mShutdownTimeMilliseconds
 

Member Enumeration Documentation

◆ State

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

The component doesn't require shutting down.

Constructor & Destructor Documentation

◆ ComponentContainer()

ttv::ComponentContainer::ComponentContainer ( )

◆ ~ComponentContainer()

virtual ttv::ComponentContainer::~ComponentContainer ( )
virtual

Member Function Documentation

◆ AddComponent()

virtual TTV_ErrorCode ttv::ComponentContainer::AddComponent ( std::shared_ptr< IComponent component)
virtual

◆ CheckShutdown()

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

Reimplemented from ttv::Component.

◆ CompleteShutdown()

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

Reimplemented from ttv::Component.

◆ CompleteTask()

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

◆ ContainsComponent()

bool ttv::ComponentContainer::ContainsComponent ( std::shared_ptr< IComponent component) const

Determines if the given component is stored in the container.

◆ DisposeComponent() [1/2]

virtual TTV_ErrorCode ttv::ComponentContainer::DisposeComponent ( std::shared_ptr< IComponent component)
virtual

◆ DisposeComponent() [2/2]

virtual TTV_ErrorCode ttv::ComponentContainer::DisposeComponent ( const std::string &  name)
virtual

◆ GetComponent() [1/2]

virtual TTV_ErrorCode ttv::ComponentContainer::GetComponent ( const std::string &  name,
std::shared_ptr< IComponent > &  result 
)
virtual

◆ GetComponent() [2/2]

template<typename T >
std::shared_ptr<T> ttv::ComponentContainer::GetComponent ( )
inline

◆ GetComponentAs()

template<typename T >
std::shared_ptr<T> ttv::ComponentContainer::GetComponentAs ( const std::string &  name)
inline

◆ GetLoggerName()

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

Implements ttv::Component.

◆ 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::ComponentContainer::Initialize ( )
overridevirtual

Reimplemented from ttv::Component.

◆ IsTaskRunning()

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

◆ RemoveComponent() [1/2]

virtual TTV_ErrorCode ttv::ComponentContainer::RemoveComponent ( std::shared_ptr< IComponent component)
virtual

◆ RemoveComponent() [2/2]

virtual TTV_ErrorCode ttv::ComponentContainer::RemoveComponent ( const std::string &  name)
virtual

◆ SetClientState()

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

◆ SetComponent()

virtual TTV_ErrorCode ttv::ComponentContainer::SetComponent ( const std::string &  name,
std::shared_ptr< IComponent component 
)
virtual

◆ 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::ComponentContainer::Shutdown ( )
overridevirtual

Reimplemented from ttv::Component.

◆ StartTask()

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

◆ Update()

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

Reimplemented from ttv::Component.

Member Data Documentation

◆ mComponentMap

std::map<std::string, std::shared_ptr<IComponent> > ttv::ComponentContainer::mComponentMap
protected

◆ mComponents

std::vector<std::shared_ptr<IComponent> > ttv::ComponentContainer::mComponents
protected

◆ mDisposeComponents

std::vector<std::shared_ptr<IComponent> > ttv::ComponentContainer::mDisposeComponents
protected

◆ mMutex

std::shared_ptr<IMutex> ttv::ComponentContainer::mMutex
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

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