23 class ComponentContainer;
58 virtual std::string GetLoggerName()
const = 0;
60 virtual void SetTaskRunner(std::shared_ptr<TaskRunner> taskRunner);
66 virtual void Update()
override;
71 void CompleteTask(
Task* task);
72 bool IsTaskRunning(
Task* task)
const;
73 virtual void SetState(
State state);
74 virtual void SetClientState(
State state);
75 virtual void SetServerState(
State state);
76 virtual bool CheckShutdown();
77 virtual void CompleteShutdown();
104 virtual void OnUserAuthenticationIssue(
User* source, std::shared_ptr<const OAuthToken> oauthToken,
TTV_ErrorCode ec)
override;
114 virtual void OnUserAuthenticationIssue(std::shared_ptr<const OAuthToken> oauthToken,
TTV_ErrorCode ec);
116 virtual void CompleteShutdown()
override;
136 virtual void Update()
override;
138 virtual std::string GetLoggerName()
const override;
140 virtual TTV_ErrorCode AddComponent(std::shared_ptr<IComponent> component);
141 virtual TTV_ErrorCode RemoveComponent(std::shared_ptr<IComponent> component);
142 virtual TTV_ErrorCode DisposeComponent(std::shared_ptr<IComponent> component);
144 virtual TTV_ErrorCode SetComponent(
const std::string& name, std::shared_ptr<IComponent> component);
145 virtual TTV_ErrorCode GetComponent(
const std::string& name, std::shared_ptr<IComponent>& result);
146 virtual TTV_ErrorCode RemoveComponent(
const std::string& name);
147 virtual TTV_ErrorCode DisposeComponent(
const std::string& name);
152 bool ContainsComponent(std::shared_ptr<IComponent> component)
const;
157 std::shared_ptr<T> result;
158 std::shared_ptr<IComponent> component;
172 std::shared_ptr<T> result;
173 std::shared_ptr<IComponent> component;
174 TTV_ErrorCode ec = GetComponent(T::GetComponentName(), component);
186 virtual bool CheckShutdown()
override;
187 virtual void CompleteShutdown()
override;
std::map< std::string, std::shared_ptr< IComponent > > mComponentMap
Definition: component.h:191
State
Definition: component.h:34
std::mutex mTaskMutex
Definition: component.h:82
TTV_MessageLevel
Definition: tracingtypes.h:14
Definition: component.h:128
std::shared_ptr< IMutex > mMutex
Definition: component.h:189
std::shared_ptr< UserListener > mUserListener
Definition: component.h:123
std::vector< std::shared_ptr< IComponent > > mDisposeComponents
Definition: component.h:193
virtual State GetState() const =0
Definition: userlistener.h:24
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::vector< std::shared_ptr< Task > > mRunningTasks
Definition: component.h:81
UserComponent * mOwner
Definition: component.h:107
ClientServerValue< State > mState
Definition: component.h:79
#define TTV_SUCCEEDED(ec)
Definition: errortypes.h:230
uint64_t mShutdownTimeMilliseconds
Definition: component.h:83
std::shared_ptr< T > GetComponentAs(const std::string &name)
Definition: component.h:155
std::shared_ptr< TaskRunner > mTaskRunner
Definition: component.h:80
std::vector< std::shared_ptr< IComponent > > mComponents
Definition: component.h:190
Definition: component.h:31
Definition: component.h:50
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
Definition: component.h:87
virtual TTV_ErrorCode Shutdown()=0
std::shared_ptr< T > GetComponent()
Definition: component.h:170
virtual TTV_ErrorCode Initialize()=0
Definition: component.h:95
The component doesn't require shutting down.
std::shared_ptr< TaskRunner > GetTaskRunner()
Definition: component.h:61
unique_ptr< DesiredType > static_pointer_cast(unique_ptr< CurrentType > &¤tPointer)
Definition: cpp11transition.h:25
bool mOAuthIssue
Whether or not the internal updates of the component are on hold because of an issue with the OAuth t...
Definition: component.h:120
std::weak_ptr< User > mUser
Definition: component.h:119