comparison libpurple/protocols/msn/msnutils.h @ 31043:5981b4116b52

Add some buffer reading/writing functions. I don't know if these are really the best implementations, but we'll see how they work out with each use.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 17 Dec 2010 07:12:21 +0000
parents dc996aa83f49
children 0ab12023a1bc
comparison
equal deleted inserted replaced
31042:09c46c8f2f8f 31043:5981b4116b52
92 * @param input Challenge input. 92 * @param input Challenge input.
93 * @param output Callenge output. 93 * @param output Callenge output.
94 */ 94 */
95 void msn_handle_chl(char *input, char *output); 95 void msn_handle_chl(char *input, char *output);
96 96
97 /**
98 * Read a byte from a buffer
99 *
100 * @param buf Pointer to buffer.
101 *
102 * @return 8-bit byte
103 */
104 guint8 msn_read8(const char *buf);
105
106 /**
107 * Read a little-endian short from a buffer
108 *
109 * @param buf Pointer to buffer.
110 *
111 * @return 16-bit short
112 */
113 guint16 msn_read16le(const char *buf);
114
115 /**
116 * Read a big-endian short from a buffer
117 *
118 * @param buf Pointer to buffer.
119 *
120 * @return 16-bit short
121 */
122 guint16 msn_read16be(const char *buf);
123
124 /**
125 * Read a little-endian int from a buffer
126 *
127 * @param buf Pointer to buffer.
128 *
129 * @return 32-bit int
130 */
131 guint32 msn_read32le(const char *buf);
132
133 /**
134 * Read a big-endian int from a buffer
135 *
136 * @param buf Pointer to buffer.
137 *
138 * @return 32-bit int
139 */
140 guint32 msn_read32be(const char *buf);
141
142 /**
143 * Read a little-endian long from a buffer
144 *
145 * @param buf Pointer to buffer.
146 *
147 * @return 64-bit long
148 */
149 guint64 msn_read64le(const char *buf);
150
151 /**
152 * Read a big-endian long from a buffer
153 *
154 * @param buf Pointer to buffer.
155 *
156 * @return 64-bit long
157 */
158 guint64 msn_read64be(const char *buf);
159
160 /**
161 * Write a byte to a buffer
162 *
163 * @param buf Pointer to buffer.
164 * @param data 8-bit byte.
165 */
166 void msn_write8(char *buf, guint8 data);
167
168 /**
169 * Write a little-endian short to a buffer
170 *
171 * @param buf Pointer to buffer.
172 * @param data short.
173 */
174 void msn_write16le(char *buf, guint16 data);
175
176 /**
177 * Write a big-endian short to a buffer
178 *
179 * @param buf Pointer to buffer.
180 * @param data short.
181 */
182 void msn_write16be(char *buf, guint16 data);
183
184 /**
185 * Write a little-endian int to a buffer
186 *
187 * @param buf Pointer to buffer.
188 * @param data int.
189 */
190 void msn_write32le(char *buf, guint32 data);
191
192 /**
193 * Write a big-endian int to a buffer
194 *
195 * @param buf Pointer to buffer.
196 * @param data int.
197 */
198 void msn_write32be(char *buf, guint32 data);
199
200 /**
201 * Write a little-endian long to a buffer
202 *
203 * @param buf Pointer to buffer.
204 * @param data long.
205 */
206 void msn_write64le(char *buf, guint64 data);
207
208 /**
209 * Write a big-endian long to a buffer
210 *
211 * @param buf Pointer to buffer.
212 * @param data short
213 */
214 void msn_write64be(char *buf, guint64 data);
215
216 /**
217 * Same as above, but these increment the buf pointer.
218 */
219 #define msn_pop8(buf) msn_read8((buf+=1)-1)
220 #define msn_pop16le(buf) msn_read16le((buf+=2)-2)
221 #define msn_pop16be(buf) msn_read16be((buf+=2)-2)
222 #define msn_pop32le(buf) msn_read32le((buf+=4)-4)
223 #define msn_pop32be(buf) msn_read32be((buf+=4)-4)
224 #define msn_pop64le(buf) msn_read64le((buf+=8)-8)
225 #define msn_pop64be(buf) msn_read64be((buf+=8)-8)
226 #define msn_push8(buf, data) msn_write8(buf, data), buf+=1
227 #define msn_push16le(buf, data) msn_write16le(buf, data), buf+=2
228 #define msn_push16be(buf, data) msn_write16be(buf, data), buf+=2
229 #define msn_push32le(buf, data) msn_write32le(buf, data), buf+=4
230 #define msn_push32be(buf, data) msn_write32be(buf, data), buf+=4
231 #define msn_push64le(buf, data) msn_write64le(buf, data), buf+=8
232 #define msn_push64be(buf, data) msn_write64be(buf, data), buf+=8
233
97 #endif /* MSN_UTILS_H */ 234 #endif /* MSN_UTILS_H */
235