/*
* ----------------------------------------------------------------
* Night Light IRC Proxy - Channel Mode Header
* ----------------------------------------------------------------
* Copyright (C) 1997-2007 Jonas Kvinge <jonas@night-light.net>
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Last modified by:
* Jonas Kvinge (25.11.2007)
*
*/
#ifdef CHAN_MODE_H
#warning "chan_mode.h already included."
#else
#define CHAN_MODE_H
#define CHANMODE_PRIOHIGHEST 0
#define CHANMODE_PRIOHIGH 1
#define CHANMODE_PRIOMEDIUM 2
#define CHANMODE_PRIOLOW 3
#define CHANMODE_PRIOLOWEST 4
#define CHANMODEFLUSHMODESTIME 3
#define CHANMODEEXPIRESENTMODESTIME 3
#define CHANMODESENTMODETTL 15
#define CHANMODEPRIOMODE CHANMODE_PRIOHIGHEST
#define CHANMODEPRIOVOICE CHANMODE_PRIOHIGHEST
#define CHANMODEPRIODEVOICE CHANMODE_PRIOHIGHEST
#define CHANMODEPRIOOP CHANMODE_PRIOHIGHEST
#define CHANMODEPRIODEOP CHANMODE_PRIOHIGHEST
#define CHANMODEPRIOBAN CHANMODE_PRIOHIGHEST
#define CHANMODEPRIOUNBAN CHANMODE_PRIOHIGHEST
/* STRUCTURES - JONAS (31.07.2001) */
struct ChanMode_Struct {
char *Mode;
time_t Time;
unsigned short int Priority;
unsigned short int Delay;
unsigned short int Flushed;
struct ChanMode_Struct *Prev;
struct ChanMode_Struct *Next;
};
struct ChanSentMode_Struct {
char *Mode;
time_t Time;
struct ChanSentMode_Struct *Prev;
struct ChanSentMode_Struct *Next;
};
/* FUNCTION PROTOTYPES - JONAS (31.07.2001) */
struct ChanMode_Struct *chan_addmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, const char *const ModePT, const unsigned short int Priority, const unsigned short int Delay);
void chan_remmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, struct ChanMode_Struct *ChanMode);
struct ChanMode_Struct *chan_getmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, const char *const ModePT);
void chan_initmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, struct ChanMode_Struct *ChanMode);
void chan_destroymodes(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS);
struct ChanSentMode_Struct *chan_addsentmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, const char *const ModePT);
void chan_remsentmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, struct ChanSentMode_Struct *ChanSentMode);
struct ChanSentMode_Struct *chan_getsentmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, const char *const ModePT);
void chan_initsentmode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, struct ChanSentMode_Struct *ChanSentMode);
void chan_destroysentmodes(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS);
void chan_expiresentmodes(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS);
signed short int chan_mode(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS, const char *const ModePT, const unsigned short int Priority, const unsigned short int Delay);
void chan_flushmodes(struct Conn_Struct *ConnS, struct Chan_Struct *ChanS);
#endif
syntax highlighted by Code2HTML, v. 0.9.1