annotate doc/examples/template-plugin.cpp @ 757:97b356010785

Irccd: create (command|jsapi)::registry Make two list of constructor functions to initialize all command and all Javascript modules to avoid duplicating efforts in case of change. While here, update test fixtures to load all of them for simplicity.
author David Demelier <markand@malikania.fr>
date Mon, 06 Aug 2018 21:27:00 +0200
parents 6635b9187d71
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * This example file show how to fill irccd callbacks for a native plugin.
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * All of the defined callbacks are optional and may be removed.
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
6
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 #include <iostream>
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
8
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
9 #include <irccd/plugin-dynlib.hpp> // (in irccd_onReload, irccd_onLoad and irccd_onUnload)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 #include <irccd/server.hpp>
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
11 #include <irccd/util.hpp> // for util::join (in irccd_onNames)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
12
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 using namespace irccd;
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 extern "C" {
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
16
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 /* --- onCommand ---------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 void irccd_onCommand(Irccd &,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
20 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
21 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
22 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
23 const std::string &message)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
25 std::cout << "onCommand: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
26 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
27 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
28 << ", message=" << message << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 /* --- onConnect ---------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 void irccd_onConnect(Irccd &, const std::shared_ptr<Server> &server)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
35 std::cout << "onConnect: server=" << server->name() << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 /* --- onChannelMode ------------------------------------------------ */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 void irccd_onChannelMode(Irccd &,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
41 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
42 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
43 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
44 const std::string &mode,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
45 const std::string &arg)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
47 std::cout << "onChannelMode: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
48 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
49 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
50 << ", mode=" << mode
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
51 << ", arg=" << arg << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 /* --- onChannelNotice ---------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 void irccd_onChannelNotice(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
57 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
58 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
59 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
60 const std::string &notice)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
62 std::cout << "onChannelNotice: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
63 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
64 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
65 << ", notice=" << notice << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 /* --- onInvite ----------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 void irccd_onInvite(Irccd &irccd, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &channel)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
72 std::cout << "onInvite: server=" << server->name() << ", origin=" << origin << ", channel=" << channel << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 /* --- onJoin ------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 void irccd_onJoin(Irccd &irccd, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &channel)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
79 std::cout << "onJoin: server=" << server->name() << ", origin=" << origin << ", channel=" << channel << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
81
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 /* --- onKick ------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 void irccd_onKick(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
85 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
86 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
87 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
88 const std::string &target,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
89 const std::string &reason)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
91 std::cout << "onKick: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
92 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
93 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
94 << ", target=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
95 << ", reason=" << reason << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
97
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 /* --- onLoad ------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
99
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 void irccd_onLoad(Irccd &, DynlibPlugin &plugin)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
102 std::cout << "onLoad: plugin=" << plugin.name() << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
104
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 /* --- onMessage ---------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 void irccd_onMessage(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
108 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
109 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
110 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
111 const std::string &message)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
113 std::cout << "onMessage: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
114 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
115 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
116 << ", message=" << message << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 /* --- onMe --------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 void irccd_onMe(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
122 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
123 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
124 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
125 const std::string &message)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
127 std::cout << "onMe: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
128 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
129 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
130 << ", message=" << message << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 /* --- onMode ------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 void irccd_onMode(Irccd &irccd, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &mode)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
137 std::cout << "onMode: server=" << server->name() << ", origin=" << origin << ", mode=" << mode << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
139
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 /* --- onNames ------------------------------------------------------ */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 void irccd_onNames(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
143 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
144 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
145 const std::vector<std::string> &list)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
147 std::cout << "onNames: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
148 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
149 << ", list=" << util::join(list.begin(), list.end(), ", ") << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
151
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 /* --- onNick ------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
153
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 void irccd_onNick(Irccd &irccd, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &nick)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
156 std::cout << "onNick: server=" << server->name() << ", origin=" << origin << ", nick=" << nick << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
158
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 /* --- onNotice ----------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
160
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 void irccd_onNotice(Irccd &irccd, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &notice)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
163 std::cout << "onNotice: server=" << server->name() << ", origin=" << origin << ", notice=" << notice << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 /* --- onPart ------------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
167
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 void irccd_onPart(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
169 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
170 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
171 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
172 const std::string &reason)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
174 std::cout << "onPart: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
175 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
176 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
177 << ", reason=" << reason << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
179
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 /* --- onQuery ------------------------------------------------------ */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
181
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 void irccd_onQuery(Irccd &, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &message)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
184 std::cout << "onQuery: server=" << server->name() << ", origin=" << origin << ", message=" << message << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
186
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 /* --- onQueryCommand ----------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
188
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 void irccd_onQueryCommand(Irccd &, const std::shared_ptr<Server> &server, const std::string &origin, const std::string &message)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
191 std::cout << "onQueryCommand: server=" << server->name() << ", origin=" << origin << ", message=" << message << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
193
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 /* --- onReload ----------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
195
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 void irccd_onReload(Irccd &irccd, DynlibPlugin &plugin)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
198 std::cout << "onReload: plugin=" << plugin.name() << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
200
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 /* --- onTopic ------------------------------------------------------ */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
202
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 void irccd_onTopic(Irccd &irccd,
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
204 const std::shared_ptr<Server> &server,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
205 const std::string &origin,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
206 const std::string &channel,
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
207 const std::string &topic)
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
209 std::cout << "onTopic: server=" << server->name()
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
210 << ", origin=" << origin
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
211 << ", channel=" << channel
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
212 << ", topic=" << topic << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 /* --- onUnload ----------------------------------------------------- */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
216
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 void irccd_onUnload(Irccd &irccd, DynlibPlugin &plugin)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
219 std::cout << "onUnload: plugin=" << plugin.name() << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
221
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 /* --- onWhois ------------------------------------------------------ */
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
223
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 void irccd_onWhois(Irccd &irccd, const std::shared_ptr<Server> &server, const ServerWhois &info)
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 {
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 136
diff changeset
226 std::cout << "onWhois: server=" << server->name() << ", info-for=" << info.nick << std::endl;
136
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 }
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
228
01df93b56dde Irccd: implement native plugins, #502
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 } // !C