#ifndef __DR_COMMON_H
#define __DR_COMMON_H

/***************HEADER FILES****************/
#include <string.h>
#include <syslog.h>
#include "ipc_session.h"
#include "lnxall_list.h"
#include "dy_utils/dy_common.h"
#include "dy_utils/dy_pp.h"
#include "dy_utils/dy_db.h"
#include "dy_utils/dy_ipc.h"
/******************************************/

#define PERIOD_TIMER_INTERVAL     (1 * 1000)     ///周期上报检查时间间隔

#define MAX_VDEV_CNT 100

typedef struct
{
    struct list_head list;
	tag_table_t tag;
    object_property_table_t *poutput;///<位号指针数组
}rtd_data_list_t;

typedef struct _vdev_var_s
{
    ipc_session_t* session; //内部broker的MQTT session，用于进程间通信
    nodes_cfg_table_t *nodes_cfg_table; //节点信息
    nodes_cfg_table_t *virtual_cfg; //虚拟设备配置表
    dy_db_session_t* db_session; //用于操作DB的会话
    int period_timer; //周期上报用的timer
    char sn_str[SN_MAX_LEN];
    char proc_name[PROGRAM_NAME_LEN];
} vdev_var_t;

extern int vdev_handle_mqtt_data(vdev_var_t *var, ipc_msg_t *mqtt_msg);
extern void *db_loop(void *param);
extern int vdev_report_property(vdev_var_t *var);
extern int db_tag_report_select_data(vdev_var_t *var);
#endif
