tlist.h
3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/**
@file tlist.h
@date 1997/10/7
@author 유영창 frog@falinux.com FALinux.Co.,Ltd.
@brief Delphi 형식의 리스트 객체이다.
@todo
@bug
@remark
@warning
*/
//
// 저작권 에프에이리눅스(주)
// 외부공개 금지
//
//----------------------------------------------------------------------------
#ifndef _TLIST_API_HEADER_
#define _TLIST_API_HEADER_
#define MAXLISTSIZE 0x7FFFFFF
/// 객체를 관리할 구조체
typedef struct
{
void **flist; // 주소의 배열이 있는곳
int fcount; // 아이템의 수
int fcapacity; // 메모리 할당 수
} tlist;
#ifdef __cplusplus
extern "C" {
#endif
/// @{
/// @brief 내부함수리스트
void tlist_error ( tlist *that ); /// 에러함수
void tlist_error_index ( tlist *that, int index ); /// 인덱스 범위에러
void tlist_grow ( tlist *that ); /// 아이템이 들어갈 메모리를 증가시킨다.
void tlist_setcapacity ( tlist *that, int newcapacity ); /// 관리할 수 있는 아이템 풀의 용량을 설정하고 메모리를 재 할당한다.
void tlist_setcount ( tlist *that, int newcount ); /// 관리할 수 있는 아이템의 개수를 설정하며 아이템의 개수를 설정된 값으로 변경한다.
tlist *tlist_expand ( tlist *that ); /// 아이템 풀의 용량을 확장한다.
int tlist_getcapacity ( tlist *that ); /// 아이템풀의 크기를 얻는다.
/// @}
/// @{
/// @brief 사용자가 사용할수 있는 함수 리스트
extern tlist* tlist_create ( void ); /// tlist 객체를 생성한다.
extern void tlist_free ( tlist *that ); /// tlist 객체를 소멸시킨다.
extern int tlist_getcount ( tlist *that ); /// 아이템의 개수를 얻는다.
extern void* tlist_get ( tlist *that, int index ); /// 인덱스에 해당하는 아이템 포인터를 돌려준다.
extern void tlist_put ( tlist *that, int index, void *item ); /// 특정아이템의 포인터를 변경한다.
extern int tlist_add ( tlist *that, void *item ); /// 아이템을 추가한다.
extern void tlist_clear ( tlist *that ); /// 모든 아이템을 제거한다.
extern void tlist_delete ( tlist *that, int index ); /// 하나의 아이템을 제거한다.
extern void tlist_exchange ( tlist *that, int index1, int index2 ); /// 2개의 아이템 위치를 교환한다.
extern void *tlist_first ( tlist *that ); /// 첫번째 아이템 포인터를 돌려준다.
extern int tlist_indexof ( tlist *that, void *item ); /// 아이템 포인터가 동일한 포인터의 인덱스를 구한다.
extern void tlist_insert ( tlist *that, int index, void *item ); /// 아이템을 특정 위치에 추가한다.
extern void *tlist_last ( tlist *that ); /// 마지막 아이템 포인터를 구한다.
extern void tlist_move ( tlist *that, int curindex, int newindex ); /// 특정 아이템의 위치(인덱스)를 변경한다.
extern int tlist_remove ( tlist *that, void *item ); /// 인자로 전해준 동일한 아이템 포인터를 찾아 삭제한다.
extern void tlist_pack ( tlist *that ); /// 메모리 관리를 위해 사용하지 않는 메모리를 반환한다.
extern void tlist_sort ( tlist *that,int (*tlistsortcompare)(const void *, const void *) ); /// 아이템을 사용자 비교함수를 통해 정렬한다
/// @}
#ifdef __cplusplus
}
#endif
#endif // _TLIST_API_HEADER_