]> jfr.im git - irc/quakenet/newserv.git/blame - chanstats/chanstats.h
A4STATS: remove E style escapes and switch to createtable for indices
[irc/quakenet/newserv.git] / chanstats / chanstats.h
CommitLineData
c86edd1d
Q
1
2#ifndef __CHANSTATS_H
3#define __CHANSTATS_H
4
5#include <time.h>
6#include "../lib/sstring.h"
7#include "../channel/channel.h"
8#include "../parser/parser.h"
9
10#define SAVEINTERVAL 3600
11#define SAMPLEINTERVAL 360
12#define SAMPLEHISTORY 10
13#define HISTORYDAYS 14
14
15/* The main stats structure. Everything except the "lastsamples" array needs to be saved/restored */
16
17typedef struct chanstats {
18 chanindex *index; /* Channel index pointer */
19 unsigned short lastdays[HISTORYDAYS]; /* Average user counts for the last 14 days, stored as (average users * 10) */
20 unsigned char lastdaysamples[HISTORYDAYS]; /* Number of samples taken on each of the last 14 days */
21 unsigned short lastmax[HISTORYDAYS]; /* Max users seen on each of the last 14 days */
22 unsigned short lastsamples[SAMPLEHISTORY]; /* Number of users for the last 10 samples (i.e. 1 hour) */
23 unsigned char todaysamples; /* Number of samples taken today */
24 unsigned int todayusers; /* Total of all of today's samples */
25 unsigned short todaymax; /* Max users seen today */
26 time_t lastsampled; /* When this channel was last sampled */
27 struct chanstats *nextsorted; /* Next channel in sorted order */
28} chanstats;
29
30/* These sample counts need to be saved and restored */
31extern unsigned int totaltodaysamples;
32extern unsigned int totallastdaysamples[HISTORYDAYS];
33
34extern int csext;
35
36extern int uponehour;
37extern unsigned int lastdaysamples[HISTORYDAYS];
38extern unsigned int todaysamples;
39
d941751f 40extern time_t chanstats_lastsample;
c86edd1d
Q
41
42/* chanstatshash.c */
43chanstats *findchanstats(const char *channame);
44chanstats *findchanstatsifexists(const char *channame);
45
46/* chanstatsalloc.c */
47void cstsfreeall();
c86edd1d
Q
48chanstats *getchanstats();
49void freechanstats(chanstats *csp);
50
51/* chansearch.c */
52void initchansearch();
53void finichansearch();
54void regchansearchfunc(const char *name, int args, CommandHandler handler);
55void unregchansearchfunc(const char *name, CommandHandler handler);
56int dochansearch(void *source, int cargc, char **cargv);
57
58#endif