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

# Content
1 /**
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 * Copyright © 2005 William Pitcock, et al.
10 * Rights to this code are as documented in doc/pod/license.pod.
11 *
12 * $Id: pmodule.h,v 1.3 2007-08-28 17:08:07 pippijn Exp $
13 */
14
15 #ifndef PMODULE_H
16 #define PMODULE_H
17
18 struct pcommand_t
19 {
20 char const *token;
21 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 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
53 /* ptasks.c */
54 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
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