refactor: keys global const array

master
Sean McBride 3 years ago
parent 012c67457f
commit 64d67185f6

@ -16,6 +16,30 @@
#define JSON_TOKENS_CAPACITY 16384
enum
{
module_name,
module_path,
module_port,
module_expected_execution_us,
module_admissions_percentile,
module_relative_deadline_us,
module_http_req_size,
module_http_resp_size,
module_http_resp_content_type,
module_keys_len
};
static const char *module_keys[module_keys_len] = { "name",
"path",
"port",
"expected-execution-us",
"admissions-percentile",
"relative-deadline-us",
"http-req-size",
"http-resp-size",
"http-resp-content-type" };
static inline char *
jsmn_type(jsmntype_t type)
{
@ -208,53 +232,53 @@ parse_json(const char *json_buf, ssize_t json_buf_size, struct module_config **m
/* Advance to Value */
i++;
if (strcmp(key, "name") == 0) {
if (strcmp(key, module_keys[module_name]) == 0) {
if (!is_nonempty_string(tokens[i], key)) goto json_parse_err;
(*module_config_vec)[module_idx].name = strndup(json_buf + tokens[i].start,
tokens[i].end - tokens[i].start);
} else if (strcmp(key, "path") == 0) {
} else if (strcmp(key, module_keys[module_path]) == 0) {
if (!is_nonempty_string(tokens[i], key)) goto json_parse_err;
(*module_config_vec)[module_idx].path = strndup(json_buf + tokens[i].start,
tokens[i].end - tokens[i].start);
} else if (strcmp(key, "port") == 0) {
} else if (strcmp(key, module_keys[module_port]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_PRIMITIVE)) goto json_parse_err;
int rc = parse_uint16_t(tokens[i], json_buf, "port",
int rc = parse_uint16_t(tokens[i], json_buf, module_keys[module_port],
&(*module_config_vec)[module_idx].port);
if (rc < 0) goto json_parse_err;
} else if (strcmp(key, "expected-execution-us") == 0) {
} else if (strcmp(key, module_keys[module_expected_execution_us]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_PRIMITIVE)) goto json_parse_err;
int rc = parse_uint32_t(tokens[i], json_buf, "expected-execution-us",
int rc = parse_uint32_t(tokens[i], json_buf, module_keys[module_expected_execution_us],
&(*module_config_vec)[module_idx].expected_execution_us);
if (rc < 0) goto json_parse_err;
} else if (strcmp(key, "admissions-percentile") == 0) {
} else if (strcmp(key, module_keys[module_admissions_percentile]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_PRIMITIVE)) goto json_parse_err;
int rc = parse_uint8_t(tokens[i], json_buf, "admissions-percentile",
int rc = parse_uint8_t(tokens[i], json_buf, module_keys[module_admissions_percentile],
&(*module_config_vec)[module_idx].admissions_percentile);
if (rc < 0) goto json_parse_err;
} else if (strcmp(key, "relative-deadline-us") == 0) {
} else if (strcmp(key, module_keys[module_relative_deadline_us]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_PRIMITIVE)) goto json_parse_err;
int rc = parse_uint32_t(tokens[i], json_buf, "relative-deadline-us",
int rc = parse_uint32_t(tokens[i], json_buf, module_keys[module_relative_deadline_us],
&(*module_config_vec)[module_idx].relative_deadline_us);
if (rc < 0) goto json_parse_err;
} else if (strcmp(key, "http-req-size") == 0) {
} else if (strcmp(key, module_keys[module_http_req_size]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_PRIMITIVE)) goto json_parse_err;
int rc = parse_uint32_t(tokens[i], json_buf, "http-req-size",
int rc = parse_uint32_t(tokens[i], json_buf, module_keys[module_http_req_size],
&(*module_config_vec)[module_idx].http_req_size);
if (rc < 0) goto json_parse_err;
} else if (strcmp(key, "http-resp-size") == 0) {
} else if (strcmp(key, module_keys[module_http_resp_size]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_PRIMITIVE)) goto json_parse_err;
int rc = parse_uint32_t(tokens[i], json_buf, "http-resp-size",
int rc = parse_uint32_t(tokens[i], json_buf, module_keys[module_http_resp_size],
&(*module_config_vec)[module_idx].http_resp_size);
if (rc < 0) goto json_parse_err;
} else if (strcmp(key, "http-resp-content-type") == 0) {
} else if (strcmp(key, module_keys[module_http_resp_content_type]) == 0) {
if (!has_valid_type(tokens[i], key, JSMN_STRING)) goto json_parse_err;
(*module_config_vec)[module_idx].http_resp_content_type =

Loading…
Cancel
Save