0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-29 05:48:44 +02:00
construct/ircd
Jason Volk 9d0a959bb5 MAPI IV. This iteration leverages the C++11 standardized RTTI.
* Simplifies the export declarations for module developers. While
MAPI III utilized a flexible key-value vector to eliminate positional
arguments in a header initializer, now the developer simply makes
a list of pointers to what they want to export for injection into
IRCd. Example:

mapi::header IRCD_MODULE
{
	"mymod",
	"My module adds a command, a hook, and a CLICAP",
	&my_cmdtab,
	&some_hook,
	&clicaptab
};

* Distributes the handlers for items passed to the above vector.
Anyone can add a type-handler to the module system from anywhere in IRCd
(and other modules?) When your type is encountered a handler is called
providing the symbol name to read out of the module. Example in parser.cc:

mods::add_loader<Message>([]
(mod &loading, const std::string &symbol)
{
	auto &msg(get<Message>(loading, symbol));
	add_command(msg.name, msg);
});
2016-09-09 16:17:01 -07:00
..
.gitignore Complete the C++ linkage with flex/bison. 2016-07-25 00:54:38 -07:00
authproc.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
bandbi.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
cache.cc ircd::cache: Convert send function arguments client* -> client& 2016-08-25 04:57:23 -07:00
cache_serv.cc Refactor scache. 2016-08-25 02:07:11 -07:00
capability.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
channel.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
chmode.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
class.cc Refactor client flags. 2016-08-23 05:22:38 -07:00
client.cc Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
client_mode.cc Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
client_serv.h Refactor scache. 2016-08-25 02:07:11 -07:00
client_user.h ircd::client: Split client. 2016-08-25 02:07:11 -07:00
dns.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
exception.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
extban.cc Preliminary Client refactor. 2016-08-22 15:56:12 -07:00
fs.cc MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
getopt.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
hash.cc Refactor client flags. 2016-08-23 05:22:38 -07:00
hook.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
info.cc ircd: Improve/refactor version.cc -> info.cc related. 2016-08-20 19:30:34 -07:00
ircd.cc MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
ircd_lexer.ll Fix redundant/conflicting namespace labels. 2016-08-20 19:30:33 -07:00
ircd_parser.yy MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
ircd_signal.cc Refactor logger. 2016-09-09 16:17:00 -07:00
listener.cc Refactor logger. 2016-09-09 16:17:00 -07:00
logger.cc Refactor logger. 2016-09-09 16:17:00 -07:00
Makefile.am Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
mask.cc ircd: Rename hostmask to mask; add pretty_mask() from chmode. 2016-08-27 20:57:36 -07:00
match.cc Updates to match utilities. 2016-08-20 19:30:34 -07:00
mods_mod.h MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
modules.cc MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
monitor.cc Preliminary Client refactor. 2016-08-22 15:56:12 -07:00
msgbuf.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
newconf.cc MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
operhash.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
packet.cc Refactor umodes. 2016-08-23 15:25:09 -07:00
parse.cc MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
privilege.cc Preliminary Client refactor. 2016-08-22 15:56:12 -07:00
ratelimit.cc Refactor client flags. 2016-08-23 05:22:38 -07:00
reject.cc Preliminary Client refactor. 2016-08-22 15:56:12 -07:00
restart.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
rfc1459.cc Add rfc1459:: case compliance namespace. 2016-08-20 19:30:34 -07:00
s_conf.cc MAPI IV. This iteration leverages the C++11 standardized RTTI. 2016-09-09 16:17:01 -07:00
s_newconf.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
s_serv.cc ircd: Reuse umode template code here and there. 2016-09-09 16:17:01 -07:00
s_user.cc ircd: Reuse umode template code here and there. 2016-09-09 16:17:01 -07:00
send.cc Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
snomask.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
sslproc.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
stringops.cc ircd: Deinline stringops.h 2016-08-27 20:57:36 -07:00
substitution.cc Precompile and remove most include directives. Notes: 2016-08-20 19:30:33 -07:00
supported.cc Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
tgchange.cc Refactor snomask. 2016-08-28 01:48:25 -07:00
whowas.cc Refactor whowas. 2016-08-25 02:34:28 -07:00
wsproc.cc Refactor snomask. 2016-08-28 01:48:25 -07:00