21 #define ZNC_MSG_DEPRECATED(msg) 23 #define ZNC_MSG_DEPRECATED(msg) __attribute__((deprecated(msg))) 26 #include <znc/zncconfig.h> 135 const timeval&
GetTime()
const {
return m_time; }
136 void SetTime(
const timeval& ts) { m_time = ts; }
155 template <
typename M>
157 static_assert(std::is_base_of<CMessage, M>{},
158 "Must be subclass of CMessage");
159 static_assert(
sizeof(M) ==
sizeof(
CMessage),
160 "No data members allowed in CMessage subclasses.");
161 return static_cast<M&
>(*this);
164 template <
typename M>
165 const M&
As() const& {
166 static_assert(std::is_base_of<CMessage, M>{},
167 "Must be subclass of CMessage");
168 static_assert(
sizeof(M) ==
sizeof(
CMessage),
169 "No data members allowed in CMessage subclasses.");
170 return static_cast<const M&
>(*this);
173 template <
typename M,
typename =
typename std::enable_if<
174 std::is_base_of<CMessage, M>{}>::type>
178 template <
typename M,
typename =
typename std::enable_if<
179 std::is_base_of<CMessage, M>{}>::type>
180 operator const M&()
const& {
184 #define REGISTER_ZNC_MESSAGE(M) 188 template <
typename M>
203 CChan* m_pChan =
nullptr;
205 bool m_bColon =
false;
210 template <
typename M,
typename =
typename std::enable_if<
211 std::is_base_of<CMessage, M>{}>::type>
212 inline ::std::ostream& operator<<(::std::ostream& os,
const M& msg) {
235 SetParam(1,
"\001ACTION " + sText +
"\001");
336 #endif // !ZNC_MESSAGE_H Definition: Message.h:285
M & As() &
Definition: Message.h:156
CString GetTag(const CString &sKey) const
Definition: Message.h:327
#define ZNC_MSG_DEPRECATED(msg)
Definition: Message.h:23
Definition: Message.h:257
CNick & GetNick()
Definition: Message.h:103
void Clone(const CMessage &Other)
void SetText(const CString &sText)
Definition: Message.h:234
CString TrimPrefix_n(const CString &sPrefix=":") const
Trim a given prefix.
Definition: Message.h:147
CString GetText() const
Definition: Message.h:322
#define REGISTER_ZNC_MESSAGE(M)
Definition: Message.h:184
void SetParam(unsigned int uIdx, const CString &sParam)
void SetChan(CChan *pChan)
Definition: Message.h:101
CString GetOldNick() const
Definition: Message.h:272
CChan * GetChan() const
Definition: Message.h:100
const CString & GetNick() const
void SetTarget(const CString &sTarget)
Definition: Message.h:225
Definition: Message.h:222
void SetText(const CString &sText)
Definition: Message.h:307
CString GetText() const
Definition: Message.h:280
void SetText(const CString &sText)
Definition: Message.h:332
bool Equals(const CString &s, CaseSensitivity cs=CaseInsensitive) const
Check if this string is equal to some other string.
bool HasModes() const
Definition: Message.h:266
CString ToString(unsigned int uFlags=IncludeAll) const
Definition: Message.h:146
void SetParams(const VCString &vsParams)
CString GetNewNick() const
Definition: Message.h:273
Definition: Message.h:302
Definition: Message.h:278
void SetTag(const CString &sKey, const CString &sValue)
CIRCNetwork * GetNetwork() const
Definition: Message.h:93
bool IsReply() const
Definition: Message.h:242
void SetCommand(const CString &sCommand)
void SetText(const CString &sText)
Definition: Message.h:316
CString GetText() const
Definition: Message.h:306
void SetText(const CString &sText)
Definition: Message.h:323
CString GetReason() const
Definition: Message.h:313
const CString & GetCommand() const
Definition: Message.h:107
Definition: ZNCString.h:76
CString GetModeList() const
Definition: Message.h:262
Definition: Message.h:240
void SetTags(const MCString &mssTags)
Definition: Message.h:139
Definition: Message.h:311
Definition: Message.h:229
CString GetText() const
Definition: Message.h:297
void SetReason(const CString &sReason)
Definition: Message.h:314
Type GetType() const
Definition: Message.h:87
const MCString & GetTags() const
Definition: Message.h:138
Definition: IRCNetwork.h:40
std::vector< CString > VCString
Definition: ZNCString.h:38
CString GetParamsColon(unsigned int uIdx, unsigned int uLen=-1) const
void SetText(const CString &sText)
Definition: Message.h:281
unsigned int ToUInt() const
String class that is used inside ZNC.
Definition: ZNCString.h:68
CString GetParam(unsigned int uIdx) const
void SetKickedNick(const CString &sNick)
Definition: Message.h:294
CString GetKickedNick() const
Definition: Message.h:293
void SetNewNick(const CString &sNick)
Definition: Message.h:274
void SetNetwork(CIRCNetwork *pNetwork)
Definition: Message.h:94
CString GetKey() const
Definition: Message.h:252
FormatFlags
Definition: Message.h:144
void SetTopic(const CString &sTopic)
Definition: Message.h:330
const CNick & GetNick() const
Definition: Message.h:104
CString GetTopic() const
Definition: Message.h:329
CString GetText() const
Definition: Message.h:243
CString GetText() const
Definition: Message.h:315
CString GetText() const
Definition: Message.h:331
VCString GetParamsSplit(unsigned int uIdx, unsigned int uLen=-1) const
Get a subset of the message parameters.
static const MCString EmptyMap
A static instance of an empty map.
Definition: ZNCString.h:606
const M & As() const &
Definition: Message.h:165
const timeval & GetTime() const
Definition: Message.h:135
CString GetModes() const
Definition: Message.h:260
Definition: Message.h:320
void SetKey(const CString &sKey)
Definition: Message.h:253
Definition: Message.h:145
A dictionary for strings.
Definition: ZNCString.h:595
void SetReason(const CString &sReason)
Definition: Message.h:296
Definition: Message.h:270
CString GetTarget() const
Definition: Message.h:224
VCString GetModeParams() const
Definition: Message.h:264
void SetText(const CString &sText)
Definition: Message.h:298
const VCString & GetParams() const
Definition: Message.h:110
Type
Definition: Message.h:64
void SetTime(const timeval &ts)
Definition: Message.h:136
CString TrimSuffix_n(const CString &sSuffix) const
Trim a given suffix.
void SetText(const CString &sText)
Definition: Message.h:246
bool Equals(const CMessage &Other) const
CString GetReason() const
Definition: Message.h:304
CClient * GetClient() const
Definition: Message.h:97
void Parse(const CString &sMessage)
Definition: Message.h:250
void SetReason(const CString &sReason)
Definition: Message.h:305
CString GetParams(unsigned int uIdx, unsigned int uLen=-1) const ZNC_MSG_DEPRECATED("Use GetParamsColon() instead")
Definition: Message.h:126
void SetClient(CClient *pClient)
Definition: Message.h:98
CMessage(const CString &sMessage="")
Definition: Message.h:291
unsigned int GetCode() const
Definition: Message.h:287
CString GetReason() const
Definition: Message.h:295
Here is a small explanation of how messages on IRC work, and how you can use this class to get useful...
Definition: Message.h:57
void SetNick(const CNick &Nick)
Definition: Message.h:105
CString GetText() const
Definition: Message.h:231