Mercurial > irccd
annotate man/libirccd-channel.3 @ 1201:67fa43998a91 default tip @
misc: update copyright years
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 04 Jan 2024 10:39:43 +0100 |
parents | 1845a0509a93 |
children |
rev | line source |
---|---|
1013
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 .\" |
1201
67fa43998a91
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
1183
diff
changeset
|
2 .\" Copyright (c) 2013-2024 David Demelier <markand@malikania.fr> |
1013
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 .\" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 .\" Permission to use, copy, modify, and/or distribute this software for any |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 .\" purpose with or without fee is hereby granted, provided that the above |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 .\" copyright notice and this permission notice appear in all copies. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 .\" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 .\" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 .Dd @IRCCD_MAN_DATE@ |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 .Dt LIBIRCCD-CHANNEL 3 |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 .Os |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 .\" NAME |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 .Sh NAME |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 .Nm libirccd-channel |
1137 | 22 .Nd channels and their users |
23 .\" SYNOPSIS | |
24 .Sh SYNOPSIS | |
25 .In irccd/channel.h | |
26 .Ft "struct irc_channel *" | |
27 .Fn irc_channel_new "const char *name, const char *password, int joined" | |
28 .Ft void | |
29 .Fn irc_channel_add "struct irc_channel *ch, const char *nickname, int modes" | |
30 .Ft "struct irc_channel_user *" | |
31 .Fn irc_channel_get "const struct irc_channel *ch, const char *nickname" | |
32 .Ft void | |
33 .Fn irc_channel_clear "struct irc_channel *ch" | |
34 .Ft void | |
35 .Fn irc_channel_remove "struct irc_channel *ch, const char *nickname" | |
36 .Ft void | |
37 .Fn irc_channel_finish "struct irc_channel *ch" | |
38 .\" DESCRIPTION | |
39 .Sh DESCRIPTION | |
40 This family of functions provides channel inspection and their associated | |
41 users. A channel consists of a set of users with their mode and a joined status. | |
42 The daemon tracks nickname changes, channel modes and joining status. | |
43 .Pp | |
44 The header exposes the following structures: | |
45 .Bd -literal | |
46 struct irc_channel_user { | |
47 char nickname[IRC_NICKNAME_LEN]; /* IRC nickname */ | |
48 int modes; /* Bitmask modes */ | |
49 struct irc_channel_user *next; /* next user */ | |
50 }; | |
51 .Ed | |
52 .Pp | |
53 This structure describe a user. | |
54 .Pp | |
55 The | |
56 .Va modes | |
57 field is a bitmask that contains all modes applied to a user in a channel. The | |
58 .Vt irc_server_params | |
59 struct (defined in | |
60 .In irccd/server.h ) | |
61 contains the array | |
62 .Va prefixes | |
63 which describes every mode and their character prefix. For example, if a user is | |
64 a channel operator and this prefix is the seconth in the | |
65 .Va prefixes | |
66 member, then the | |
67 .Va modes | |
68 field will be set to | |
69 .Em 0x2 . | |
70 .Bd -literal | |
71 struct irc_channel { | |
72 char name[IRC_CHANNEL_LEN]; /* channel name */ | |
73 char password[IRC_PASSWORD_LEN]; /* optional password */ | |
74 int joined; /* 1 if joined, 0 otherwise */ | |
75 struct irc_channel_user *users; /* linked list of users */ | |
76 struct irc_channel *next; /* next channel */ | |
77 }; | |
78 .Ed | |
79 .Pp | |
80 This structure describe a channel and its users. | |
81 .Pp | |
82 The | |
83 .Fn irc_channel_new | |
84 function dynamically allocates a channel using | |
85 .Ar name , | |
86 .Ar password | |
87 and its | |
88 .Ar joined | |
89 status. | |
90 .Pp | |
91 The | |
92 .Fn irc_channel_add | |
93 function appends a new user as | |
94 .Ar nickname | |
95 into the channel | |
96 .Ar ch | |
97 if it does not already exist. The | |
98 .Ar modes | |
99 argument contains the bitmask modes applied to this user. | |
100 .Pp | |
101 The | |
102 .Fn irc_channel_get | |
103 searches for | |
104 .Ar nickname | |
105 user in the channel | |
106 .Ar ch | |
107 and returns it, NULL if not found. | |
108 .Pp | |
109 The | |
110 .Fn irc_channel_clear | |
111 removes all users from the channel | |
112 .Ar ch . | |
113 .Pp | |
114 The | |
115 .Fn irc_channel_remove | |
116 function removes the user specified by | |
117 .Ar nickname | |
118 from the channel | |
119 .Ar ch . | |
120 .Pp | |
121 The | |
122 .Fn irc_channel_finish | |
123 function deallocates all memory from the channel | |
124 .Ar ch . | |
125 .\" SEE ALSO | |
126 .Sh SEE ALSO | |
127 .Xr libirccd 3 , | |
128 .Xr libirccd-irccd 3 , | |
129 .Xr libirccd-server 3 | |
130 .\" AUTHORS | |
131 .Sh AUTHORS | |
132 The | |
133 .Nm irccd | |
134 daemon was written by | |
135 .An David Demelier Aq Mt markand@malikania.fr . |