Added entry locking using read/write locks.
[silc.git] / lib / silcclient / client_entry.h
1 /*
2
3   client_entry.h
4
5   Author: Pekka Riikonen <priikone@silcnet.org>
6
7   Copyright (C) 2006 - 2007 Pekka Riikonen
8
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; version 2 of the License.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18 */
19
20 #ifndef CLIENT_ENTRY_H
21 #define CLIENT_ENTRY_H
22
23 SilcClientEntry silc_client_add_client(SilcClient client,
24                                        SilcClientConnection conn,
25                                        char *nickname, char *username,
26                                        char *userinfo, SilcClientID *id,
27                                        SilcUInt32 mode);
28 void silc_client_update_client(SilcClient client,
29                                SilcClientConnection conn,
30                                SilcClientEntry client_entry,
31                                const char *nickname,
32                                const char *username,
33                                const char *userinfo,
34                                SilcUInt32 mode);
35 SilcBool silc_client_change_nickname(SilcClient client,
36                                      SilcClientConnection conn,
37                                      SilcClientEntry client_entry,
38                                      const char *new_nick,
39                                      SilcClientID *new_id,
40                                      const unsigned char *idp,
41                                      SilcUInt32 idp_len);
42 void silc_client_del_client_entry(SilcClient client,
43                                   SilcClientConnection conn,
44                                   SilcClientEntry client_entry);
45 SilcBool silc_client_del_client(SilcClient client, SilcClientConnection conn,
46                                 SilcClientEntry client_entry);
47 SilcClientEntry silc_idlist_get_client(SilcClient client,
48                                        SilcClientConnection conn,
49                                        const char *nickname,
50                                        const char *format,
51                                        bool query);
52 SilcChannelEntry silc_client_add_channel(SilcClient client,
53                                          SilcClientConnection conn,
54                                          const char *channel_name,
55                                          SilcUInt32 mode,
56                                          SilcChannelID *channel_id);
57 SilcBool silc_client_del_channel(SilcClient client, SilcClientConnection conn,
58                                  SilcChannelEntry channel);
59 bool silc_client_replace_channel_id(SilcClient client,
60                                     SilcClientConnection conn,
61                                     SilcChannelEntry channel,
62                                     SilcChannelID *new_id);
63 SilcServerEntry silc_client_add_server(SilcClient client,
64                                        SilcClientConnection conn,
65                                        const char *server_name,
66                                        const char *server_info,
67                                        SilcServerID *server_id);
68 void silc_client_update_server(SilcClient client,
69                                SilcClientConnection conn,
70                                SilcServerEntry server_entry,
71                                const char *server_name,
72                                const char *server_info);
73 SilcBool silc_client_del_server(SilcClient client, SilcClientConnection conn,
74                                 SilcServerEntry server);
75 SilcBool silc_client_nickname_parse(SilcClient client,
76                                     SilcClientConnection conn,
77                                     char *nickname,
78                                     char **ret_nick);
79
80 #endif /* CLIENT_ENTRY_H */