plugins/perl/common/Server.xs

changeset 11118
36db35a9da56
child 11128
4579322a0570
equal deleted inserted replaced
11117:2278a06da7c4 11118:36db35a9da56
1 #include "module.h"
2
3 /*
4 TODO
5
6 */
7
8
9 MODULE = Gaim::Serv PACKAGE = Gaim::Serv PREFIX = serv_
10 PROTOTYPES: ENABLE
11
12
13 void
14 serv_add_buddies(con, list)
15 Gaim::Connection con
16 SV * list
17 PREINIT:
18 GList *t_GL;
19 int i, t_len;
20 PPCODE:
21 t_GL = NULL;
22 t_len = av_len((AV *)SvRV(list));
23
24 for (i = 0; i < t_len; i++) {
25 STRLEN t_sl;
26 t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(list), i, 0), t_sl));
27 }
28 serv_add_buddies(con, t_GL);
29
30 void
31 serv_add_buddy(con, buddy)
32 Gaim::Connection con
33 Gaim::BuddyList::Buddy buddy
34
35 void
36 serv_add_deny(con, a)
37 Gaim::Connection con
38 const char * a
39
40 void
41 serv_add_permit(a, b)
42 Gaim::Connection a
43 const char * b
44
45 void
46 serv_alias_buddy(buddy)
47 Gaim::BuddyList::Buddy buddy
48
49 void
50 serv_change_passwd(con, a, b)
51 Gaim::Connection con
52 const char * a
53 const char * b
54
55 void
56 serv_chat_invite(con, a, b, c)
57 Gaim::Connection con
58 int a
59 const char * b
60 const char * c
61
62 void
63 serv_chat_leave(a, b)
64 Gaim::Connection a
65 int b
66
67 int
68 serv_chat_send(con, a, b)
69 Gaim::Connection con
70 int a
71 const char * b
72
73 void
74 serv_chat_whisper(con, a, b, c)
75 Gaim::Connection con
76 int a
77 const char * b
78 const char * c
79
80 void
81 serv_dir_search(con, a, b, c,d,e,f,g,h)
82 Gaim::Connection con
83 const char * a
84 const char * b
85 const char * c
86 const char * d
87 const char * e
88 const char * f
89 const char * g
90 const char * h
91
92 void
93 serv_get_dir(con, a)
94 Gaim::Connection con
95 const char * a
96
97 void
98 serv_get_info(con, a)
99 Gaim::Connection con
100 const char * a
101
102 void
103 serv_got_alias(gc, who, alias)
104 Gaim::Connection gc
105 const char *who
106 const char *alias
107
108 void
109 serv_got_chat_in(g, id, who, chatflags, message, mtime)
110 Gaim::Connection g
111 int id
112 const char *who
113 Gaim::ConvChatFlags chatflags
114 const char *message
115 time_t mtime
116
117 void
118 serv_got_chat_invite(gc, name, who, message, components)
119 Gaim::Connection gc
120 const char *name
121 const char *who
122 const char *message
123 SV * components
124 INIT:
125 HV * t_HV;
126 HE * t_HE;
127 SV * t_SV;
128 GHashTable * t_GHash;
129 int i;
130 I32 len;
131 char *t_key, *t_value;
132 CODE:
133 t_HV = (HV *)SvRV(components);
134 t_GHash = g_hash_table_new(NULL, NULL);
135
136 for (t_HE = hv_iternext(t_HV); t_HE != NULL; t_HE = hv_iternext(t_HV) ) {
137 t_key = hv_iterkey(t_HE, &len);
138 t_SV = *hv_fetch(t_HV, t_key, len, 0);
139 t_value = SvPV(t_SV, PL_na);
140
141 g_hash_table_insert(t_GHash, t_key, t_value);
142 }
143 serv_got_chat_invite(gc, name, who, message, t_GHash);
144
145 void
146 serv_got_chat_left(g, id)
147 Gaim::Connection g
148 int id
149
150 void
151 serv_got_im(gc, who, msg, imflags, mtime)
152 Gaim::Connection gc
153 const char *who
154 const char *msg
155 Gaim::ConvImFlags imflags
156 time_t mtime
157
158 Gaim::Conversation
159 serv_got_joined_chat(gc, id, name)
160 Gaim::Connection gc
161 int id
162 const char *name
163
164 void
165 serv_got_typing(gc, name, timeout, state)
166 Gaim::Connection gc
167 const char *name
168 int timeout
169 Gaim::TypingState state
170
171 void
172 serv_got_typing_stopped(gc, name)
173 Gaim::Connection gc
174 const char *name
175
176 void
177 serv_join_chat(con, components)
178 Gaim::Connection con
179 SV * components
180 INIT:
181 HV * t_HV;
182 HE * t_HE;
183 SV * t_SV;
184 GHashTable * t_GHash;
185 int i;
186 I32 len;
187 char *t_key, *t_value;
188 CODE:
189 t_HV = (HV *)SvRV(components);
190 t_GHash = g_hash_table_new(NULL, NULL);
191
192 for (t_HE = hv_iternext(t_HV); t_HE != NULL; t_HE = hv_iternext(t_HV) ) {
193 t_key = hv_iterkey(t_HE, &len);
194 t_SV = *hv_fetch(t_HV, t_key, len, 0);
195 t_value = SvPV(t_SV, PL_na);
196
197 g_hash_table_insert(t_GHash, t_key, t_value);
198 }
199 serv_join_chat(con, t_GHash);
200
201 void
202 serv_move_buddy(buddy, group1, group2)
203 Gaim::BuddyList::Buddy buddy
204 Gaim::BuddyList::Group group1
205 Gaim::BuddyList::Group group2
206
207 void
208 serv_reject_chat(con, components)
209 Gaim::Connection con
210 SV * components
211 INIT:
212 HV * t_HV;
213 HE * t_HE;
214 SV * t_SV;
215 GHashTable * t_GHash;
216 int i;
217 I32 len;
218 char *t_key, *t_value;
219 CODE:
220 t_HV = (HV *)SvRV(components);
221 t_GHash = g_hash_table_new(NULL, NULL);
222
223 for (t_HE = hv_iternext(t_HV); t_HE != NULL; t_HE = hv_iternext(t_HV) ) {
224 t_key = hv_iterkey(t_HE, &len);
225 t_SV = *hv_fetch(t_HV, t_key, len, 0);
226 t_value = SvPV(t_SV, PL_na);
227
228 g_hash_table_insert(t_GHash, t_key, t_value);
229 }
230 serv_reject_chat(con, t_GHash);
231
232 void
233 serv_rem_deny(con, a)
234 Gaim::Connection con
235 const char * a
236
237 void
238 serv_rem_permit(con, a)
239 Gaim::Connection con
240 const char * a
241
242 void
243 serv_remove_buddies(con, A, B)
244 Gaim::Connection con
245 SV * A
246 SV * B
247 PREINIT:
248 GList *t_GL1, *t_GL2;
249 int i, t_len;
250 PPCODE:
251 t_GL1 = NULL;
252 t_len = av_len((AV *)SvRV(A));
253
254 for (i = 0; i < t_len; i++) {
255 STRLEN t_sl;
256 t_GL1 = g_list_append(t_GL1, SvPV(*av_fetch((AV *)SvRV(A), i, 0), t_sl));
257 }
258
259 t_GL2 = NULL;
260 t_len = av_len((AV *)SvRV(B));
261
262 for (i = 0; i < t_len; i++) {
263 STRLEN t_sl;
264 t_GL2 = g_list_append(t_GL2, SvPV(*av_fetch((AV *)SvRV(B), i, 0), t_sl));
265 }
266 serv_remove_buddies(con, t_GL1, t_GL2);
267
268 void
269 serv_remove_buddy(con, buddy, group)
270 Gaim::Connection con
271 Gaim::BuddyList::Buddy buddy
272 Gaim::BuddyList::Group group
273
274 void
275 serv_remove_group(con, group)
276 Gaim::Connection con
277 Gaim::BuddyList::Group group
278
279 void
280 serv_send_file(gc, who, file)
281 Gaim::Connection gc
282 const char *who
283 const char *file
284
285 int
286 serv_send_im(con, a, b, flags )
287 Gaim::Connection con
288 const char * a
289 const char * b
290 Gaim::ConvImFlags flags
291
292 int
293 serv_send_typing(con, a, b)
294 Gaim::Connection con
295 const char * a
296 int b
297
298 void
299 serv_set_buddyicon(gc, filename)
300 Gaim::Connection gc
301 const char *filename
302
303 void
304 serv_set_dir(con, a, b, c,d,e,f,g,h)
305 Gaim::Connection con
306 const char * a
307 const char * b
308 const char * c
309 const char * d
310 const char * e
311 const char * f
312 const char * g
313 int h
314
315 void
316 serv_set_idle(con, a)
317 Gaim::Connection con
318 int a
319
320 void
321 serv_set_info(con, a)
322 Gaim::Connection con
323 const char * a
324
325 void
326 serv_set_permit_deny(con)
327 Gaim::Connection con
328
329 void
330 serv_touch_idle(con)
331 Gaim::Connection con
332
333 void
334 serv_warn(con, a, b)
335 Gaim::Connection con
336 const char * a
337 gboolean b
338

mercurial