doubao_chat/lib/net/aliyun/dev_model/dm_opt.c

97 lines
2.1 KiB
C

/*
* Copyright (C) 2015-2018 Alibaba Group Holding Limited
*/
#include "iotx_dm_internal.h"
#if !defined(DEVICE_MODEL_RAWDATA_SOLO)
static dm_opt_ctx g_dm_opt = {
0, 0, 1, 1, 1
};
int dm_opt_set(dm_opt_t opt, void *data)
{
int res = SUCCESS_RETURN;
if (data == NULL) {
return FAIL_RETURN;
}
switch (opt) {
case DM_OPT_DOWNSTREAM_PROPERTY_POST_REPLY: {
int opt = *(int *)(data);
g_dm_opt.prop_post_reply_opt = opt;
}
break;
case DM_OPT_DOWNSTREAM_EVENT_POST_REPLY: {
int opt = *(int *)(data);
g_dm_opt.event_post_reply_opt = opt;
}
break;
case DM_OPT_UPSTREAM_PROPERTY_SET_REPLY: {
int opt = *(int *)(data);
g_dm_opt.prop_set_reply_opt = opt;
}
break;
#ifdef DEVICE_MODEL_SHADOW
case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_GET_REPLY: {
int opt = *(int *)(data);
g_dm_opt.prop_desired_get_reply_opt = opt;
}
break;
case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_DELETE_REPLY: {
int opt = *(int *)(data);
g_dm_opt.prop_desired_delete_reply_opt = opt;
}
break;
#endif
default: {
res = FAIL_RETURN;
}
break;
}
return res;
}
int dm_opt_get(dm_opt_t opt, void *data)
{
int res = SUCCESS_RETURN;
if (data == NULL) {
return FAIL_RETURN;
}
switch (opt) {
case DM_OPT_DOWNSTREAM_PROPERTY_POST_REPLY: {
*(int *)(data) = g_dm_opt.prop_post_reply_opt;
}
break;
case DM_OPT_DOWNSTREAM_EVENT_POST_REPLY: {
*(int *)(data) = g_dm_opt.event_post_reply_opt;
}
break;
case DM_OPT_UPSTREAM_PROPERTY_SET_REPLY: {
*(int *)(data) = g_dm_opt.prop_set_reply_opt;
}
break;
#ifdef DEVICE_MODEL_SHADOW
case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_DELETE_REPLY: {
*(int *)(data) = g_dm_opt.prop_desired_delete_reply_opt;
}
break;
case DM_OPT_DOWNSTREAM_EVENT_PROPERTY_DESIRED_GET_REPLY: {
*(int *)(data) = g_dm_opt.prop_desired_get_reply_opt;
}
break;
#endif
default: {
res = FAIL_RETURN;
}
break;
}
return res;
}
#endif