ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/include/pmodule.h
Revision: 1.4
Committed: Sun Sep 16 18:54:42 2007 UTC (16 years, 8 months ago) by pippijn
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +9 -5 lines
Log Message:
#defines to enum

File Contents

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