Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
52a94e72
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
52a94e72
编写于
2月 28, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove tstep
上级
99bc4379
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
0 addition
and
147 deletion
+0
-147
include/util/tstep.h
include/util/tstep.h
+0
-37
source/util/src/tstep.c
source/util/src/tstep.c
+0
-110
未找到文件。
include/util/tstep.h
已删除
100644 → 0
浏览文件 @
99bc4379
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_UTIL_STEP_H_
#define _TD_UTIL_STEP_H_
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
struct
SSteps
SSteps
;
typedef
int32_t
(
*
InitFp
)();
typedef
void
(
*
CleanupFp
)();
typedef
void
(
*
ReportFp
)(
char
*
name
,
char
*
desc
);
SSteps
*
taosStepInit
(
int32_t
maxsize
,
ReportFp
fp
);
int32_t
taosStepExec
(
SSteps
*
steps
);
void
taosStepCleanup
(
SSteps
*
steps
);
int32_t
taosStepAdd
(
SSteps
*
steps
,
char
*
name
,
InitFp
initFp
,
CleanupFp
cleanupFp
);
#ifdef __cplusplus
}
#endif
#endif
/*_TD_UTIL_STEP_H_*/
source/util/src/tstep.c
已删除
100644 → 0
浏览文件 @
99bc4379
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define _DEFAULT_SOURCE
#include "tlog.h"
#include "taoserror.h"
#include "tstep.h"
typedef
struct
{
char
*
name
;
InitFp
initFp
;
CleanupFp
cleanupFp
;
}
SStep
;
typedef
struct
SSteps
{
int32_t
cursize
;
int32_t
maxsize
;
SStep
*
steps
;
ReportFp
reportFp
;
}
SSteps
;
SSteps
*
taosStepInit
(
int32_t
maxsize
,
ReportFp
fp
)
{
SSteps
*
steps
=
calloc
(
1
,
sizeof
(
SSteps
));
if
(
steps
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
NULL
;
}
steps
->
maxsize
=
maxsize
;
steps
->
cursize
=
0
;
steps
->
steps
=
calloc
(
maxsize
,
sizeof
(
SStep
));
steps
->
reportFp
=
fp
;
return
steps
;
}
int32_t
taosStepAdd
(
struct
SSteps
*
steps
,
char
*
name
,
InitFp
initFp
,
CleanupFp
cleanupFp
)
{
if
(
steps
==
NULL
)
{
terrno
=
TSDB_CODE_INVALID_PTR
;
return
-
1
;
}
if
(
steps
->
cursize
>=
steps
->
maxsize
)
{
uError
(
"failed to add step since up to the maxsize"
);
terrno
=
TSDB_CODE_OUT_OF_RANGE
;
return
-
1
;
}
SStep
step
=
{.
name
=
name
,
.
initFp
=
initFp
,
.
cleanupFp
=
cleanupFp
};
steps
->
steps
[
steps
->
cursize
++
]
=
step
;
return
0
;
}
static
void
taosStepCleanupImp
(
SSteps
*
steps
,
int32_t
pos
)
{
for
(
int32_t
s
=
pos
;
s
>=
0
;
s
--
)
{
SStep
*
step
=
steps
->
steps
+
s
;
uDebug
(
"step:%s will cleanup"
,
step
->
name
);
if
(
step
->
cleanupFp
!=
NULL
)
{
(
*
step
->
cleanupFp
)();
}
}
}
int32_t
taosStepExec
(
SSteps
*
steps
)
{
if
(
steps
==
NULL
)
{
terrno
=
TSDB_CODE_INVALID_PTR
;
return
-
1
;
}
for
(
int32_t
s
=
0
;
s
<
steps
->
cursize
;
s
++
)
{
SStep
*
step
=
steps
->
steps
+
s
;
if
(
step
->
initFp
==
NULL
)
continue
;
if
(
steps
->
reportFp
!=
NULL
)
{
(
*
steps
->
reportFp
)(
step
->
name
,
"start initialize"
);
}
int32_t
code
=
(
*
step
->
initFp
)();
if
(
code
!=
0
)
{
uDebug
(
"step:%s will cleanup"
,
step
->
name
);
taosStepCleanupImp
(
steps
,
s
);
return
code
;
}
uInfo
(
"step:%s is initialized"
,
step
->
name
);
if
(
steps
->
reportFp
!=
NULL
)
{
(
*
steps
->
reportFp
)(
step
->
name
,
"initialize completed"
);
}
}
return
0
;
}
void
taosStepCleanup
(
SSteps
*
steps
)
{
if
(
steps
==
NULL
)
return
;
taosStepCleanupImp
(
steps
,
steps
->
cursize
-
1
);
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录