annotate tests/src/libirccd/dynlib-plugin/test_plugin.cpp @ 773:8c44bbcbbab9

Misc: style, cleanup and update
author David Demelier <markand@malikania.fr>
date Fri, 26 Oct 2018 13:01:00 +0200
parents 9d13aabfd63a
children ca16ca53c347
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test_plugin.cpp -- basic exported plugin test
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
628
27587ff92a64 Misc: update copyrights
David Demelier <markand@malikania.fr>
parents: 611
diff changeset
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <boost/dll.hpp>
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
604
9d4da384f5d6 Tests: move libirccd-test to test/ folder, closes #750
David Demelier <markand@malikania.fr>
parents: 583
diff changeset
21 #include <irccd/daemon/plugin.hpp>
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 namespace irccd {
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 class test_plugin : public plugin {
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
26 private:
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
27 map config_;
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
28
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 public:
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
30 test_plugin()
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
31 : plugin("test")
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
32 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
33 }
731
9d13aabfd63a Irccd: plugin now have internal id
David Demelier <markand@malikania.fr>
parents: 722
diff changeset
34
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
35 auto get_options() const -> map override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
36 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
37 return config_;
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
38 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
40 auto get_name() const noexcept -> std::string_view override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
41 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
42 return "test";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
43 }
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
44
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
45 void handle_command(irccd&, const message_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
46 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
47 config_["command"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
48 }
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
49
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
50 void handle_connect(irccd&, const connect_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
51 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
52 config_["connect"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
53 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
55 void handle_invite(irccd&, const invite_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
56 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
57 config_["invite"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
58 }
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
59
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
60 void handle_join(irccd&, const join_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
61 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
62 config_["join"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
63 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
65 void handle_kick(irccd&, const kick_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
66 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
67 config_["kick"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
68 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
70 void handle_load(irccd&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
71 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
72 config_["load"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
73 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
75 void handle_message(irccd&, const message_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
76 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
77 config_["message"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
78 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
80 void handle_me(irccd&, const me_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
81 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
82 config_["me"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
83 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
85 void handle_mode(irccd&, const mode_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
86 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
87 config_["mode"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
88 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
90 void handle_names(irccd&, const names_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
91 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
92 config_["names"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
93 }
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
94
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
95 void handle_nick(irccd&, const nick_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
96 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
97 config_["nick"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
98 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
99
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
100 void handle_notice(irccd&, const notice_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
101 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
102 config_["notice"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
103 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
104
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
105 void handle_part(irccd&, const part_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
106 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
107 config_["part"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
108 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
110 void handle_reload(irccd&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
111 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
112 config_["reload"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
113 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
115 void handle_topic(irccd&, const topic_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
116 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
117 config_["topic"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
118 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
120 void handle_unload(irccd&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
121 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
122 config_["unload"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
123 }
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
124
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
125 void handle_whois(irccd&, const whois_event&) override
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
126 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
127 config_["whois"] = "true";
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
128 }
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 707
diff changeset
129
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
130 static auto abi() -> version
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
131 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
132 return version();
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
133 }
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 707
diff changeset
134
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
135 static auto init(std::string) -> std::unique_ptr<plugin>
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
136 {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
137 return std::make_unique<test_plugin>();
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 731
diff changeset
138 }
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 };
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 707
diff changeset
141 BOOST_DLL_ALIAS(test_plugin::abi, irccd_abi_test_plugin)
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 707
diff changeset
142 BOOST_DLL_ALIAS(test_plugin::init, irccd_init_test_plugin)
500
458e34f16c1f Irccd: rework native plugins, closes #707
David Demelier <markand@malikania.fr>
parents:
diff changeset
143
684
8d93e415c3b4 Irccd: load directly native plugin instead of wrapping it, closes #790 @1h
David Demelier <markand@malikania.fr>
parents: 636
diff changeset
144 } // !irccd