1 #ifndef INCLUDE_objecttable_h__
2 #define INCLUDE_objecttable_h__
4 #include "git/common.h"
7 struct git_revpool_object
{
12 struct git_revpool_node
{
13 struct git_revpool_object
*object
;
15 struct git_revpool_node
*next
;
18 struct git_revpool_table
{
19 struct git_revpool_node
**nodes
;
21 unsigned int size_mask
;
23 unsigned int max_count
;
26 struct git_revpool_tableit
{
27 struct git_revpool_node
**nodes
;
28 struct git_revpool_node
*current_node
;
29 unsigned int current_pos
;
34 typedef struct git_revpool_node git_revpool_node
;
35 typedef struct git_revpool_object git_revpool_object
;
36 typedef struct git_revpool_table git_revpool_table
;
37 typedef struct git_revpool_tableit git_revpool_tableit
;
39 git_revpool_table
*git_revpool_table_create(unsigned int min_size
);
40 int git_revpool_table_insert(git_revpool_table
*table
, git_revpool_object
*object
);
41 git_revpool_object
*git_revpool_table_lookup(git_revpool_table
*table
, const git_oid
*id
);
42 void git_revpool_table_resize(git_revpool_table
*table
);
43 void git_revpool_table_free(git_revpool_table
*table
);
46 git_revpool_object
*git_revpool_tableit_next(git_revpool_tableit
*it
);
47 void git_revpool_tableit_init(git_revpool_table
*table
, git_revpool_tableit
*it
);