ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/include/pmodule.h
(Generate patch)

Comparing ermyth/include/pmodule.h (file contents):
Revision 1.2 by pippijn, Sat Jul 21 01:29:07 2007 UTC vs.
Revision 1.3 by pippijn, Tue Aug 28 17:08:07 2007 UTC

1/* 1/*
2 * Copyright © 2005 William Pitcock, et al. 2 * Copyright © 2005 William Pitcock, et al.
3 * Rights to this code are as documented in doc/pod/license.pod. 3 * Rights to this code are as documented in doc/pod/license.pod.
4 * 4 *
5 * Protocol module stuff. 5 * Protocol module stuff.
6 * Modules usually do not need this. 6 * Modules usually do not need this.
7 * 7 *
8 * $Id: pmodule.h,v 1.2 2007/07/21 01:29:07 pippijn Exp $ 8 * $Id: pmodule.h,v 1.3 2007/08/28 17:08:07 pippijn Exp $
9 */ 9 */
10 10
11#ifndef PMODULE_H 11#ifndef PMODULE_H
12#define PMODULE_H 12#define PMODULE_H
13 13
14struct pcommand_t 14struct pcommand_t
15{ 15{
16 char *token; 16 char const *token;
17 void (*handler) (sourceinfo_t *si, int parc, char *parv[]); 17 void (*handler) (sourceinfo_t *si, int parc, char *parv[]);
18 int minparc; 18 int minparc;
19 int sourcetype; 19 int sourcetype;
20}; 20};
21 21
24#define MSRC_USER 2 /* from users */ 24#define MSRC_USER 2 /* from users */
25#define MSRC_SERVER 4 /* from servers */ 25#define MSRC_SERVER 4 /* from servers */
26 26
27#define MAXPARC 35 /* max # params to protocol command */ 27#define MAXPARC 35 /* max # params to protocol command */
28 28
29/* pmodule.c */ 29E void pcommand_add (pcommand_t const &pcmd);
30E BlockHeap *pcommand_heap; 30E void pcommand_delete (pcommand_t const &pcmd);
31E BlockHeap *messagetree_heap; 31E pcommand_t const *pcommand_find (char const * const token);
32E dictionary_tree_t *pcommands;
33 32
34E bool pmodule_loaded; 33template<int N>
34inline void
35pcommand_add (pcommand_t const (*pcmd)[N])
36{
37 for (int i = 0; i < N; i++)
38 pcommand_add ((*pcmd)[i]);
39}
35 40
36E void pcommand_init (void); 41template<int N>
37E void pcommand_add (char *token, void (*handler) (sourceinfo_t *si, int parc, char *parv[]), int minparc, int sourcetype); 42inline void
38E void pcommand_delete (char *token); 43pcommand_delete (pcommand_t const (*pcmd)[N])
39E pcommand_t *pcommand_find (char *token); 44{
45 for (int i = 0; i < N; i++)
46 pcommand_delete ((*pcmd)[i]);
47}
40 48
41/* ptasks.c */ 49/* ptasks.c */
42E void handle_version (user_t *); 50E void handle_version (user_t *u);
43E void handle_admin (user_t *); 51E void handle_admin (user_t *u);
44E void handle_info (user_t *); 52E void handle_info (user_t *u);
45E void handle_stats (user_t *, char); 53E void handle_stats (user_t *u, char req);
46E void handle_whois (user_t *, char *); 54E void handle_whois (user_t *u, char *target);
47E void handle_trace (user_t *, char *, char *); 55E void handle_trace (user_t *u, char *target, char *dest);
48E void handle_motd (user_t *); 56E void handle_motd (user_t *u);
49E void handle_away (user_t *, const char *); 57E void handle_away (user_t *u, char const * const message);
50E void handle_message (sourceinfo_t *, char *, bool, char *); 58E void handle_message (sourceinfo_t *si, char *target, bool is_notice, char *message);
51E void handle_topic_from (sourceinfo_t *, channel_t *, char *, time_t, char *); 59E void handle_topic_from (sourceinfo_t *si, channel_t *c, char const * const setter, time_t ts, char const * const topic);
60// This is in services.h
61//E void handle_topic (channel_t *c, char *setter, time_t ts, char *topic);
52E void handle_kill (sourceinfo_t *, char *, char const *); 62E void handle_kill (sourceinfo_t *si, char *victim, char const *reason);
53E server_t *handle_server (sourceinfo_t *, const char *, const char *, int, const char *); 63E server_t *handle_server (sourceinfo_t *si, char const * const name, char const * const sid, int hops, char const * const desc);
54E void handle_eob (server_t *); 64E void handle_eob (server_t *s);
55E bool should_reg_umode (user_t *); 65E bool should_reg_umode (user_t *u);
56 66
57/* services.c */ 67/* services.c */
58E void services_init (void); 68E void services_init (void);
59E void reintroduce_user (user_t *u); 69E void reintroduce_user (user_t *u);
60E void handle_nickchange (user_t *u); 70E void handle_nickchange (user_t *u);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines