Thu, 17 Aug 2006 07:44:52 +0000
[gaim-migrate @ 16811]
Split the DNS query stuff out into it's own file. Eventually
we should move the dnssrv code into this same file. Maybe
even share some code?
Also the first steps toward cancelable DNS queries.
| 5872 | 1 | /** |
| 2 | * @file server.h Server API | |
| 3 | * @ingroup core | |
| 4 | * | |
| 5 | * gaim | |
| 6 | * | |
| 8046 | 7 | * Gaim is the legal property of its developers, whose names are too numerous |
| 8 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 | * source distribution. | |
|
6787
7d8e0ba98f68
[gaim-migrate @ 7326]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
10 | * |
| 5872 | 11 | * This program is free software; you can redistribute it and/or modify |
| 12 | * it under the terms of the GNU General Public License as published by | |
| 13 | * the Free Software Foundation; either version 2 of the License, or | |
| 14 | * (at your option) any later version. | |
| 15 | * | |
| 16 | * This program is distributed in the hope that it will be useful, | |
| 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 | * GNU General Public License for more details. | |
| 20 | * | |
| 21 | * You should have received a copy of the GNU General Public License | |
| 22 | * along with this program; if not, write to the Free Software | |
| 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 24 | */ | |
| 25 | #ifndef _GAIM_SERVER_H_ | |
| 26 | #define _GAIM_SERVER_H_ | |
| 27 | ||
| 28 | #include "account.h" | |
| 29 | #include "conversation.h" | |
|
9718
aeee69c6c784
[gaim-migrate @ 10579]
Mark Doliner <markdoliner@pidgin.im>
parents:
9584
diff
changeset
|
30 | #include "prpl.h" |
| 5872 | 31 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
32 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
33 | extern "C" { |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
34 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
35 | |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
36 | /** |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
37 | * Send a typing message to a given user over a given connection. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
38 | * |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
39 | * TODO: Could probably move this into the conversation API. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
40 | * |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
41 | * @param typing One of GAIM_TYPING, GAIM_TYPED, or GAIM_NOT_TYPING. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
42 | * @return A quiet-period, specified in seconds, where Gaim will not |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
43 | * send any additional typing notification messages. Most |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
44 | * protocols should return 0, which means that no additional |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
45 | * GAIM_TYPING messages need to be sent. If this is 5, for |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
46 | * example, then Gaim will wait five seconds, and if the Gaim |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
47 | * user is still typing then Gaim will send another GAIM_TYPING |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
48 | * message. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
49 | */ |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
50 | unsigned int serv_send_typing(GaimConnection *gc, const char *name, GaimTypingState state); |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
51 | |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
52 | void serv_move_buddy(GaimBuddy *, GaimGroup *, GaimGroup *); |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12024
diff
changeset
|
53 | int serv_send_im(GaimConnection *, const char *, const char *, GaimMessageFlags flags); |
|
6059
9934c862ca14
[gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents:
5954
diff
changeset
|
54 | void serv_get_info(GaimConnection *, const char *); |
|
5954
58e43cf2dc1f
[gaim-migrate @ 6398]
Mark Doliner <markdoliner@pidgin.im>
parents:
5944
diff
changeset
|
55 | void serv_set_info(GaimConnection *, const char *); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
56 | |
| 5872 | 57 | void serv_add_permit(GaimConnection *, const char *); |
| 58 | void serv_add_deny(GaimConnection *, const char *); | |
| 59 | void serv_rem_permit(GaimConnection *, const char *); | |
| 60 | void serv_rem_deny(GaimConnection *, const char *); | |
| 61 | void serv_set_permit_deny(GaimConnection *); | |
| 62 | void serv_join_chat(GaimConnection *, GHashTable *); | |
|
8562
7e73676d1772
[gaim-migrate @ 9306]
Christopher O'Brien <siege@pidgin.im>
parents:
8046
diff
changeset
|
63 | void serv_reject_chat(GaimConnection *, GHashTable *); |
| 5872 | 64 | void serv_chat_invite(GaimConnection *, int, const char *, const char *); |
| 65 | void serv_chat_leave(GaimConnection *, int); | |
|
6059
9934c862ca14
[gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents:
5954
diff
changeset
|
66 | void serv_chat_whisper(GaimConnection *, int, const char *, const char *); |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12024
diff
changeset
|
67 | int serv_chat_send(GaimConnection *, int, const char *, GaimMessageFlags flags); |
| 6695 | 68 | void serv_alias_buddy(GaimBuddy *); |
| 5872 | 69 | void serv_got_alias(GaimConnection *gc, const char *who, const char *alias); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
70 | |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
71 | /** |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
72 | * Receive a typing message from a remote user. Either GAIM_TYPING |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
73 | * or GAIM_TYPED. If the user has stopped typing then use |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
74 | * serv_got_typing_stopped instead. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
75 | * |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
76 | * TODO: Could probably move this into the conversation API. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
77 | * |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
78 | * @param timeout If this is a number greater than 0, then |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
79 | * Gaim will wait this number of seconds and then |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
80 | * set this buddy to the GAIM_NOT_TYPING state. This |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
81 | * is used by protocols that send repeated typing messages |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
82 | * while the user is composing the message. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
83 | */ |
| 5872 | 84 | void serv_got_typing(GaimConnection *gc, const char *name, int timeout, |
| 85 | GaimTypingState state); | |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
86 | |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
87 | /** |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
88 | * TODO: Could probably move this into the conversation API. |
|
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
89 | */ |
| 5872 | 90 | void serv_got_typing_stopped(GaimConnection *gc, const char *name); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
91 | |
| 5872 | 92 | void serv_got_im(GaimConnection *gc, const char *who, const char *msg, |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12024
diff
changeset
|
93 | GaimMessageFlags flags, time_t mtime); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13295
diff
changeset
|
94 | void serv_set_buddyicon(GaimConnection *gc, const char *filename); |
| 5872 | 95 | void serv_got_chat_invite(GaimConnection *gc, const char *name, |
| 96 | const char *who, const char *message, | |
| 97 | GHashTable *data); | |
| 98 | GaimConversation *serv_got_joined_chat(GaimConnection *gc, | |
| 99 | int id, const char *name); | |
| 100 | void serv_got_chat_left(GaimConnection *g, int id); | |
|
6059
9934c862ca14
[gaim-migrate @ 6509]
John Silvestri <john.silvestri@gmail.com>
parents:
5954
diff
changeset
|
101 | void serv_got_chat_in(GaimConnection *g, int id, const char *who, |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12024
diff
changeset
|
102 | GaimMessageFlags flags, const char *message, time_t mtime); |
|
9466
b6425eab60ca
[gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents:
9285
diff
changeset
|
103 | void serv_send_file(GaimConnection *gc, const char *who, const char *file); |
| 5872 | 104 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
105 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
106 | } |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
107 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
108 | |
| 5872 | 109 | #endif /* _GAIM_SERVER_H_ */ |