Twitch SDK (Internal)
chatnetworkevent.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) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #ifndef TTVSDK_CHATNETWORKEVENT_H
10 #define TTVSDK_CHATNETWORKEVENT_H
11 
13 
14 
15 namespace ttv
16 {
17  namespace chat
18  {
19  class ChatNetworkEvent;
20  class IChatReceiveNetworkEvent;
21  class IChatWriteNetworkEvent;
22  }
23 }
24 
25 
30 {
31 public:
32  static std::string EventIDToString(int idEvent);
33  static int EventStringToID(const std::string& evt);
34  static int CTCPEventStringToID(const std::string& evt, bool bReply = false);
35 
36  static bool IsReplyEvent(int idEvent);
37  static bool IsCommandEvent(int idEvent);
38  static bool IsCTCPEvent(int idEvent);
39  static bool IsCTCPReplyEvent(int idEvent);
40  static bool IsSystemEvent(int idEvent);
41 
42 
44  ChatNetworkEvent(int idEvent, int nParams, ...);
46 
47  void SetEvent(const std::string& evt);
48  const std::string& GetEvent() const;
49 
50  void SetEventID(int idEvent);
51  int GetEventID() const;
52 
53  void AddParam(const std::string& sParam);
54  const std::string& GetParam(unsigned int iParam) const;
55  size_t GetParamCount() const;
56 
57  void SetPrefix(const std::string& prefix);
58  const std::string& GetPrefix() const;
59 
60  void SetMessageTags(const std::string& raw);
61  const std::map<std::string, std::string>& GetMessageTags() const;
62 
63  bool IsIncoming() const;
64  void SetIncoming(bool bIncoming);
65 
66  void SetAutoPrefix(bool bAutoPrefix);
67  bool GetAutoPrefix() const;
68 
69 protected:
70  void Clear();
71 
72  uint32_t mEventId;
73  std::string mEventName;
74  std::string mPrefix;
75  std::map<std::string, std::string> mMessageTags;
76  std::vector<std::string> mParams;
77  bool mIncoming;
79 };
80 
81 
87 {
88 public:
89  virtual ~IChatReceiveNetworkEvent();
90 
91  virtual void ReceiveEvent(const ChatNetworkEvent& evt) = 0;
92 };
93 
94 
99 {
100 public:
101  virtual ~IChatWriteNetworkEvent();
102 
103  virtual void WriteEvent(const ChatNetworkEvent& evt) = 0;
104  virtual void WriteRaw(const std::string& msg) = 0;
105 };
106 
107 
108 
109 #define EVENT_OFFSET_COMMAND 1000
110 #define EVENT_OFFSET_CTCP 2000
111 #define EVENT_OFFSET_CTCP_REPLY 2500
112 #define EVENT_OFFSET_SYSTEM 3000
113 
114 
115 typedef enum _EVENT_IRC_REPLY
116 {
127 
128  IRC_ERR_CANNOTSENDTOCHAN = 404, //"<channel name> :Cannot send to channel"
129  IRC_ERR_USERNOTINCHANNEL = 441, //"<nick> <channel> :They aren't on that channel"
130  IRC_ERR_NOTONCHANNEL = 442, //"<channel> :You're not on that channel"
131  IRC_ERR_USERONCHANNEL = 443, //"<user> <channel> :is already on channel"
132  IRC_ERR_KEYSET = 467, //"<channel> :Channel key already set"
133  IRC_ERR_CHANNELISFULL = 471, //"<channel> :Cannot join channel (+l)"
134  IRC_ERR_UNKNOWNMODE = 472, //"<char> :is unknown mode char to me for <channel>"
135  IRC_ERR_INVITEONLYCHAN = 473, //"<channel> :Cannot join channel (+i)"
136  IRC_ERR_BANNEDFROMCHAN = 474, //"<channel> :Cannot join channel (+b)"
137  IRC_ERR_BADCHANNELKEY = 475, //"<channel> :Cannot join channel (+k)"
138  IRC_ERR_BADCHANMASK = 476, //"<channel> :Bad Channel Mask"
139  IRC_ERR_NOCHANMODES = 477, //"<channel> :Channel doesn't support modes"
140  IRC_ERR_BANLISTFULL = 478, //"<channel> <char> :Channel list is full"
141  IRC_ERR_NOPRIVILEGES = 481, //":Permission Denied- You're not an IRC operator"
142  IRC_ERR_CHANOPRIVSNEEDED = 482, //"<channel> :You're not channel operator"
143 
146 
147 typedef enum _EVENT_IRC_COMMAND
148 {
181 
183 {
192 // ^- these need to be synced -v
193 typedef enum _EVENT_CTCP_REPLY
194 {
203 
205 {
216 
217 #endif // TTVSDK_CHATNETWORKEVENT_H
Definition: chatnetworkevent.h:195
Definition: chatnetworkevent.h:158
Definition: chatnetworkevent.h:123
static std::string EventIDToString(int idEvent)
static int CTCPEventStringToID(const std::string &evt, bool bReply=false)
enum _EVENT_IRC_REPLY EVENT_IRC_REPLY
Definition: chatnetworkevent.h:139
std::string mEventName
Definition: chatnetworkevent.h:73
#define EVENT_OFFSET_SYSTEM
Definition: chatnetworkevent.h:112
Definition: chatnetworkevent.h:137
void SetPrefix(const std::string &prefix)
Definition: chatnetworkevent.h:174
enum _EVENT_CTCP_COMMAND EVENT_CTCP_COMMAND
Definition: chatnetworkevent.h:185
Definition: chatnetworkevent.h:160
Definition: chatnetworkevent.h:151
Definition: chatnetworkevent.h:133
const std::string & GetPrefix() const
#define EVENT_OFFSET_COMMAND
Definition: chatnetworkevent.h:109
Definition: chatnetworkevent.h:132
Definition: chatnetworkevent.h:213
Definition: chatnetworkevent.h:126
Definition: chatnetworkevent.h:128
Definition: chatnetworkevent.h:189
Definition: chatnetworkevent.h:134
Definition: chatnetworkevent.h:178
Definition: chatnetworkevent.h:159
Definition: chatnetworkevent.h:211
Definition: chatnetworkevent.h:124
Definition: chatnetworkevent.h:206
Definition: chatnetworkevent.h:169
Definition: chatnetworkevent.h:176
Definition: chatnetworkevent.h:152
enum _EVENT_SYSTEM_MESSAGE EVENT_SYSTEM_MESSAGE
bool mAutoPrefix
Definition: chatnetworkevent.h:78
_EVENT_CTCP_COMMAND
Definition: chatnetworkevent.h:182
Definition: chatnetworkevent.h:156
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Definition: chatnetworkevent.h:118
Definition: chatnetworkevent.h:138
Definition: chatnetworkevent.h:208
Definition: chatnetworkevent.h:170
Definition: chatnetworkevent.h:177
Definition: chatnetworkevent.h:199
void AddParam(const std::string &sParam)
Definition: chatnetworkevent.h:168
Definition: chatnetworkevent.h:150
Definition: chatnetworkevent.h:167
Definition: chatnetworkevent.h:165
Definition: chatnetworkevent.h:153
Definition: chatnetworkevent.h:188
_EVENT_IRC_COMMAND
Definition: chatnetworkevent.h:147
Definition: chatnetworkevent.h:122
Definition: chatnetworkevent.h:190
Definition: chatnetworkevent.h:131
Definition: chatnetworkevent.h:161
Definition: chatnetworkevent.h:166
Definition: chatnetworkevent.h:201
static bool IsSystemEvent(int idEvent)
_EVENT_CTCP_REPLY
Definition: chatnetworkevent.h:193
const std::string & GetEvent() const
Definition: chatnetworkevent.h:135
Definition: chatnetworkevent.h:157
static int EventStringToID(const std::string &evt)
Definition: chatnetworkevent.h:198
static bool IsCTCPEvent(int idEvent)
Definition: chatnetworkevent.h:125
std::string mPrefix
Definition: chatnetworkevent.h:74
static bool IsCommandEvent(int idEvent)
_EVENT_SYSTEM_MESSAGE
Definition: chatnetworkevent.h:204
Definition: chatnetworkevent.h:120
Definition: chatnetworkevent.h:117
Definition: chatnetworkevent.h:136
void SetEvent(const std::string &evt)
Definition: chatnetworkevent.h:98
Definition: chatnetworkevent.h:129
Definition: chatnetworkevent.h:164
Definition: chatnetworkevent.h:184
Definition: chatnetworkevent.h:207
static bool IsCTCPReplyEvent(int idEvent)
Definition: chatnetworkevent.h:200
Definition: chatnetworkevent.h:196
const std::string & GetParam(unsigned int iParam) const
_EVENT_IRC_REPLY
Definition: chatnetworkevent.h:115
Definition: chatnetworkevent.h:154
Definition: chatnetworkevent.h:163
Definition: chatnetworkevent.h:212
Definition: chatnetworkevent.h:179
static bool IsReplyEvent(int idEvent)
void SetIncoming(bool bIncoming)
Definition: chatnetworkevent.h:121
const std::map< std::string, std::string > & GetMessageTags() const
size_t GetParamCount() const
void SetMessageTags(const std::string &raw)
enum _EVENT_CTCP_REPLY EVENT_CTCP_REPLY
Definition: chatnetworkevent.h:210
std::vector< std::string > mParams
Definition: chatnetworkevent.h:76
Definition: chatnetworkevent.h:175
Definition: chatnetworkevent.h:172
Definition: chatnetworkevent.h:186
Definition: chatnetworkevent.h:144
std::map< std::string, std::string > mMessageTags
Definition: chatnetworkevent.h:75
void SetAutoPrefix(bool bAutoPrefix)
Definition: chatnetworkevent.h:171
Definition: chatnetworkevent.h:209
Definition: chatnetworkevent.h:141
void SetEventID(int idEvent)
Definition: chatnetworkevent.h:86
Definition: chatnetworkevent.h:130
Definition: chatnetworkevent.h:173
enum _EVENT_IRC_COMMAND EVENT_IRC_COMMAND
bool mIncoming
Definition: chatnetworkevent.h:77
#define EVENT_OFFSET_CTCP_REPLY
Definition: chatnetworkevent.h:111
Definition: chatnetworkevent.h:142
Definition: chatnetworkevent.h:187
#define EVENT_OFFSET_CTCP
Definition: chatnetworkevent.h:110
Definition: chatnetworkevent.h:162
Definition: chatnetworkevent.h:29
Definition: chatnetworkevent.h:119
Definition: chatnetworkevent.h:214
Definition: chatnetworkevent.h:155
uint32_t mEventId
Definition: chatnetworkevent.h:72
Definition: chatnetworkevent.h:197
Definition: chatnetworkevent.h:149
Definition: chatnetworkevent.h:140