Twitch SDK (Internal)
ichatroom.h
Go to the documentation of this file.
1 /********************************************************************************************
2  * Twitch Broadcasting SDK
3  *
4  * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5  * may not be copied or used except in accordance with the terms of that agreement
6  * Copyright (c) 2017 Twitch Interactive, Inc.
7  *********************************************************************************************/
8 
9 #pragma once
10 
12 
13 namespace ttv
14 {
15  namespace chat
16  {
17  class IChatRoom;
18  }
19 }
20 
21 
26 {
27 public:
28 
36  using DeleteRoomCallback = std::function<void(TTV_ErrorCode ec)>;
37 
48  using SendMessageCallback = std::function<void(TTV_ErrorCode ec, SendRoomMessageError&& error, ChatRoomMessage&& message)>;
49 
58  using EditMessageCallback = std::function<void(TTV_ErrorCode ec, ChatRoomMessage&& message)>;
59 
68  using DeleteMessageCallback = std::function<void(TTV_ErrorCode ec)>;
69 
80  using FetchMessagesCallback = std::function<void(TTV_ErrorCode ec, std::vector<ChatRoomMessage>&& messages, std::string&& nextCursor, bool moreMessages)>;
81 
92  using UpdateRoomInfoCallback = std::function<void(TTV_ErrorCode ec, UpdateRoomError&& error, ChatRoomInfo&& info)>;
93 
104  using UpdateRoomModesCallback = std::function<void(TTV_ErrorCode ec, UpdateRoomModesError&& error, ChatRoomInfo&& info)>;
105 
114  using UpdateRoomViewCallback = std::function<void(TTV_ErrorCode ec, ChatRoomInfo&& info)>;
115 
124  using FetchRoomInfoCallback = std::function<void(TTV_ErrorCode ec, ChatRoomInfo&& info)>;
125 
126  virtual ~IChatRoom() = default;
127 
134  virtual TTV_ErrorCode Dispose() = 0;
135 
145  virtual TTV_ErrorCode DeleteRoom(const DeleteRoomCallback& callback) = 0;
146 
158  virtual TTV_ErrorCode SendMessage(const std::string& message, ChatRoomMessage& placeholderMessage, const SendMessageCallback& callback) = 0;
159 
172  virtual TTV_ErrorCode EditMessage(const std::string& messageId, const std::string& message, ChatRoomMessage& placeholderMessage, const EditMessageCallback& callback) = 0;
173 
184  virtual TTV_ErrorCode DeleteMessage(const std::string& messageId, const DeleteMessageCallback& callback) = 0;
185 
198  virtual TTV_ErrorCode FetchMessagesBeforeCursor(const std::string& cursor, uint32_t limit, const FetchMessagesCallback& callback) = 0;
199 
212  virtual TTV_ErrorCode FetchMessagesAfterCursor(const std::string& cursor, uint32_t limit, const FetchMessagesCallback& callback) = 0;
213 
226  virtual TTV_ErrorCode FetchMessagesBeforeTimestamp(Timestamp timestamp, uint32_t limit, const FetchMessagesCallback& callback) = 0;
227 
240  virtual TTV_ErrorCode FetchMessagesAfterTimestamp(Timestamp timestamp, uint32_t limit, const FetchMessagesCallback& callback) = 0;
241 
251  virtual TTV_ErrorCode FetchRoomInfo(const FetchRoomInfoCallback& callback) = 0;
252 
263  virtual TTV_ErrorCode SetRoomName(const std::string& name, const UpdateRoomInfoCallback& callback) = 0;
264 
275  virtual TTV_ErrorCode SetTopic(const std::string& topic, const UpdateRoomInfoCallback& callback) = 0;
276 
287  virtual TTV_ErrorCode SetPreviewable(bool isPreviewable, const UpdateRoomInfoCallback& callback) = 0;
288 
300  virtual TTV_ErrorCode SetMinimumAllowedRole(RoomRole minimumAllowedRole, const UpdateRoomInfoCallback& callback) = 0;
301 
313  virtual TTV_ErrorCode EnableSlowMode(uint32_t durationSeconds, const UpdateRoomModesCallback& callback) = 0;
314 
324  virtual TTV_ErrorCode DisableSlowMode(const UpdateRoomModesCallback& callback) = 0;
325 
335  virtual TTV_ErrorCode EnableR9kMode(const UpdateRoomModesCallback& callback) = 0;
336 
346  virtual TTV_ErrorCode DisableR9kMode(const UpdateRoomModesCallback& callback) = 0;
347 
357  virtual TTV_ErrorCode EnableEmotesOnlyMode(const UpdateRoomModesCallback& callback) = 0;
358 
368  virtual TTV_ErrorCode DisableEmotesOnlyMode(const UpdateRoomModesCallback& callback) = 0;
369 
380  virtual TTV_ErrorCode SetLastReadAt(Timestamp lastReadAt, const UpdateRoomViewCallback& callback) = 0;
381 
392  virtual TTV_ErrorCode SetMuted(bool isMuted, const UpdateRoomViewCallback& callback) = 0;
393 
404  virtual TTV_ErrorCode SetArchived(bool isArchived, const UpdateRoomViewCallback& callback) = 0;
405 };
std::function< void(TTV_ErrorCode ec, std::vector< ChatRoomMessage > &&messages, std::string &&nextCursor, bool moreMessages)> FetchMessagesCallback
Definition: ichatroom.h:80
virtual ~IChatRoom()=default
Definition: chattypes.h:358
RoomRole
Definition: chattypes.h:775
virtual TTV_ErrorCode SendMessage(const std::string &message, ChatRoomMessage &placeholderMessage, const SendMessageCallback &callback)=0
virtual TTV_ErrorCode SetPreviewable(bool isPreviewable, const UpdateRoomInfoCallback &callback)=0
virtual TTV_ErrorCode EditMessage(const std::string &messageId, const std::string &message, ChatRoomMessage &placeholderMessage, const EditMessageCallback &callback)=0
std::function< void(TTV_ErrorCode ec, ChatRoomMessage &&message)> EditMessageCallback
Definition: ichatroom.h:58
uint32_t Timestamp
Definition: coretypes.h:27
std::function< void(TTV_ErrorCode ec, UpdateRoomModesError &&error, ChatRoomInfo &&info)> UpdateRoomModesCallback
Definition: ichatroom.h:104
virtual TTV_ErrorCode DeleteMessage(const std::string &messageId, const DeleteMessageCallback &callback)=0
virtual TTV_ErrorCode EnableR9kMode(const UpdateRoomModesCallback &callback)=0
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
virtual TTV_ErrorCode DisableR9kMode(const UpdateRoomModesCallback &callback)=0
virtual TTV_ErrorCode FetchRoomInfo(const FetchRoomInfoCallback &callback)=0
virtual TTV_ErrorCode EnableSlowMode(uint32_t durationSeconds, const UpdateRoomModesCallback &callback)=0
virtual TTV_ErrorCode SetLastReadAt(Timestamp lastReadAt, const UpdateRoomViewCallback &callback)=0
virtual TTV_ErrorCode FetchMessagesAfterTimestamp(Timestamp timestamp, uint32_t limit, const FetchMessagesCallback &callback)=0
virtual TTV_ErrorCode FetchMessagesBeforeCursor(const std::string &cursor, uint32_t limit, const FetchMessagesCallback &callback)=0
std::function< void(TTV_ErrorCode ec, ChatRoomInfo &&info)> UpdateRoomViewCallback
Definition: ichatroom.h:114
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
virtual TTV_ErrorCode SetRoomName(const std::string &name, const UpdateRoomInfoCallback &callback)=0
virtual TTV_ErrorCode FetchMessagesAfterCursor(const std::string &cursor, uint32_t limit, const FetchMessagesCallback &callback)=0
std::function< void(TTV_ErrorCode ec)> DeleteMessageCallback
Definition: ichatroom.h:68
std::function< void(TTV_ErrorCode ec)> DeleteRoomCallback
Definition: ichatroom.h:36
virtual TTV_ErrorCode DisableSlowMode(const UpdateRoomModesCallback &callback)=0
virtual TTV_ErrorCode FetchMessagesBeforeTimestamp(Timestamp timestamp, uint32_t limit, const FetchMessagesCallback &callback)=0
virtual TTV_ErrorCode SetMuted(bool isMuted, const UpdateRoomViewCallback &callback)=0
virtual TTV_ErrorCode DisableEmotesOnlyMode(const UpdateRoomModesCallback &callback)=0
virtual TTV_ErrorCode EnableEmotesOnlyMode(const UpdateRoomModesCallback &callback)=0
std::function< void(TTV_ErrorCode ec, UpdateRoomError &&error, ChatRoomInfo &&info)> UpdateRoomInfoCallback
Definition: ichatroom.h:92
virtual TTV_ErrorCode SetMinimumAllowedRole(RoomRole minimumAllowedRole, const UpdateRoomInfoCallback &callback)=0
std::function< void(TTV_ErrorCode ec, ChatRoomInfo &&info)> FetchRoomInfoCallback
Definition: ichatroom.h:124
virtual TTV_ErrorCode SetArchived(bool isArchived, const UpdateRoomViewCallback &callback)=0
virtual TTV_ErrorCode Dispose()=0
Definition: ichatroom.h:25
std::function< void(TTV_ErrorCode ec, SendRoomMessageError &&error, ChatRoomMessage &&message)> SendMessageCallback
Definition: ichatroom.h:48
virtual TTV_ErrorCode DeleteRoom(const DeleteRoomCallback &callback)=0
virtual TTV_ErrorCode SetTopic(const std::string &topic, const UpdateRoomInfoCallback &callback)=0