37 #define KSI_TREE_BUILDER_STACK_LEN 0x100
87 #define KSI_TreeBuilderLeafProcessorList_append(lst, o) KSI_APPLY_TO_NOT_NULL((lst), append, ((lst), (o)))
88 #define KSI_TreeBuilderLeafProcessorList_remove(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), removeElement, ((lst), (pos), (o)))
89 #define KSI_TreeBuilderLeafProcessorList_indexOf(lst, o, i) KSI_APPLY_TO_NOT_NULL((lst), indexOf, ((lst), (o), (i)))
90 #define KSI_TreeBuilderLeafProcessorList_insertAt(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), insertAt, ((lst), (pos), (o)))
91 #define KSI_TreeBuilderLeafProcessorList_replaceAt(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), replaceAt, ((lst), (pos), (o)))
92 #define KSI_TreeBuilderLeafProcessorList_elementAt(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), elementAt, ((lst), (pos), (o)))
93 #define KSI_TreeBuilderLeafProcessorList_length(lst) (((lst) != NULL && (lst)->length != NULL) ? (lst)->length((lst)) : 0)
94 #define KSI_TreeBuilderLeafProcessorList_sort(lst, cmp) KSI_APPLY_TO_NOT_NULL((lst), sort, ((lst), (cmp)))
95 #define KSI_TreeBuilderLeafProcessorList_foldl(lst, foldCtx, foldFn) (((lst) != NULL) ? ( ((lst)->foldl != NULL) ? ((lst)->foldl((lst), (foldCtx), (foldFn)))) : KSI_INVALID_STATE) : KSI_OK)
96 #define KSI_TreeBuilderLeafProcessorList_find(lst, o,f, i) KSI_APPLY_TO_NOT_NULL((lst), find, ((lst), (o), (f), (i)))
126 #define KSI_TreeLeafHandleList_append(lst, o) KSI_APPLY_TO_NOT_NULL((lst), append, ((lst), (o)))
127 #define KSI_TreeLeafHandleList_remove(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), removeElement, ((lst), (pos), (o)))
128 #define KSI_TreeLeafHandleList_indexOf(lst, o, i) KSI_APPLY_TO_NOT_NULL((lst), indexOf, ((lst), (o), (i)))
129 #define KSI_TreeLeafHandleList_insertAt(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), insertAt, ((lst), (pos), (o)))
130 #define KSI_TreeLeafHandleList_replaceAt(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), replaceAt, ((lst), (pos), (o)))
131 #define KSI_TreeLeafHandleList_elementAt(lst, pos, o) KSI_APPLY_TO_NOT_NULL((lst), elementAt, ((lst), (pos), (o)))
132 #define KSI_TreeLeafHandleList_length(lst) (((lst) != NULL && (lst)->length != NULL) ? (lst)->length((lst)) : 0)
133 #define KSI_TreeLeafHandleList_sort(lst, cmp) KSI_APPLY_TO_NOT_NULL((lst), sort, ((lst), (cmp)))
134 #define KSI_TreeLeafHandleList_foldl(lst, foldCtx, foldFn) (((lst) != NULL) ? ( ((lst)->foldl != NULL) ? ((lst)->foldl((lst), (foldCtx), (foldFn)))) : KSI_INVALID_STATE) : KSI_OK)
135 #define KSI_TreeLeafHandleList_find(lst, o,f, i) KSI_APPLY_TO_NOT_NULL((lst), find, ((lst), (o), (f), (i)))
int(* fn)(KSI_TreeNode *in, void *c, KSI_TreeNode **out)
Definition: tree_builder.h:76
int KSI_TreeBuilder_addMetaData(KSI_TreeBuilder *builder, KSI_MetaData *metaData, int level, KSI_TreeLeafHandle **leaf)
short maxTreeLevel
Definition: tree_builder.h:117
KSI_DataHasher * hsr
Definition: tree_builder.h:114
unsigned level
Definition: tree_builder.h:60
void * c
Definition: tree_builder.h:78
int KSI_TreeLeafHandle_getAggregationChain(const KSI_TreeLeafHandle *handle, KSI_AggregationHashChain **chain)
Definition: tree_builder.h:69
size_t ref
Definition: tree_builder.h:102
KSI_HashAlgorithm algo
Definition: tree_builder.h:106
void KSI_TreeBuilder_free(KSI_TreeBuilder *builder)
#define KSI_DEFINE_REF(typ)
Definition: types_base.h:56
struct KSI_DataHash_st KSI_DataHash
Definition: hash.h:52
unsigned char levelOverhead
Definition: tree_builder.h:82
Definition: tree_builder.h:52
struct KSI_TreeLeafHandle_st KSI_TreeLeafHandle
Definition: tree_builder.h:124
enum KSI_HashAlgorithm_en KSI_HashAlgorithm
KSI_DataHash * hash
Definition: tree_builder.h:56
KSI_CTX * ctx
Definition: tree_builder.h:54
KSI_CTX * ctx
Definition: tree_builder.h:100
KSI_TreeNode * parent
Definition: tree_builder.h:62
KSI_TreeNode * rootNode
Definition: tree_builder.h:104
Definition: tree_builder.h:98
void KSI_TreeLeafHandle_free(KSI_TreeLeafHandle *handle)
KSI_LIST(KSI_TreeBuilderLeafProcessor)*cbList
void KSI_TreeNode_free(KSI_TreeNode *node)
#define KSI_DEFINE_LIST(type)
Definition: list.h:159
#define KSI_TREE_BUILDER_STACK_LEN
Definition: tree_builder.h:37
KSI_MetaData * metaData
Definition: tree_builder.h:58
struct KSI_CTX_st KSI_CTX
Definition: types_base.h:124
KSI_TreeNode * stack[KSI_TREE_BUILDER_STACK_LEN]
Definition: tree_builder.h:108
int KSI_TreeBuilder_close(KSI_TreeBuilder *builder)
struct KSI_AggregationHashChain_st KSI_AggregationHashChain
Definition: types.h:132
int KSI_TreeNode_new(KSI_CTX *ctx, KSI_DataHash *hash, KSI_MetaData *metaData, int level, KSI_TreeNode **node)
KSI_TreeNode * rightChild
Definition: tree_builder.h:66
struct KSI_DataHasher_st KSI_DataHasher
Definition: hash.h:46
KSI_TreeNode * leftChild
Definition: tree_builder.h:64
int KSI_TreeBuilder_new(KSI_CTX *ctx, KSI_HashAlgorithm algo, KSI_TreeBuilder **builder)
struct KSI_MetaData_st KSI_MetaData
Definition: types.h:42
int KSI_TreeBuilder_addDataHash(KSI_TreeBuilder *builder, KSI_DataHash *hsh, int level, KSI_TreeLeafHandle **leaf)
int KSI_TreeLeafHandle_getTreeNode(const KSI_TreeLeafHandle *handle, KSI_TreeNode **node)