|
reSIProcate/stack
9694
|
00001 /* C++ code produced by gperf version 3.0.4 */ 00002 /* Command-line: gperf -C -D -E -L C++ -t -k '*' --compare-strncmp --ignore-case -Z ParameterHash ParameterHash.gperf */ 00003 00004 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ 00005 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ 00006 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ 00007 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ 00008 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ 00009 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ 00010 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ 00011 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ 00012 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ 00013 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ 00014 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ 00015 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ 00016 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ 00017 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ 00018 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ 00019 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ 00020 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ 00021 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ 00022 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ 00023 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ 00024 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ 00025 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ 00026 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) 00027 /* The character set is not based on ISO-646. */ 00028 #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." 00029 #endif 00030 00031 #line 1 "ParameterHash.gperf" 00032 00033 #include <string.h> 00034 #include <ctype.h> 00035 #include "resip/stack/ParameterTypes.hxx" 00036 namespace resip { 00037 using namespace std; 00038 #line 8 "ParameterHash.gperf" 00039 struct params { const char *name; ParameterTypes::Type type; }; 00040 /* maximum key range = 266, duplicates = 0 */ 00041 00042 #ifndef GPERF_DOWNCASE 00043 #define GPERF_DOWNCASE 1 00044 static unsigned char gperf_downcase[256] = 00045 { 00046 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 00047 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 00048 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 00049 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 00050 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 00051 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 00052 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 00053 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 00054 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 00055 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 00056 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 00057 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 00058 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 00059 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 00060 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 00061 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 00062 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 00063 255 00064 }; 00065 #endif 00066 00067 #ifndef GPERF_CASE_STRNCMP 00068 #define GPERF_CASE_STRNCMP 1 00069 static int 00070 gperf_case_strncmp (register const char *s1, register const char *s2, register unsigned int n) 00071 { 00072 for (; n > 0;) 00073 { 00074 unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; 00075 unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; 00076 if (c1 != 0 && c1 == c2) 00077 { 00078 n--; 00079 continue; 00080 } 00081 return (int)c1 - (int)c2; 00082 } 00083 return 0; 00084 } 00085 #endif 00086 00087 class ParameterHash 00088 { 00089 private: 00090 static inline unsigned int hash (const char *str, unsigned int len); 00091 public: 00092 static const struct params *in_word_set (const char *str, unsigned int len); 00093 }; 00094 00095 inline unsigned int 00096 ParameterHash::hash (register const char *str, register unsigned int len) 00097 { 00098 static const unsigned short asso_values[] = 00099 { 00100 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00101 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00102 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00103 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00104 268, 268, 268, 0, 268, 40, 0, 268, 268, 268, 00105 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00106 268, 268, 268, 268, 268, 0, 25, 0, 15, 0, 00107 15, 35, 75, 10, 268, 10, 0, 25, 5, 5, 00108 5, 45, 0, 0, 0, 40, 85, 5, 65, 65, 00109 40, 268, 268, 268, 268, 268, 268, 0, 25, 0, 00110 15, 0, 15, 35, 75, 10, 268, 10, 0, 25, 00111 5, 5, 5, 45, 0, 0, 0, 40, 85, 5, 00112 65, 65, 40, 268, 268, 268, 268, 268, 268, 268, 00113 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00114 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00115 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00116 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00117 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00118 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00119 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00120 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00121 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00122 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00123 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00124 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 00125 268, 268, 268, 268, 268, 268 00126 }; 00127 register int hval = len; 00128 00129 switch (hval) 00130 { 00131 default: 00132 hval += asso_values[(unsigned char)str[12]]; 00133 /*FALLTHROUGH*/ 00134 case 12: 00135 hval += asso_values[(unsigned char)str[11]]; 00136 /*FALLTHROUGH*/ 00137 case 11: 00138 hval += asso_values[(unsigned char)str[10]]; 00139 /*FALLTHROUGH*/ 00140 case 10: 00141 hval += asso_values[(unsigned char)str[9]]; 00142 /*FALLTHROUGH*/ 00143 case 9: 00144 hval += asso_values[(unsigned char)str[8]]; 00145 /*FALLTHROUGH*/ 00146 case 8: 00147 hval += asso_values[(unsigned char)str[7]]; 00148 /*FALLTHROUGH*/ 00149 case 7: 00150 hval += asso_values[(unsigned char)str[6]]; 00151 /*FALLTHROUGH*/ 00152 case 6: 00153 hval += asso_values[(unsigned char)str[5]]; 00154 /*FALLTHROUGH*/ 00155 case 5: 00156 hval += asso_values[(unsigned char)str[4]]; 00157 /*FALLTHROUGH*/ 00158 case 4: 00159 hval += asso_values[(unsigned char)str[3]]; 00160 /*FALLTHROUGH*/ 00161 case 3: 00162 hval += asso_values[(unsigned char)str[2]]; 00163 /*FALLTHROUGH*/ 00164 case 2: 00165 hval += asso_values[(unsigned char)str[1]]; 00166 /*FALLTHROUGH*/ 00167 case 1: 00168 hval += asso_values[(unsigned char)str[0]]; 00169 break; 00170 } 00171 return hval; 00172 } 00173 00174 const struct params * 00175 ParameterHash::in_word_set (register const char *str, register unsigned int len) 00176 { 00177 enum 00178 { 00179 TOTAL_KEYWORDS = 89, 00180 MIN_WORD_LENGTH = 1, 00181 MAX_WORD_LENGTH = 13, 00182 MIN_HASH_VALUE = 2, 00183 MAX_HASH_VALUE = 267 00184 }; 00185 00186 static const struct params wordlist[] = 00187 { 00188 #line 39 "ParameterHash.gperf" 00189 {"lr", ParameterTypes::lr}, 00190 #line 37 "ParameterHash.gperf" 00191 {"ttl", ParameterTypes::ttl}, 00192 #line 63 "ParameterHash.gperf" 00193 {"stale", ParameterTypes::stale}, 00194 #line 59 "ParameterHash.gperf" 00195 {"nc", ParameterTypes::nc}, 00196 #line 23 "ParameterHash.gperf" 00197 {"actor", ParameterTypes::actor}, 00198 #line 82 "ParameterHash.gperf" 00199 {"site", ParameterTypes::site}, 00200 #line 53 "ParameterHash.gperf" 00201 {"rport", ParameterTypes::rport}, 00202 #line 70 "ParameterHash.gperf" 00203 {"reason", ParameterTypes::reason}, 00204 #line 10 "ParameterHash.gperf" 00205 {"data", ParameterTypes::data}, 00206 #line 58 "ParameterHash.gperf" 00207 {"nonce", ParameterTypes::nonce}, 00208 #line 55 "ParameterHash.gperf" 00209 {"cnonce", ParameterTypes::cnonce}, 00210 #line 11 "ParameterHash.gperf" 00211 {"control", ParameterTypes::control}, 00212 #line 62 "ParameterHash.gperf" 00213 {"response", ParameterTypes::response}, 00214 #line 33 "ParameterHash.gperf" 00215 {"transport", ParameterTypes::transport}, 00216 #line 57 "ParameterHash.gperf" 00217 {"id", ParameterTypes::id}, 00218 #line 76 "ParameterHash.gperf" 00219 {"protocol", ParameterTypes::protocol}, 00220 #line 51 "ParameterHash.gperf" 00221 {"rinstance", ParameterTypes::rinstance}, 00222 #line 61 "ParameterHash.gperf" 00223 {"realm", ParameterTypes::realm}, 00224 #line 28 "ParameterHash.gperf" 00225 {"ob", ParameterTypes::ob}, 00226 #line 32 "ParameterHash.gperf" 00227 {"name", ParameterTypes::name}, 00228 #line 29 "ParameterHash.gperf" 00229 {"gr", ParameterTypes::gr}, 00230 #line 47 "ParameterHash.gperf" 00231 {"tag", ParameterTypes::tag}, 00232 #line 52 "ParameterHash.gperf" 00233 {"comp", ParameterTypes::comp}, 00234 #line 96 "ParameterHash.gperf" 00235 {"url", ParameterTypes::url}, 00236 #line 34 "ParameterHash.gperf" 00237 {"user", ParameterTypes::user}, 00238 #line 40 "ParameterHash.gperf" 00239 {"q", ParameterTypes::q}, 00240 #line 26 "ParameterHash.gperf" 00241 {"+sip.instance", ParameterTypes::Instance}, 00242 #line 84 "ParameterHash.gperf" 00243 {"mode", ParameterTypes::mode}, 00244 #line 90 "ParameterHash.gperf" 00245 {"model", ParameterTypes::model}, 00246 #line 18 "ParameterHash.gperf" 00247 {"application", ParameterTypes::application}, 00248 #line 68 "ParameterHash.gperf" 00249 {"uri", ParameterTypes::uri}, 00250 #line 80 "ParameterHash.gperf" 00251 {"size", ParameterTypes::size}, 00252 #line 98 "ParameterHash.gperf" 00253 {"addtransport", ParameterTypes::addTransport}, 00254 #line 67 "ParameterHash.gperf" 00255 {"qop", ParameterTypes::qop}, 00256 #line 38 "ParameterHash.gperf" 00257 {"maddr", ParameterTypes::maddr}, 00258 #line 13 "ParameterHash.gperf" 00259 {"description", ParameterTypes::description}, 00260 #line 41 "ParameterHash.gperf" 00261 {"purpose", ParameterTypes::purpose}, 00262 #line 75 "ParameterHash.gperf" 00263 {"filename", ParameterTypes::filename}, 00264 #line 56 "ParameterHash.gperf" 00265 {"domain", ParameterTypes::domain}, 00266 #line 35 "ParameterHash.gperf" 00267 {"ext", ParameterTypes::extension}, 00268 #line 24 "ParameterHash.gperf" 00269 {"text", ParameterTypes::text}, 00270 #line 81 "ParameterHash.gperf" 00271 {"permission", ParameterTypes::permission}, 00272 #line 21 "ParameterHash.gperf" 00273 {"type", ParameterTypes::type}, 00274 #line 77 "ParameterHash.gperf" 00275 {"micalg", ParameterTypes::micalg}, 00276 #line 22 "ParameterHash.gperf" 00277 {"isfocus", ParameterTypes::isFocus}, 00278 #line 64 "ParameterHash.gperf" 00279 {"username", ParameterTypes::username}, 00280 #line 94 "ParameterHash.gperf" 00281 {"app-id", ParameterTypes::appId}, 00282 #line 86 "ParameterHash.gperf" 00283 {"charset", ParameterTypes::charset}, 00284 #line 44 "ParameterHash.gperf" 00285 {"duration", ParameterTypes::duration}, 00286 #line 42 "ParameterHash.gperf" 00287 {"to-tag", ParameterTypes::toTag}, 00288 #line 45 "ParameterHash.gperf" 00289 {"expires", ParameterTypes::expires}, 00290 #line 85 "ParameterHash.gperf" 00291 {"server", ParameterTypes::server}, 00292 #line 71 "ParameterHash.gperf" 00293 {"d-alg", ParameterTypes::dAlg}, 00294 #line 14 "ParameterHash.gperf" 00295 {"events", ParameterTypes::events}, 00296 #line 93 "ParameterHash.gperf" 00297 {"document", ParameterTypes::document}, 00298 #line 66 "ParameterHash.gperf" 00299 {"refresher", ParameterTypes::refresher}, 00300 #line 25 "ParameterHash.gperf" 00301 {"extensions", ParameterTypes::extensions}, 00302 #line 60 "ParameterHash.gperf" 00303 {"opaque", ParameterTypes::opaque}, 00304 #line 50 "ParameterHash.gperf" 00305 {"require", ParameterTypes::require}, 00306 #line 15 "ParameterHash.gperf" 00307 {"priority", ParameterTypes::priority}, 00308 #line 83 "ParameterHash.gperf" 00309 {"directory", ParameterTypes::directory}, 00310 #line 27 "ParameterHash.gperf" 00311 {"reg-id", ParameterTypes::regid}, 00312 #line 17 "ParameterHash.gperf" 00313 {"schemes", ParameterTypes::schemes}, 00314 #line 79 "ParameterHash.gperf" 00315 {"expiration", ParameterTypes::expiration}, 00316 #line 48 "ParameterHash.gperf" 00317 {"branch", ParameterTypes::branch}, 00318 #line 91 "ParameterHash.gperf" 00319 {"version", ParameterTypes::version}, 00320 #line 72 "ParameterHash.gperf" 00321 {"d-qop", ParameterTypes::dQop}, 00322 #line 89 "ParameterHash.gperf" 00323 {"vendor", ParameterTypes::vendor}, 00324 #line 95 "ParameterHash.gperf" 00325 {"network-user", ParameterTypes::networkUser}, 00326 #line 49 "ParameterHash.gperf" 00327 {"received", ParameterTypes::received}, 00328 #line 19 "ParameterHash.gperf" 00329 {"video", ParameterTypes::video}, 00330 #line 87 "ParameterHash.gperf" 00331 {"access-type", ParameterTypes::accessType}, 00332 #line 20 "ParameterHash.gperf" 00333 {"language", ParameterTypes::language}, 00334 #line 36 "ParameterHash.gperf" 00335 {"method", ParameterTypes::method}, 00336 #line 16 "ParameterHash.gperf" 00337 {"methods", ParameterTypes::methods}, 00338 #line 43 "ParameterHash.gperf" 00339 {"from-tag", ParameterTypes::fromTag}, 00340 #line 69 "ParameterHash.gperf" 00341 {"retry-after", ParameterTypes::retryAfter}, 00342 #line 73 "ParameterHash.gperf" 00343 {"d-ver", ParameterTypes::dVer}, 00344 #line 12 "ParameterHash.gperf" 00345 {"mobility", ParameterTypes::mobility}, 00346 #line 46 "ParameterHash.gperf" 00347 {"handling", ParameterTypes::handling}, 00348 #line 97 "ParameterHash.gperf" 00349 {"sigcomp-id", ParameterTypes::sigcompId}, 00350 #line 88 "ParameterHash.gperf" 00351 {"profile-type", ParameterTypes::profileType}, 00352 #line 54 "ParameterHash.gperf" 00353 {"algorithm", ParameterTypes::algorithm}, 00354 #line 78 "ParameterHash.gperf" 00355 {"boundary", ParameterTypes::boundary}, 00356 #line 74 "ParameterHash.gperf" 00357 {"smime-type", ParameterTypes::smimeType}, 00358 #line 65 "ParameterHash.gperf" 00359 {"early-only", ParameterTypes::earlyOnly}, 00360 #line 31 "ParameterHash.gperf" 00361 {"temp-gruu", ParameterTypes::tempGruu}, 00362 #line 30 "ParameterHash.gperf" 00363 {"pub-gruu", ParameterTypes::pubGruu}, 00364 #line 92 "ParameterHash.gperf" 00365 {"effective-by", ParameterTypes::effectiveBy} 00366 }; 00367 00368 static const signed char lookup[] = 00369 { 00370 -1, -1, 0, 1, -1, 2, -1, 3, -1, -1, 4, -1, -1, -1, 00371 5, 6, 7, -1, -1, 8, 9, 10, 11, 12, 13, -1, -1, 14, 00372 15, 16, 17, -1, 18, -1, 19, -1, -1, 20, 21, 22, -1, -1, 00373 -1, 23, 24, -1, 25, -1, 26, 27, 28, 29, -1, 30, 31, -1, 00374 -1, 32, 33, -1, 34, 35, 36, 37, -1, -1, 38, -1, 39, 40, 00375 41, -1, -1, -1, 42, -1, 43, 44, 45, -1, -1, 46, 47, 48, 00376 -1, -1, 49, 50, -1, -1, -1, 51, -1, -1, -1, 52, 53, -1, 00377 54, 55, 56, 57, 58, 59, 60, -1, 61, 62, -1, -1, 63, 64, 00378 65, -1, -1, 66, 67, 68, 69, -1, 70, 71, -1, 72, -1, -1, 00379 73, 74, 75, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, 00380 -1, -1, -1, -1, -1, 77, -1, -1, 78, -1, -1, -1, -1, 79, 00381 -1, 80, -1, 81, -1, 82, -1, -1, -1, 83, -1, -1, -1, -1, 00382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, 00383 -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, 86, -1, 00384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 00385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 00386 -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 00387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 00388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 00389 -1, 88 00390 }; 00391 00392 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) 00393 { 00394 register int key = hash (str, len); 00395 00396 if (key <= MAX_HASH_VALUE && key >= 0) 00397 { 00398 register int index = lookup[key]; 00399 00400 if (index >= 0) 00401 { 00402 register const char *s = wordlist[index].name; 00403 00404 if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0') 00405 return &wordlist[index]; 00406 } 00407 } 00408 } 00409 return 0; 00410 } 00411 #line 99 "ParameterHash.gperf" 00412 00413 }
1.7.5.1