mirror of
https://github.com/emqx/neuron.git
synced 2026-10-17 04:40:42 +08:00
119 lines
5.9 KiB
C
119 lines
5.9 KiB
C
/**
|
|
* NEURON IIoT System for Industry 4.0
|
|
* Copyright (C) 2020-2022 EMQ Technologies Co., Ltd All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
**/
|
|
|
|
#ifndef _NEU_MANAGER_INTERNAL_H_
|
|
#define _NEU_MANAGER_INTERNAL_H_
|
|
|
|
#include <nng/nng.h>
|
|
#include <nng/supplemental/util/platform.h>
|
|
|
|
#include "event/event.h"
|
|
#include "persist/persist.h"
|
|
|
|
#include "node_manager.h"
|
|
#include "plugin_manager.h"
|
|
#include "subscribe.h"
|
|
#include "template_manager.h"
|
|
|
|
typedef struct neu_manager {
|
|
nng_socket socket;
|
|
neu_events_t * events;
|
|
neu_event_io_t *loop;
|
|
|
|
neu_plugin_manager_t * plugin_manager;
|
|
neu_node_manager_t * node_manager;
|
|
neu_subscribe_mgr_t * subscribe_manager;
|
|
neu_template_manager_t *template_manager;
|
|
|
|
neu_event_timer_t *timer_timestamp;
|
|
|
|
neu_event_timer_t *timer_lev;
|
|
int64_t timestamp_lev_manager;
|
|
} neu_manager_t;
|
|
|
|
int neu_manager_add_plugin(neu_manager_t *manager, const char *library);
|
|
int neu_manager_del_plugin(neu_manager_t *manager, const char *plugin);
|
|
UT_array *neu_manager_get_plugins(neu_manager_t *manager);
|
|
|
|
int neu_manager_add_node(neu_manager_t *manager, const char *node_name,
|
|
const char * plugin_name,
|
|
neu_node_running_state_e state, bool load);
|
|
int neu_manager_del_node(neu_manager_t *manager, const char *node_name);
|
|
UT_array *neu_manager_get_nodes(neu_manager_t *manager, int type,
|
|
const char *plugin, const char *node);
|
|
int neu_manager_update_node_name(neu_manager_t *manager, const char *node,
|
|
const char *new_name);
|
|
|
|
int neu_manager_add_template(neu_manager_t *manager, const char *name,
|
|
const char *plugin, uint16_t n_group,
|
|
neu_reqresp_template_group_t *groups);
|
|
int neu_manager_del_template(neu_manager_t *manager, const char *name);
|
|
void neu_manager_clear_template(neu_manager_t *manager);
|
|
int neu_manager_get_template(neu_manager_t *manager, const char *name,
|
|
neu_resp_get_template_t *resp);
|
|
int neu_manager_get_templates(neu_manager_t * manager,
|
|
neu_resp_get_templates_t *resp);
|
|
int neu_manager_add_template_group(neu_manager_t *manager,
|
|
const char *tmpl_name, const char *group,
|
|
uint32_t interval);
|
|
int neu_manager_update_template_group(neu_manager_t * manager,
|
|
neu_req_update_template_group_t *req);
|
|
int neu_manager_del_template_group(neu_manager_t * manager,
|
|
neu_req_del_template_group_t *req);
|
|
int neu_manager_get_template_group(neu_manager_t * manager,
|
|
neu_req_get_template_group_t *req,
|
|
UT_array ** group_info_p);
|
|
int neu_manager_add_template_tags(neu_manager_t *manager, const char *tmpl_name,
|
|
const char *group, uint16_t n_tag,
|
|
neu_datatag_t *tags, uint16_t *index_p);
|
|
int neu_manager_update_template_tags(neu_manager_t * manager,
|
|
neu_req_add_template_tag_t *req,
|
|
uint16_t * index_p);
|
|
int neu_manager_del_template_tags(neu_manager_t * manager,
|
|
neu_req_del_template_tag_t *req);
|
|
int neu_manager_get_template_tags(neu_manager_t * manager,
|
|
neu_req_get_template_tag_t *req,
|
|
UT_array ** tags_p);
|
|
int neu_manager_instantiate_template(neu_manager_t * manager,
|
|
neu_req_inst_template_t *req);
|
|
|
|
UT_array *neu_manager_get_driver_group(neu_manager_t *manager);
|
|
|
|
int neu_manager_subscribe(neu_manager_t *manager, const char *app,
|
|
const char *driver, const char *group,
|
|
const char *params);
|
|
int neu_manager_send_subscribe(neu_manager_t *manager, const char *app,
|
|
const char *driver, const char *group,
|
|
const char *params);
|
|
int neu_manager_unsubscribe(neu_manager_t *manager, const char *app,
|
|
const char *driver, const char *group);
|
|
UT_array *neu_manager_get_sub_group(neu_manager_t *manager, const char *app);
|
|
UT_array *neu_manager_get_sub_group_deep_copy(neu_manager_t *manager,
|
|
const char * app);
|
|
int neu_manager_add_ndriver_map(neu_manager_t *manager, const char *ndriver,
|
|
const char *driver, const char *group);
|
|
int neu_manager_del_ndriver_map(neu_manager_t *manager, const char *ndriver,
|
|
const char *driver, const char *group);
|
|
int neu_manager_get_ndriver_maps(neu_manager_t *manager, const char *ndriver,
|
|
UT_array **result);
|
|
|
|
int neu_manager_get_node_info(neu_manager_t *manager, const char *name,
|
|
neu_persist_node_info_t *info);
|
|
#endif
|