1
#ifndef IRC_CLI_GROUP_CHAT_H
2
#define IRC_CLI_GROUP_CHAT_H
4
#include <irc/visibility.h>
8
#include <libircclient.h>
19
// Handy fw declarations
22
class IRC_PUBLIC GroupChat
27
/// @brief Creates a new instance translating the given recipient to a user.
28
static std::shared_ptr<GroupChat> create(const std::shared_ptr<messaging::Group> &group,
29
const std::shared_ptr<messaging::Chat::Observer>& observer, irc_session_t *session);
31
/// @brief send_message enqueues the given message for delivery.
32
/// @returns a numeric identifier referencing back to the delivery request.
33
/// @throws std::runtime_error in case of issues.
34
std::string send_message(const messaging::Message& message) override;
35
void mark_message_as_read(const std::string& message_token) override;
36
void start_typing() override;
37
void end_typing() override;
39
void mark_message_as_delivered(const std::string& message_token);
43
/// @brief Creates a new instance translating the given recipient to a user.
44
GroupChat(const std::shared_ptr<messaging::Group> &group,
45
const std::shared_ptr<messaging::Chat::Observer>& observer, irc_session_t *session);
47
irc_session_t *irc_session;
48
std::string channel_id;
54
#endif // IRC_CLI_GROUP_CHAT_H