17 #include <unordered_set> 28 class ChatUserBlockList;
29 class UserBlockListListenerProxy;
30 class ChatChangeUserBlockTask;
63 virtual void Update()
override;
70 typedef std::shared_ptr< std::unordered_set<UserId> >
SetReference;
uint32_t UserId
Definition: coretypes.h:22
std::shared_ptr< ChatChangeUserBlockTask > mRunningChangeTask
Definition: chatuserblocklist.h:98
SetReference mRefreshUsers
The set of users incrementally built during a refresh.
Definition: chatuserblocklist.h:94
std::function< void(TTV_ErrorCode ec, const std::vector< UserInfo > &blockedUsers)> FetchBlockedUsersCallback
Definition: chatuserblocklist.h:39
UserId userId
Definition: chatuserblocklist.h:87
TTV_ErrorCode UnblockUser(UserId userId, const BlockChangeCallback &=nullptr)
TTV_ErrorCode FetchBlockedUsers(const FetchBlockedUsersCallback &callback=nullptr)
bool IsUserBlocked(UserId userId)
virtual TTV_ErrorCode Shutdown() override
Definition: chatuserblocklist.h:83
void ScheduleRequest(UserId blockUserId, bool block, const std::string &reason, bool whisper, const BlockChangeCallback &callback)
std::shared_ptr< ChatGetBlockListTask > mRunningGetListTask
Definition: chatuserblocklist.h:99
void RefreshComplete(TTV_ErrorCode ec)
Definition: chatuserblocklist.h:35
BlockChangeCallback callback
Definition: chatuserblocklist.h:86
void ProcessNextRequest()
void CancelRequestsForUser(UserId blockUserId)
CallbackQueue< FetchBlockedUsersCallback > mBlockedUsersCallbacks
Definition: chatuserblocklist.h:97
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::vector< ChangeRequest > mQueuedChanges
The set of server changes that are queued while a refresh is in progress.
Definition: chatuserblocklist.h:96
ChatUserBlockList(std::shared_ptr< User > user)
uint64_t mRefreshIntervalMilliseconds
Definition: chatuserblocklist.h:102
std::shared_ptr< std::unordered_set< UserId > > SetReference
Definition: chatuserblocklist.h:70
WaitForExpiry mRefreshTimer
Definition: chatuserblocklist.h:101
virtual void Update() override
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
Definition: component.h:87
virtual bool CheckShutdown() override
void SetRefreshInterval(uint64_t milliseconds)
TTV_ErrorCode UpdateList()
unsigned int uint
Definition: coretypes.h:18
bool block
Definition: chatuserblocklist.h:88
virtual std::string GetLoggerName() const override
std::shared_ptr< ChatGetBlockListTask::Result > mRefreshResult
Definition: chatuserblocklist.h:100
std::vector< UserInfo > mUserInfoList
List of UserInfos fetched.
Definition: chatuserblocklist.h:95
static std::string GetComponentName()
Definition: chatuserblocklist.h:60
std::weak_ptr< UserRepository > mUserRepository
Definition: chatuserblocklist.h:92
bool whisper
Definition: chatuserblocklist.h:89
std::function< void(TTV_ErrorCode ec)> BlockChangeCallback
Definition: chatuserblocklist.h:38
std::shared_ptr< User > GetUser()
Definition: chatuserblocklist.h:58
void GetBlockedUsers(std::unordered_set< UserId > &result) const
void SetLocalValue(SetReference set, UserId blockUserId, bool block)
uint64_t GetRefreshInterval() const
Definition: chatuserblocklist.h:56
TTV_ErrorCode BlockUser(UserId userId, const std::string &reason, bool whisper, const BlockChangeCallback &=nullptr)
virtual ~ChatUserBlockList()
bool IsRefreshInProgress() const
SetReference mBlockedUsers
The current set of users.
Definition: chatuserblocklist.h:93
std::weak_ptr< User > mUser
Definition: component.h:119
std::string reason
Definition: chatuserblocklist.h:85
void FetchPage(uint offset, uint limit)