Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
别团等shy哥发育
redis
提交
5d295fea
R
redis
项目概览
别团等shy哥发育
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5d295fea
编写于
10月 10, 2014
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rio.c refactoring before adding a new target.
上级
aef4c60c
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
24 addition
and
17 deletion
+24
-17
src/rio.c
src/rio.c
+24
-17
未找到文件。
src/rio.c
浏览文件 @
5d295fea
...
@@ -55,6 +55,8 @@
...
@@ -55,6 +55,8 @@
#include "config.h"
#include "config.h"
#include "redis.h"
#include "redis.h"
/* ------------------------- Buffer I/O implementation ----------------------- */
/* Returns 1 or 0 for success/failure. */
/* Returns 1 or 0 for success/failure. */
static
size_t
rioBufferWrite
(
rio
*
r
,
const
void
*
buf
,
size_t
len
)
{
static
size_t
rioBufferWrite
(
rio
*
r
,
const
void
*
buf
,
size_t
len
)
{
r
->
io
.
buffer
.
ptr
=
sdscatlen
(
r
->
io
.
buffer
.
ptr
,(
char
*
)
buf
,
len
);
r
->
io
.
buffer
.
ptr
=
sdscatlen
(
r
->
io
.
buffer
.
ptr
,(
char
*
)
buf
,
len
);
...
@@ -76,6 +78,25 @@ static off_t rioBufferTell(rio *r) {
...
@@ -76,6 +78,25 @@ static off_t rioBufferTell(rio *r) {
return
r
->
io
.
buffer
.
pos
;
return
r
->
io
.
buffer
.
pos
;
}
}
static
const
rio
rioBufferIO
=
{
rioBufferRead
,
rioBufferWrite
,
rioBufferTell
,
NULL
,
/* update_checksum */
0
,
/* current checksum */
0
,
/* bytes read or written */
0
,
/* read/write chunk size */
{
{
NULL
,
0
}
}
/* union for io-specific vars */
};
void
rioInitWithBuffer
(
rio
*
r
,
sds
s
)
{
*
r
=
rioBufferIO
;
r
->
io
.
buffer
.
ptr
=
s
;
r
->
io
.
buffer
.
pos
=
0
;
}
/* --------------------- Stdio file pointer implementation ------------------- */
/* Returns 1 or 0 for success/failure. */
/* Returns 1 or 0 for success/failure. */
static
size_t
rioFileWrite
(
rio
*
r
,
const
void
*
buf
,
size_t
len
)
{
static
size_t
rioFileWrite
(
rio
*
r
,
const
void
*
buf
,
size_t
len
)
{
size_t
retval
;
size_t
retval
;
...
@@ -103,17 +124,6 @@ static off_t rioFileTell(rio *r) {
...
@@ -103,17 +124,6 @@ static off_t rioFileTell(rio *r) {
return
ftello
(
r
->
io
.
file
.
fp
);
return
ftello
(
r
->
io
.
file
.
fp
);
}
}
static
const
rio
rioBufferIO
=
{
rioBufferRead
,
rioBufferWrite
,
rioBufferTell
,
NULL
,
/* update_checksum */
0
,
/* current checksum */
0
,
/* bytes read or written */
0
,
/* read/write chunk size */
{
{
NULL
,
0
}
}
/* union for io-specific vars */
};
static
const
rio
rioFileIO
=
{
static
const
rio
rioFileIO
=
{
rioFileRead
,
rioFileRead
,
rioFileWrite
,
rioFileWrite
,
...
@@ -132,11 +142,7 @@ void rioInitWithFile(rio *r, FILE *fp) {
...
@@ -132,11 +142,7 @@ void rioInitWithFile(rio *r, FILE *fp) {
r
->
io
.
file
.
autosync
=
0
;
r
->
io
.
file
.
autosync
=
0
;
}
}
void
rioInitWithBuffer
(
rio
*
r
,
sds
s
)
{
/* ---------------------------- Generic functions ---------------------------- */
*
r
=
rioBufferIO
;
r
->
io
.
buffer
.
ptr
=
s
;
r
->
io
.
buffer
.
pos
=
0
;
}
/* This function can be installed both in memory and file streams when checksum
/* This function can be installed both in memory and file streams when checksum
* computation is needed. */
* computation is needed. */
...
@@ -157,7 +163,8 @@ void rioSetAutoSync(rio *r, off_t bytes) {
...
@@ -157,7 +163,8 @@ void rioSetAutoSync(rio *r, off_t bytes) {
r
->
io
.
file
.
autosync
=
bytes
;
r
->
io
.
file
.
autosync
=
bytes
;
}
}
/* ------------------------------ Higher level interface ---------------------------
/* --------------------------- Higher level interface --------------------------
*
* The following higher level functions use lower level rio.c functions to help
* The following higher level functions use lower level rio.c functions to help
* generating the Redis protocol for the Append Only File. */
* generating the Redis protocol for the Append Only File. */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录