美文网首页
主备配置

主备配置

作者: 遇银 | 来源:发表于2021-06-17 10:09 被阅读0次

#define  CFG_NUM_MAX    100 //配置最大数目

typedef struct
{

}module_run_cfg_s; //配置存储结构体

static u32 gs_module_run_used[CFG_NUM_MAX]; //主备标识
static module_run_cfg_s gs_module_run_info[2][CFG_NUM_MAX];

/* 获取运行时配置 */
module_run_cfg_s *module_get_run_time_cfg(u32 cfg_id)
{
    u32 used_id;
    module_run_cfg_s *run_time_cfg = NULL;

    //cfg_id校验
    if(cfg_id > CFG_NUM_MAX)
    {
        return NULL;
    }

    used_id = gs_module_run_used[cfg_id];
    run_time_cfg = gs_module_run_info[used_id][cfg_id];
    
    return run_time_cfg;
}

/* 更新运行时配置,参数结构体用户自定义 */
s32 module_update_run_time_cfg(module_run_cfg_s *cfg_data)
{
    s32 ret = 0;
    u32 backup_id;
    module_run_cfg_s *backup_cfg = NULL;
    u32 cfg_id = cfg_data->id;
    
    backup_id = !gs_module_run_used[cfg_id];
    backup_cfg = gs_module_run_info[backup_id][cfg_id];

    /* 更新操作 */

    /* 备切换成主 */
    gs_module_run_used[cfg_id] = backup_id;

    return ret;
}

相关文章

网友评论

      本文标题:主备配置

      本文链接:https://www.haomeiwen.com/subject/vqoqyltx.html