1 #ifndef INCLUDE_objecttable_h__
2 #define INCLUDE_objecttable_h__
4 #include "git/common.h"
8 struct git_revpool_object
{
14 struct git_revpool_node
{
15 struct git_revpool_object
*object
;
17 struct git_revpool_node
*next
;
20 struct git_revpool_table
{
21 struct git_revpool_node
**nodes
;
23 unsigned int size_mask
;
25 unsigned int max_count
;
28 struct git_revpool_tableit
{
29 struct git_revpool_node
**nodes
;
30 struct git_revpool_node
*current_node
;
31 unsigned int current_pos
;
36 typedef struct git_revpool_node git_revpool_node
;
37 typedef struct git_revpool_object git_revpool_object
;
38 typedef struct git_revpool_table git_revpool_table
;
39 typedef struct git_revpool_tableit git_revpool_tableit
;
41 git_revpool_table
*git_revpool_table_create(unsigned int min_size
);
42 int git_revpool_table_insert(git_revpool_table
*table
, git_revpool_object
*object
);
43 git_revpool_object
*git_revpool_table_lookup(git_revpool_table
*table
, const git_oid
*id
);
44 void git_revpool_table_resize(git_revpool_table
*table
);
45 void git_revpool_table_free(git_revpool_table
*table
);
48 git_revpool_object
*git_revpool_tableit_next(git_revpool_tableit
*it
);
49 git_revpool_object
*git_revpool_tableit_nextfilter(git_revpool_tableit
*it
, git_otype type
);
50 void git_revpool_tableit_init(git_revpool_table
*table
, git_revpool_tableit
*it
);