OSDN Git Service

binding with libharu.
[putex/putex.git] / src / texsourc / lib / libhpdf / include / hpdf_list.h
1 /*
2  * << Haru Free PDF Library >> -- hpdf_list.h
3  *
4  * URL: http://libharu.org
5  *
6  * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
7  * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
8  *
9  * Permission to use, copy, modify, distribute and sell this software
10  * and its documentation for any purpose is hereby granted without fee,
11  * provided that the above copyright notice appear in all copies and
12  * that both that copyright notice and this permission notice appear
13  * in supporting documentation.
14  * It is provided "as is" without express or implied warranty.
15  *
16  */
17
18 #ifndef _HPDF_LIST_H
19 #define _HPDF_LIST_H
20
21 #include "hpdf_error.h"
22 #include "hpdf_mmgr.h"
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 typedef struct _HPDF_List_Rec  *HPDF_List;
29
30 typedef struct _HPDF_List_Rec {
31       HPDF_MMgr       mmgr;
32       HPDF_Error      error;
33       HPDF_UINT       block_siz;
34       HPDF_UINT       items_per_block;
35       HPDF_UINT       count;
36       void            **obj;
37 } HPDF_List_Rec;
38
39
40 HPDF_List
41 HPDF_List_New  (HPDF_MMgr  mmgr,
42                 HPDF_UINT  items_per_block);
43
44
45 void
46 HPDF_List_Free  (HPDF_List  list);
47
48
49 HPDF_STATUS
50 HPDF_List_Add  (HPDF_List  list,
51                 void       *item);
52
53
54 HPDF_STATUS
55 HPDF_List_Insert  (HPDF_List  list,
56                    void       *target,
57                    void       *item);
58
59
60 HPDF_STATUS
61 HPDF_List_Remove  (HPDF_List  list,
62                    void       *item);
63
64
65 void*
66 HPDF_List_RemoveByIndex  (HPDF_List  list,
67                           HPDF_UINT  index);
68
69
70 void*
71 HPDF_List_ItemAt  (HPDF_List  list,
72                    HPDF_UINT  index);
73
74
75 HPDF_INT32
76 HPDF_List_Find  (HPDF_List  list,
77                  void       *item);
78
79
80 void
81 HPDF_List_Clear  (HPDF_List  list);
82
83 #ifdef __cplusplus
84 }
85 #endif /* __cplusplus */
86
87 #endif /* _HPDF_LIST_H */
88