Coverage Report

Created: 2026-02-13 06:31

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/resiprocate/resip/stack/gen/DayOfWeekHash.cxx
Line
Count
Source
1
/* C++ code produced by gperf version 3.1 */
2
/* Command-line: gperf -C -D -E -L C++ -t --key-positions='*' --compare-strncmp -Z DayOfWeekHash DayOfWeekHash.gperf  */
3
4
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
5
      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
6
      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
7
      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
8
      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
9
      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
10
      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
11
      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
12
      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
13
      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
14
      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
15
      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
16
      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
17
      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
18
      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
19
      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
20
      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
21
      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
22
      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
23
      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
24
      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
25
      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
26
      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
27
/* The character set is not based on ISO-646.  */
28
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
29
#endif
30
31
#line 1 "DayOfWeekHash.gperf"
32
33
#include <string.h>
34
#include <ctype.h>
35
#include "resip/stack/DateCategory.hxx"
36
37
namespace resip
38
{
39
#line 9 "DayOfWeekHash.gperf"
40
struct days { const char *name; DayOfWeek type; };
41
/* maximum key range = 16, duplicates = 0 */
42
43
class DayOfWeekHash
44
{
45
private:
46
  static inline unsigned int hash (const char *str, size_t len);
47
public:
48
  static const struct days *in_word_set (const char *str, size_t len);
49
};
50
51
inline unsigned int
52
DayOfWeekHash::hash (const char *str, size_t len)
53
42
{
54
42
  static const unsigned char asso_values[] =
55
42
    {
56
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
57
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
58
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
59
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
60
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
61
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
62
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
63
42
       2, 16, 16, 16, 16, 16, 16,  2, 16, 16,
64
42
      16, 16, 16,  0,  5, 16, 16,  2, 16, 16,
65
42
      16, 16, 16, 16, 16, 16, 16,  0, 16, 16,
66
42
       0,  5, 16, 16,  0,  5, 16, 16, 16, 16,
67
42
       0,  0, 16, 16,  5, 16,  0,  5, 16, 16,
68
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
69
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
70
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
71
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
72
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
73
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
74
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
75
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
76
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
77
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
78
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
79
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
80
42
      16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
81
42
      16, 16, 16, 16, 16, 16
82
42
    };
83
42
  return asso_values[static_cast<unsigned char>(str[2])] + asso_values[static_cast<unsigned char>(str[1])] + asso_values[static_cast<unsigned char>(str[0])];
84
42
}
85
86
const struct days *
87
DayOfWeekHash::in_word_set (const char *str, size_t len)
88
859
{
89
859
  enum
90
859
    {
91
859
      TOTAL_KEYWORDS = 7,
92
859
      MIN_WORD_LENGTH = 3,
93
859
      MAX_WORD_LENGTH = 3,
94
859
      MIN_HASH_VALUE = 0,
95
859
      MAX_HASH_VALUE = 15
96
859
    };
97
98
859
  static const struct days wordlist[] =
99
859
    {
100
859
#line 17 "DayOfWeekHash.gperf"
101
859
      {"Sat", Sat},
102
859
#line 12 "DayOfWeekHash.gperf"
103
859
      {"Mon", Mon},
104
859
#line 11 "DayOfWeekHash.gperf"
105
859
      {"Sun", Sun},
106
859
#line 14 "DayOfWeekHash.gperf"
107
859
      {"Wed", Wed},
108
859
#line 15 "DayOfWeekHash.gperf"
109
859
      {"Thu", Thu},
110
859
#line 16 "DayOfWeekHash.gperf"
111
859
      {"Fri", Fri},
112
859
#line 13 "DayOfWeekHash.gperf"
113
859
      {"Tue", Tue}
114
859
    };
115
116
859
  static const signed char lookup[] =
117
859
    {
118
859
       0, -1,  1, -1, -1,  2, -1,  3, -1, -1,  4, -1,  5, -1,
119
859
      -1,  6
120
859
    };
121
122
859
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
123
42
    {
124
42
      unsigned int key = hash (str, len);
125
126
42
      if (key <= MAX_HASH_VALUE)
127
20
        {
128
20
          int index = lookup[key];
129
130
20
          if (index >= 0)
131
19
            {
132
19
              const char *s = wordlist[index].name;
133
134
19
              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
135
1
                return &wordlist[index];
136
19
            }
137
20
        }
138
42
    }
139
858
  return 0;
140
859
}
141
#line 18 "DayOfWeekHash.gperf"
142
143
}