提交 d1051ecb 编写于 作者: C cheng_jinsong

add interface for cached parameter

Signed-off-by: Ncheng_jinsong <chengjinsong2@huawei.com>
上级 7b4fa5ae
......@@ -86,6 +86,7 @@ CachedHandle CachedParameterCreate(const char *name, const char *defValue);
*
*/
const char *CachedParameterGet(CachedHandle handle);
const char *CachedParameterGetChanged(CachedHandle handle, int *changed);
/**
* 外部接口
......
......@@ -69,13 +69,13 @@ static LE_STATUS HandleRecvMsg_(const LoopHandle loopHandle,
}
}
if (status != LE_SUCCESS) {
FreeBuffer(loopHandle, (StreamTask *)taskHandle, buffer);
FreeBuffer(loopHandle, NULL, buffer);
return status;
}
if (recvMessage) {
recvMessage(taskHandle, buffer->data, readLen);
}
FreeBuffer(loopHandle, (StreamTask *)taskHandle, buffer);
FreeBuffer(loopHandle, NULL, buffer);
return status;
}
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册