Chatterino
IrcMessageBuilder.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "common/Aliases.hpp"
4 #include "common/Outcome.hpp"
7 
8 #include <IrcMessage>
9 #include <QString>
10 #include <QVariant>
11 
12 namespace chatterino {
13 
14 struct Emote;
15 using EmotePtr = std::shared_ptr<const Emote>;
16 
17 class Channel;
18 class TwitchChannel;
19 
21 {
22 public:
23  IrcMessageBuilder() = delete;
24 
25  explicit IrcMessageBuilder(Channel *_channel,
26  const Communi::IrcPrivateMessage *_ircMessage,
27  const MessageParseArgs &_args);
28  explicit IrcMessageBuilder(Channel *_channel,
29  const Communi::IrcMessage *_ircMessage,
30  const MessageParseArgs &_args, QString content,
31  bool isAction);
32 
36  explicit IrcMessageBuilder(const Communi::IrcNoticeMessage *_ircMessage,
37  const MessageParseArgs &_args);
38 
42  explicit IrcMessageBuilder(const Communi::IrcPrivateMessage *_ircMessage,
43  const MessageParseArgs &_args);
44 
45  MessagePtr build() override;
46 
47 private:
48  void appendUsername();
49 
55  QString whisperTarget_;
56 };
57 
58 } // namespace chatterino
Definition: Application.cpp:48
std::shared_ptr< const Emote > EmotePtr
Definition: Emote.hpp:38
Definition: Channel.hpp:30
MessagePtr build() override
Definition: IrcMessageBuilder.cpp:54
Definition: SharedMessageBuilder.hpp:14
std::shared_ptr< const Message > MessagePtr
Definition: Channel.hpp:18
Definition: IrcMessageBuilder.hpp:20
Definition: MessageBuilder.hpp:43