未验证 提交 f8a2471c 编写于 作者: O openharmony_ci 提交者: Gitee

!1793 新增接口GetCachedParameter

Merge pull request !1793 from cheng_jinsong/init-cached
......@@ -86,6 +86,7 @@ CachedHandle CachedParameterCreate(const char *name, const char *defValue);
*
*/
const char *CachedParameterGet(CachedHandle handle);
const char *CachedParameterGetChanged(CachedHandle handle, int *changed);
/**
* 外部接口
......
......@@ -710,7 +710,7 @@ CachedHandle CachedParameterCreate(const char *name, const char *defValue)
return (CachedHandle)param;
}
STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param)
STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param, int *changed)
{
if (param->dataIndex == 0) {
// no change, do not to find
......@@ -737,7 +737,8 @@ STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param)
param->dataCommitId = dataCommitId;
int ret = ReadParamValue_(entry, &param->dataCommitId, param->paramValue, &length);
PARAM_CHECK(ret == 0, return NULL, "Failed to copy value %s", param->data);
PARAM_LOGI("CachedParameterCheck %u", param->dataCommitId);
PARAM_LOGV("CachedParameterCheck %u", param->dataCommitId);
*changed = 1;
return param->paramValue;
}
......@@ -745,7 +746,17 @@ const char *CachedParameterGet(CachedHandle handle)
{
CachedParameter *param = (CachedParameter *)handle;
PARAM_CHECK(param != NULL, return NULL, "Invalid handle");
return CachedParameterCheck(param);
int changed = 0;
return CachedParameterCheck(param, &changed);
}
const char *CachedParameterGetChanged(CachedHandle handle, int *changed)
{
CachedParameter *param = (CachedParameter *)handle;
PARAM_CHECK(param != NULL, return NULL, "Invalid handle");
PARAM_CHECK(changed != NULL, return NULL, "Invalid changed");
*changed = 0;
return CachedParameterCheck(param, changed);
}
void CachedParameterDestroy(CachedHandle handle)
......
......@@ -642,8 +642,10 @@ HWTEST_F(ParamUnitTest, TestParamCache, TestSize.Level0)
EXPECT_EQ(strcmp(value, "false"), 0);
ret = WriteParam(name, "2222222", &dataIndex, 0);
EXPECT_EQ(ret, 0);
value = CachedParameterGet(cacheHandle3);
int valueChange = 0;
value = CachedParameterGetChanged(cacheHandle3, &valueChange);
EXPECT_EQ(strcmp(value, "2222222"), 0);
EXPECT_EQ(valueChange, 1);
CachedParameterDestroy(cacheHandle3);
}
#ifdef PARAM_SUPPORT_SELINUX
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册