Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
饶先宏
Lcom
提交
7543b279
L
Lcom
项目概览
饶先宏
/
Lcom
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
Lcom
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7543b279
编写于
6月 02, 2021
作者:
饶先宏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
202106020611 增加表头类对象
上级
adafc968
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
83 addition
and
2 deletion
+83
-2
include/dlist.h
include/dlist.h
+11
-1
src/dlist.c
src/dlist.c
+72
-1
未找到文件。
include/dlist.h
浏览文件 @
7543b279
...
...
@@ -95,7 +95,7 @@ int dlistInsertItem(IDListVarPtr list, HOBJECT item);
/*
将list2表中的项链接到表list中,list2则清空
*/
int
dlistC
a
ncat
(
IDListVarPtr
list
,
IDListVarPtr
list2
);
int
dlistC
o
ncat
(
IDListVarPtr
list
,
IDListVarPtr
list2
);
/*
遍历表list,对表list中的每一项调用func,param作为参数传到func中
...
...
@@ -127,6 +127,16 @@ int dlistItemCount(IDListVarPtr list);
*/
int
dlistRemoveAll
(
IDListVarPtr
list
);
/*
表头对象
*/
DEFINE_GUID
(
CLSID_DLISTHEADER
,
0x7ba10549
,
0x8c42
,
0x4301
,
0xbb
,
0xc7
,
0x75
,
0x5a
,
0x7f
,
0x8
,
0x9
,
0xae
);
IDListVar
*
dlistCreate
();
#define IsDListHeader(obj) objectIsClass(obj, CLSID_DLISTHEADER)
#endif
#ifdef __cplusplus
...
...
src/dlist.c
浏览文件 @
7543b279
...
...
@@ -91,7 +91,7 @@ int dlistInsertItem(IDListVarPtr plist, HOBJECT item)
/*
将list2表中的项链接到表list中,list2则清空
*/
int
dlistC
a
ncat
(
IDListVarPtr
plist
,
IDListVarPtr
plist2
)
int
dlistC
o
ncat
(
IDListVarPtr
plist
,
IDListVarPtr
plist2
)
{
if
(
(
plist
==
NULL
)
||
(
plist2
==
NULL
)
)
{
return
-
1
;
...
...
@@ -224,3 +224,74 @@ int dlistRemoveAll(IDListVarPtr plist)
plist
->
__dlist_pNext
=
plist
->
__dlist_pLast
=
plist
;
return
0
;
}
/*表头对象*/
typedef
struct
_sDListHeader
{
OBJECT_HEADER
DLIST_VARDECLARE
}
sDListHeader
;
OBJECT_FUNCDECLARE
(
dlistheader
,
CLSID_DLISTHEADER
);
DLIST_FUNCIMPL
(
dlistheader
,
CLSID_DLISTHEADER
,
sDListHeader
);
OBJECT_FUNCIMPL
(
dlistheader
,
sDListHeader
,
CLSID_DLISTHEADER
);
QUERYINTERFACE_BEGIN
(
dlistheader
,
CLSID_DLISTHEADER
)
QUERYINTERFACE_ITEM
(
IID_DLIST
,
IDList
,
sDListHeader
)
QUERYINTERFACE_END
static
const
char
*
dlistheaderModuleInfo
()
{
return
"1.0.0-20210503.1247 Dual List Header"
;
}
static
int
dlistheaderCreate
(
const
PARAMITEM
*
pParams
,
int
paramcount
,
HOBJECT
*
pObject
)
{
sDListHeader
*
pobj
;
pobj
=
(
sDListHeader
*
)
malloc
(
sizeof
(
sDListHeader
));
if
(
pobj
==
NULL
)
return
-
1
;
memset
(
pobj
,
0
,
sizeof
(
sDListHeader
));
*
pObject
=
0
;
DLIST_VARINIT
(
pobj
,
dlistheader
);
/*返回生成的对象*/
OBJECT_RETURN_GEN
(
dlistheader
,
pobj
,
pObject
,
CLSID_DLISTHEADER
);
return
EIID_OK
;
}
static
void
dlistheaderDestroy
(
HOBJECT
object
)
{
sDListHeader
*
pobj
;
pobj
=
(
sDListHeader
*
)
objectThis
(
object
);
free
(
pobj
);
}
/*
功能:判断对象是否是一个有效对象
参数:
object -- 对象数据指针
返回值:
0 -- 对象是无效的
1 -- 对象是有效的
*/
static
int
dlistheaderValid
(
HOBJECT
object
)
{
return
1
;
}
IDListVar
*
dlistCreate
()
{
int
ret
;
IDListVar
*
pListHeader
;
A_u_t_o_registor_dlistheader
();
ret
=
objectCreateEx
(
CLSID_DLISTHEADER
,
NULL
,
0
,
IID_DLIST
,
(
const
void
**
)
&
pListHeader
);
if
(
ret
==
0
)
return
pListHeader
;
else
return
NULL
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录