Added SILC Thread Queue API
[crypto.git] / lib / silcclient / client_channel.h
1 /*
2
3   client_channel.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_CHANNEL_H
21 #define CLIENT_CHANNEL_H
22
23 SILC_FSM_STATE(silc_client_channel_message);
24 SILC_FSM_STATE(silc_client_channel_message_error);
25 SILC_FSM_STATE(silc_client_channel_key);
26
27 SilcBool silc_client_save_channel_key(SilcClient client,
28                                       SilcClientConnection conn,
29                                       SilcBuffer key_payload,
30                                       SilcChannelEntry channel);
31 SilcChannelUser silc_client_on_channel(SilcChannelEntry channel,
32                                        SilcClientEntry client_entry);
33 SilcBool silc_client_add_to_channel(SilcClient client,
34                                     SilcClientConnection conn,
35                                     SilcChannelEntry channel,
36                                     SilcClientEntry client_entry,
37                                     SilcUInt32 cumode);
38 SilcBool silc_client_remove_from_channel(SilcClient client,
39                                          SilcClientConnection conn,
40                                          SilcChannelEntry channel,
41                                          SilcClientEntry client_entry);
42 void silc_client_remove_from_channels(SilcClient client,
43                                       SilcClientConnection conn,
44                                       SilcClientEntry client_entry);
45 void silc_client_empty_channel(SilcClient client,
46                                SilcClientConnection conn,
47                                SilcChannelEntry channel);
48 SilcBool silc_client_channel_save_public_keys(SilcChannelEntry channel,
49                                               unsigned char *chpk_list,
50                                               SilcUInt32 chpk_list_len,
51                                               SilcBool remove_all);
52
53 #endif /* CLIENT_CHANNEL_H */