modules/ims_qos: added patch for flow-description bug when request originates from...
[sip-router] / src / core / flags.h
1 /*
2  * Copyright (C) 2001-2003 FhG Fokus
3  *
4  * This file is part of Kamailio, a free SIP server.
5  *
6  * Kamailio is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version
10  *
11  * Kamailio is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License 
17  * along with this program; if not, write to the Free Software 
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
19  */
20 /*!
21 * \file
22 * \brief Kamailio core :: Flag handling
23 * \ingroup core
24 * Module: \ref core
25 */
26
27
28
29 #ifndef _FLAGS_H
30 #define _FLAGS_H
31
32 enum { FL_WHITE=1, FL_YELLOW, FL_GREEN, FL_RED, FL_BLUE, FL_MAGENTA,
33            FL_BROWN, FL_BLACK, FL_ACC, FL_MAX };
34
35 typedef unsigned int flag_t;
36
37 #define MAX_FLAG  ((unsigned int)( sizeof(flag_t) * CHAR_BIT - 1 ))
38
39 struct sip_msg;
40
41 int setflag( struct sip_msg* msg, flag_t flag );
42 int resetflag( struct sip_msg* msg, flag_t flag );
43 int isflagset( struct sip_msg* msg, flag_t flag );
44
45
46 /* Script flag functions. Script flags are global flags that keep their
47  * value regardless of the SIP message being processed.
48  */
49
50 /* Set the value of all the global flags */
51 int setsflagsval(flag_t val);
52
53 /* Set the given flag to 1. Parameter flag contains the index of the flag */
54 int setsflag(flag_t flag);
55
56 /* Reset the given flag to 0. Parameter flag contains the index of the flag */
57 int resetsflag(flag_t flag);
58
59 /* Returns 1 if the given flag is set and -1 otherwise */
60 int issflagset(flag_t flag);
61
62 /* Get the value of all the script flags combined */
63 flag_t getsflags(void);
64
65 int flag_in_range( flag_t flag );
66
67 int register_flag(char* name, int pos);
68 int get_flag_no(char* name, int len);
69 int check_flag(int pos);
70 void init_named_flags(void);
71
72 #endif