21 #if __cpp_ref_qualifiers >= 200710 22 #define ZNC_LVREFQUAL & 23 #elif defined(__clang__) 24 #define ZNC_LVREFQUAL & 25 #elif __GNUC__ > 4 || \ 26 __GNUC__ == 4 && (__GNUC_MINOR__ > 8 || \ 27 __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ >= 1) 28 #define ZNC_LVREFQUAL & 33 #include <znc/zncconfig.h> 123 const timeval&
GetTime()
const {
return m_time; }
124 void SetTime(
const timeval& ts) { m_time = ts; }
143 template <
typename M>
145 static_assert(std::is_base_of<CMessage, M>{},
146 "Must be subclass of CMessage");
147 static_assert(
sizeof(M) ==
sizeof(
CMessage),
148 "No data members allowed in CMessage subclasses.");
149 return static_cast<M&
>(*this);
152 template <
typename M>
154 static_assert(std::is_base_of<CMessage, M>{},
155 "Must be subclass of CMessage");
156 static_assert(
sizeof(M) ==
sizeof(
CMessage),
157 "No data members allowed in CMessage subclasses.");
158 return static_cast<const M&
>(*this);
161 template <
typename M,
typename =
typename std::enable_if<
162 std::is_base_of<CMessage, M>{}>::type>
166 template <
typename M,
typename =
typename std::enable_if<
167 std::is_base_of<CMessage, M>{}>::type>
172 #define REGISTER_ZNC_MESSAGE(M) 176 template <
typename M>
191 CChan* m_pChan =
nullptr;
193 bool m_bColon =
false;
198 template <
typename M,
typename =
typename std::enable_if<
199 std::is_base_of<CMessage, M>{}>::type>
200 inline ::std::ostream& operator<<(::std::ostream& os,
const M& msg) {
223 SetParam(1,
"\001ACTION " + sText +
"\001");
309 #endif // !ZNC_MESSAGE_H Definition: Message.h:266
CString GetReason() const
Definition: Message.h:283
Definition: Message.h:302
Definition: Message.h:245
CNick & GetNick()
Definition: Message.h:109
void Clone(const CMessage &Other)
void SetText(const CString &sText)
Definition: Message.h:222
CString ToString(unsigned int uFlags=IncludeAll) const
const VCString & GetParams() const
Definition: Message.h:116
Definition: Message.h:135
#define REGISTER_ZNC_MESSAGE(M)
Definition: Message.h:172
const MCString & GetTags() const
Definition: Message.h:126
CString GetModes() const
Definition: Message.h:247
CString TrimSuffix_n(const CString &sSuffix) const
Trim a given suffix.
void SetParam(unsigned int uIdx, const CString &sParam)
void SetChan(CChan *pChan)
Definition: Message.h:107
unsigned int GetCode() const
Definition: Message.h:268
void SetTarget(const CString &sTarget)
Definition: Message.h:213
Definition: Message.h:210
Definition: Message.h:134
void SetParams(const VCString &vsParams)
CString GetText() const
Definition: Message.h:297
#define ZNC_LVREFQUAL
Definition: Message.h:30
Definition: Message.h:281
Definition: Message.h:259
void SetTag(const CString &sKey, const CString &sValue)
const CString & GetNick() const
CString GetKickedNick() const
Definition: Message.h:274
CString GetText() const
Definition: Message.h:261
void SetCommand(const CString &sCommand)
CString GetKey() const
Definition: Message.h:240
void SetText(const CString &sText)
Definition: Message.h:298
const M & As() const ZNC_LVREFQUAL
Definition: Message.h:153
Definition: ZNCString.h:76
Definition: Message.h:228
void SetTags(const MCString &mssTags)
Definition: Message.h:127
bool IsReply() const
Definition: Message.h:230
CString GetText() const
Definition: Message.h:219
Definition: Message.h:288
void Parse(CString sMessage)
Definition: Message.h:217
const timeval & GetTime() const
Definition: Message.h:123
void SetReason(const CString &sReason)
Definition: Message.h:291
bool Equals(const CMessage &Other) const
Definition: IRCNetwork.h:40
std::vector< CString > VCString
Definition: ZNCString.h:38
void SetText(const CString &sText)
Definition: Message.h:262
CString GetReason() const
Definition: Message.h:276
String class that is used inside ZNC.
Definition: ZNCString.h:68
void SetKickedNick(const CString &sNick)
Definition: Message.h:275
void SetNewNick(const CString &sNick)
Definition: Message.h:255
void SetNetwork(CIRCNetwork *pNetwork)
Definition: Message.h:100
CString GetParam(unsigned int uIdx) const
CString GetOldNick() const
Definition: Message.h:253
FormatFlags
Definition: Message.h:132
void SetTopic(const CString &sTopic)
Definition: Message.h:305
const CString & GetCommand() const
Definition: Message.h:113
static const MCString EmptyMap
A static instance of an empty map.
Definition: ZNCString.h:606
const CNick & GetNick() const
Definition: Message.h:110
unsigned int ToUInt() const
Definition: Message.h:295
CString GetTarget() const
Definition: Message.h:212
void SetKey(const CString &sKey)
Definition: Message.h:241
Definition: Message.h:133
M & As() ZNC_LVREFQUAL
Definition: Message.h:144
A dictionary for strings.
Definition: ZNCString.h:595
void SetReason(const CString &sReason)
Definition: Message.h:277
Definition: Message.h:251
CString GetText() const
Definition: Message.h:231
CChan * GetChan() const
Definition: Message.h:106
Type
Definition: Message.h:70
bool Equals(const CString &s, CaseSensitivity cs=CaseInsensitive) const
Check if this string is equal to some other string.
CString GetTopic() const
Definition: Message.h:304
CString GetNewNick() const
Definition: Message.h:254
void SetTime(const timeval &ts)
Definition: Message.h:124
void SetText(const CString &sText)
Definition: Message.h:234
CString GetTag(const CString &sKey) const
Definition: Message.h:238
void SetReason(const CString &sReason)
Definition: Message.h:284
void SetClient(CClient *pClient)
Definition: Message.h:104
CMessage(const CString &sMessage="")
Definition: Message.h:272
CIRCNetwork * GetNetwork() const
Definition: Message.h:99
CClient * GetClient() const
Definition: Message.h:103
CString GetReason() const
Definition: Message.h:290
Here is a small explanation of how messages on IRC work, and how you can use this class to get useful...
Definition: Message.h:63
CString TrimPrefix_n(const CString &sPrefix=":") const
Trim a given prefix.
void SetNick(const CNick &Nick)
Definition: Message.h:111
Type GetType() const
Definition: Message.h:93