Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
OpenAtomFoundation
pika
提交
19e6322b
pika
项目概览
镜像
/
OpenAtomFoundation
/
pika
11 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
pika
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
19e6322b
编写于
9月 08, 2015
作者:
S
songzhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add set key value [EX seconds] [NX|XX]
上级
04b99482
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
15 deletion
+32
-15
src/pika_kv.cc
src/pika_kv.cc
+31
-14
third/nemo
third/nemo
+1
-1
未找到文件。
src/pika_kv.cc
浏览文件 @
19e6322b
...
@@ -19,35 +19,52 @@ void SetCmd::Do(std::list<std::string> &argv, std::string &ret) {
...
@@ -19,35 +19,52 @@ void SetCmd::Do(std::list<std::string> &argv, std::string &ret) {
argv
.
pop_front
();
argv
.
pop_front
();
std
::
string
value
=
argv
.
front
();
std
::
string
value
=
argv
.
front
();
argv
.
pop_front
();
argv
.
pop_front
();
if
(
argv
.
size
()
>
0
)
{
bool
is_xx
=
false
;
bool
is_nx
=
false
;
int64_t
sec
=
0
;
while
(
argv
.
size
()
>
0
)
{
std
::
string
opt
=
argv
.
front
();
std
::
string
opt
=
argv
.
front
();
argv
.
pop_front
();
argv
.
pop_front
();
transform
(
opt
.
begin
(),
opt
.
end
(),
opt
.
begin
(),
::
tolower
);
transform
(
opt
.
begin
(),
opt
.
end
(),
opt
.
begin
(),
::
tolower
);
if
(
opt
==
"xx"
)
{
if
(
opt
==
"xx"
)
{
ret
=
"+OK
\r\n
"
;
is_xx
=
true
;
return
;
}
else
if
(
opt
==
"nx"
)
{
}
else
if
(
opt
==
"nx"
&&
argv
.
empty
())
{
is_nx
=
true
;
ret
=
"+OK
\r\n
"
;
}
else
if
(
opt
==
"ex"
)
{
}
else
if
(
opt
==
"ex"
)
{
if
(
argv
.
size
()
!=
1
)
{
if
(
argv
.
size
()
<
1
)
{
ret
=
"-ERR syntax error
\r\n
"
;
ret
=
"-ERR syntax error
\r\n
"
;
return
;
return
;
}
}
ret
=
"+OK
\r\n
"
;
std
::
string
str_sec
=
argv
.
front
()
;
}
else
if
(
opt
==
"px"
)
{
argv
.
pop_front
();
if
(
argv
.
size
()
!=
1
)
{
if
(
!
string2l
(
str_sec
.
data
(),
str_sec
.
size
(),
&
sec
)
)
{
ret
=
"-ERR
syntax error
\r\n
"
;
ret
=
"-ERR
value is not an integer or out of range
\r\n
"
;
return
;
return
;
}
}
ret
=
"+OK
\r\n
"
;
}
else
{
}
else
{
ret
=
"-ERR syntax error
\r\n
"
;
ret
=
"-ERR syntax error
\r\n
"
;
return
;
return
;
}
}
}
}
nemo
::
Status
s
=
g_pikaServer
->
GetHandle
()
->
Set
(
key
,
value
);
nemo
::
Status
s
;
if
(
s
.
ok
())
{
int64_t
res
=
1
;
ret
=
"+OK
\r\n
"
;
switch
(
is_nx
)
{
case
true
:
s
=
g_pikaServer
->
GetHandle
()
->
Setnx
(
key
,
value
,
&
res
,
(
int32_t
)
sec
);
break
;
case
false
:
switch
(
is_xx
)
{
case
true
:
s
=
g_pikaServer
->
GetHandle
()
->
Setxx
(
key
,
value
,
&
res
,
sec
);
break
;
case
false
:
s
=
g_pikaServer
->
GetHandle
()
->
Set
(
key
,
value
,
sec
);
break
;
}
}
if
(
s
.
ok
()
||
s
.
IsNotFound
())
{
if
(
res
==
1
)
{
ret
=
"+OK
\r\n
"
;
}
else
{
ret
=
"*-1
\r\n
"
;
}
}
else
{
}
else
{
ret
.
append
(
"-ERR "
);
ret
.
append
(
"-ERR "
);
ret
.
append
(
s
.
ToString
().
c_str
());
ret
.
append
(
s
.
ToString
().
c_str
());
...
...
nemo
@
87ac5a87
比较
5b2023ee
...
87ac5a87
Subproject commit
5b2023eeaf466292e743bb91ca5bfa6716ad45c4
Subproject commit
87ac5a87e4d8009e34f34a9788c343ba5ee50d7d
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录