Example #1
0
int32 process_listener(json_t *req, listener_dest_t *listener, int32 mask)
{
	int8 *event_type = NULL;
	int8 *dest = NULL;
	int8 *context = NULL;
	int8 *protocol = NULL;
	int8 *name = NULL;
	int8 *description = NULL;
	json_t *elem = NULL;
	json_t *event_types = NULL;
	int32 array_size, i = 0;
	int32 rc = 0;

	context = json_string_value(json_object_get(req, RMM_JSON_CONTEXT));
	dest = json_string_value(json_object_get(req, RMM_JSON_DEST));
	protocol = json_string_value(json_object_get(req, RMM_JSON_PROTOCOL));
	event_types = json_object_get(req, RMM_JSON_RF_EVT_TYPES);
	name = json_string_value(json_object_get(req, RMM_JSON_RF_NAME));
	description = json_string_value(json_object_get(req, RMM_JSON_RF_DESC));

	if (!(context && dest && protocol && event_types)) {
		HTTPD_ERR("get json string error\n");
		return -1;
	}

	snprintf_s_s(listener->name, sizeof(listener->name), "%s", name);
	snprintf_s_s(listener->description, sizeof(listener->description), "%s", description);
	snprintf_s_s(listener->context, sizeof(listener->context), "%s", context);
	snprintf_s_s(listener->dest, sizeof(listener->dest), "%s", dest);
	snprintf_s_s(listener->protocol, sizeof(listener->protocol), "%s", protocol);
	listener->idx_mask = mask;

	array_size = json_array_size(event_types);

	if (is_event_types_valid(array_size, event_types) == -1)
		return -1;

	for (i = 0; i < array_size; i++) {
		elem = NULL;
		elem = json_array_get(event_types, i);
		if (elem == NULL) {
			HTTPD_ERR("get json array element error\n");
			return -1;
		}

		event_type = json_string_value(elem);
		if(event_type == NULL) {
			HTTPD_ERR("get json string  event error\n");
			return -1;
		}

		if (subscribe_event(listener, event_type) != 0)
			return -1;
	}

	return 0;
}
json_t *process_listener(json_t *req, listener_dest_t *listener, int32 mask, int32 node_type)
{
	int8 *action = NULL;
	int8 *event_type = NULL;
	int8 *dest = NULL;
	int8 *type = NULL;
	int8 *protocol = NULL;
	json_t *elem = NULL;
	json_t *event_types = NULL;
	json_t *obj = NULL;
	int32 array_size, i = 0;

	action = json_string_value(json_object_get(req, RMM_JSON_ACTION));
	type = json_string_value(json_object_get(req, RMM_JSON_TYPE));
	dest = json_string_value(json_object_get(req, RMM_JSON_DEST));
	protocol = json_string_value(json_object_get(req, RMM_JSON_PROTOCOL));
	event_types = json_object_get(req, RMM_JSON_RF_EVT_TYPES);


	if (!(action && type && dest && protocol && event_types)) {
		HTTPD_ERR("get json string error\n");
		return NULL;
	}

	snprintf(listener->type, sizeof(listener->type), "%s", type);
	snprintf(listener->dest, sizeof(listener->dest), "%s", dest);
	snprintf(listener->protocol, sizeof(listener->protocol), "%s", protocol);
	listener->idx_mask = mask;

	array_size = json_array_size(event_types);
	for (i = 0; i < array_size; i++) {
		elem = NULL;
		elem = json_array_get(event_types, i);
		if (elem == NULL) {
			HTTPD_ERR("get json array element error\n");
			return NULL;
		}

		if ((obj = json_object_get(elem, RMM_JSON_RF_EVT)) != NULL) {
			event_type = json_string_value(obj);
			if(event_type == NULL) {
				HTTPD_ERR("get json string  event error\n");
				return NULL;
			}
			if (0 == strcmp(action, "subscribe"))
				subscribe_event(listener, event_type, node_type);
			else if (0 == strcmp(action, "unsubscribe"))
				unsubscribe_event(listener, event_type, node_type);
		}
	}

	return NULL;
}
Example #3
0
int32_t fs_opr_t::subscribe_event_heartbeat() {
    return subscribe_event(EVENT_HEARTBEAT);
}
Example #4
0
int32_t fs_opr_t::subscribe_event_normal() {
    return subscribe_event(EVENT_NORMAL);
}