From 9d16eec29148dbb776e443557338fefa2ffb0fd6 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Sun, 1 Apr 2018 10:40:53 +0000 Subject: [PATCH] replace function FossilOrigin-Name: 6fdd1d6c766912e7944940595f6d99287b862314c725f5fc0320695cf16041e4 --- src/cw/cw_ktv_replace.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/cw/cw_ktv_replace.c b/src/cw/cw_ktv_replace.c index e69de29b..b9f389d8 100644 --- a/src/cw/cw_ktv_replace.c +++ b/src/cw/cw_ktv_replace.c @@ -0,0 +1,31 @@ +#include "ktv.h" +#include "cw.h" + +#include "log.h" +#include "dbg.h" + +cw_KTV_t * cw_ktv_replace(mavl_t kvtstore, const char *key, const struct cw_Type *type, + const uint8_t * data, int len) +{ + cw_KTV_t mdata, *mresult; + int exists; + + mdata.key=cw_strdup(key); + if (!mdata.key){ + cw_log(LOG_ERR, "Can't allocate memory for KTV key %s: %s", + key,strerror(errno)); + return NULL; + } + + mresult = type->get(&mdata,data,len); + if (!mresult){ + cw_log(LOG_ERR, "Can't create kvstore element for key %s of type %s: %s", + key,type->name, strerror(errno)); + free(mdata.key); + return NULL; + } + + mresult = mavl_replace(kvtstore, &mdata, &exists); + + return mresult; +}