34 class PresenceListenerProxy;
56 Presence(std::shared_ptr<User> user);
63 void AddListener(std::shared_ptr<IListener> listener);
84 virtual void Update()
override;
122 uint32_t
InsertActivity(std::unique_ptr<PresenceActivity>&& activity);
136 std::map<PresenceActivityToken, std::unique_ptr<PresenceActivity>>
mActivities;
158 if (mOnSettingsChangedFunc !=
nullptr)
160 mOnSettingsChangedFunc(source, settings);
void OnTopicListenerRemoved(const std::string &topic, TTV_ErrorCode ec)
void OnTopicMessageReceived(const std::string &topic, const json::Value &msg)
virtual void OnUserInfoFetchComplete(TTV_ErrorCode ec) override
Definition: presence.h:42
virtual void OnSettingsChanged(Presence *source, const PresenceSettings &settings) override
Definition: presence.h:156
void SetSettings(const PresenceSettings &settings)
TTV_ErrorCode AddPlayingActivity(GameId gameId, const std::string &gameDisplayContext, PresenceActivityToken &activityToken)
static std::string GetComponentName()
Definition: presence.h:81
virtual TTV_ErrorCode Initialize() override
bool mEnableAutomaticPosting
Definition: presence.h:143
std::function< void(TTV_ErrorCode ec)> PostPresenceCallback
Definition: presence.h:45
TTV_ErrorCode PostPresence(const PostPresenceCallback &callback)
std::shared_ptr< Task > mSocialPostPresenceTask
Definition: presence.h:131
OnSettingsChangedFunc mOnSettingsChangedFunc
Definition: presence.h:165
PresenceActivityToken mActivityTokenCounter
Definition: presence.h:139
TTV_ErrorCode FetchSettings(const FetchPresenceSettingsCallback &callback)
uint32_t GameId
Definition: coretypes.h:24
Definition: presence.h:150
Presence(std::shared_ptr< User > user)
TTV_ErrorCode AddWatchingActivity(ChannelId channelId, PresenceActivityToken &activityToken)
Enum
Definition: pubsubclient.h:91
TTV_ErrorCode UpdateSettings()
std::unique_ptr< PresenceSettings > mSettings
Definition: presence.h:140
Definition: socialtypes.h:62
EventSource< IListener > mListeners
Definition: presence.h:132
virtual void Update() override
Presence * mOwner
Definition: presence.h:106
WaitForExpiry mPresencePostTimer
Definition: presence.h:133
PresenceSessionAvailability mAvailability
Definition: presence.h:142
TTV_ErrorCode SetAutomaticPresencePostingEnabled(bool enabled)
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Definition: presence.h:95
std::function< void(TTV_ErrorCode ec)> SetPresenceSettingsCallback
Definition: presence.h:47
void OnTopicSubscribeStateChanged(const std::string &topic, PubSubClient::SubscribeState::Enum state, TTV_ErrorCode ec)
void AddListener(std::shared_ptr< IListener > listener)
CallbackQueue< FetchPresenceSettingsCallback > mFetchSettingsCallbacks
Definition: presence.h:141
std::shared_ptr< PubSubClient > mPubSub
Definition: presence.h:126
std::shared_ptr< User > GetUser()
Definition: presence.h:61
Represents a JSON value.
Definition: value.h:114
Definition: pubsubclient.h:86
TTV_ErrorCode SetPresenceSettings(const PresenceSettings &settings, const SetPresenceSettingsCallback &callback)
Definition: eventsource.h:18
uint32_t PresenceActivityToken
Definition: socialtypes.h:98
TTV_ErrorCode SetSessionAvailability(PresenceSessionAvailability availability)
TTV_ErrorCode GetAutomaticPresencePostingEnabled(bool &enabled)
std::map< PresenceActivityToken, std::unique_ptr< PresenceActivity > > mActivities
Definition: presence.h:136
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
TTV_ErrorCode SubscribeTopics()
Definition: component.h:87
virtual std::string GetLoggerName() const override
virtual void CompleteShutdown() override
void SetUserRepository(std::shared_ptr< UserRepository > repository)
Definition: presence.h:59
Definition: pubsubclient.h:117
void RemoveListener(std::shared_ptr< IListener > listener)
WaitForExpiry mSettingsFetchTimer
Definition: presence.h:134
std::string mPresenceTopic
Definition: presence.h:138
std::function< void(Presence *source, const PresenceSettings &settings)> OnSettingsChangedFunc
Definition: presence.h:153
std::shared_ptr< UserRepository > mUserRepository
Definition: presence.h:124
virtual void OnSettingsChanged(Presence *source, const PresenceSettings &settings)=0
PresenceSessionAvailability
Definition: socialtypes.h:49
TTV_ErrorCode RemoveActivity(PresenceActivityToken activityToken)
std::shared_ptr< Task > mSocialSettingsTask
Definition: presence.h:130
uint32_t ChannelId
Definition: coretypes.h:23
std::function< void(TTV_ErrorCode ec, const PresenceSettings &settings)> FetchPresenceSettingsCallback
Definition: presence.h:46
virtual TTV_ErrorCode Shutdown() override
virtual bool CheckShutdown() override
std::shared_ptr< PubSubTopicListener > mPubSubTopicListener
Definition: presence.h:127
std::string mSessionGuid
Definition: presence.h:137
uint32_t InsertActivity(std::unique_ptr< PresenceActivity > &&activity)
Definition: presence.h:49
std::weak_ptr< User > mUser
Definition: component.h:119
std::shared_ptr< PubSubTopicListenerHelper > mPubSubTopicListenerHelper
Definition: presence.h:128
uint64_t mPostIntervalMilliseconds
Definition: presence.h:135