提交 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); ...@@ -86,6 +86,7 @@ CachedHandle CachedParameterCreate(const char *name, const char *defValue);
* *
*/ */
const char *CachedParameterGet(CachedHandle handle); const char *CachedParameterGet(CachedHandle handle);
const char *CachedParameterGetChanged(CachedHandle handle, int *changed);
/** /**
* 外部接口 * 外部接口
......
...@@ -69,13 +69,13 @@ static LE_STATUS HandleRecvMsg_(const LoopHandle loopHandle, ...@@ -69,13 +69,13 @@ static LE_STATUS HandleRecvMsg_(const LoopHandle loopHandle,
} }
} }
if (status != LE_SUCCESS) { if (status != LE_SUCCESS) {
FreeBuffer(loopHandle, (StreamTask *)taskHandle, buffer); FreeBuffer(loopHandle, NULL, buffer);
return status; return status;
} }
if (recvMessage) { if (recvMessage) {
recvMessage(taskHandle, buffer->data, readLen); recvMessage(taskHandle, buffer->data, readLen);
} }
FreeBuffer(loopHandle, (StreamTask *)taskHandle, buffer); FreeBuffer(loopHandle, NULL, buffer);
return status; return status;
} }
......
...@@ -710,7 +710,7 @@ CachedHandle CachedParameterCreate(const char *name, const char *defValue) ...@@ -710,7 +710,7 @@ CachedHandle CachedParameterCreate(const char *name, const char *defValue)
return (CachedHandle)param; return (CachedHandle)param;
} }
STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param) STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param, int *changed)
{ {
if (param->dataIndex == 0) { if (param->dataIndex == 0) {
// no change, do not to find // no change, do not to find
...@@ -737,7 +737,8 @@ STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param) ...@@ -737,7 +737,8 @@ STATIC_INLINE const char *CachedParameterCheck(CachedParameter *param)
param->dataCommitId = dataCommitId; param->dataCommitId = dataCommitId;
int ret = ReadParamValue_(entry, &param->dataCommitId, param->paramValue, &length); int ret = ReadParamValue_(entry, &param->dataCommitId, param->paramValue, &length);
PARAM_CHECK(ret == 0, return NULL, "Failed to copy value %s", param->data); 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; return param->paramValue;
} }
...@@ -745,7 +746,17 @@ const char *CachedParameterGet(CachedHandle handle) ...@@ -745,7 +746,17 @@ const char *CachedParameterGet(CachedHandle handle)
{ {
CachedParameter *param = (CachedParameter *)handle; CachedParameter *param = (CachedParameter *)handle;
PARAM_CHECK(param != NULL, return NULL, "Invalid 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) void CachedParameterDestroy(CachedHandle handle)
......
...@@ -642,8 +642,10 @@ HWTEST_F(ParamUnitTest, TestParamCache, TestSize.Level0) ...@@ -642,8 +642,10 @@ HWTEST_F(ParamUnitTest, TestParamCache, TestSize.Level0)
EXPECT_EQ(strcmp(value, "false"), 0); EXPECT_EQ(strcmp(value, "false"), 0);
ret = WriteParam(name, "2222222", &dataIndex, 0); ret = WriteParam(name, "2222222", &dataIndex, 0);
EXPECT_EQ(ret, 0); EXPECT_EQ(ret, 0);
value = CachedParameterGet(cacheHandle3); int valueChange = 0;
value = CachedParameterGetChanged(cacheHandle3, &valueChange);
EXPECT_EQ(strcmp(value, "2222222"), 0); EXPECT_EQ(strcmp(value, "2222222"), 0);
EXPECT_EQ(valueChange, 1);
CachedParameterDestroy(cacheHandle3); CachedParameterDestroy(cacheHandle3);
} }
#ifdef PARAM_SUPPORT_SELINUX #ifdef PARAM_SUPPORT_SELINUX
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册