XROAD
xroad_heap.h File Reference
#include "xroad_common_fwd.h"
#include "xroad_common_types.h"
#include <stdint.h>
#include <stdlib.h>
Include dependency graph for xroad_heap.h:

Go to the source code of this file.

Typedefs

typedef void(* xroad_heap_free_func_t) (void *)
 
typedef int32_t(* xroad_heap_cmp_func_t) (void *, void *)
 

Functions

xroad_heap_txroad_heap_create (size_t entry_size, size_t capacity, xroad_heap_cmp_func_t cmp, xroad_heap_free_func_t free_func)
 
void xroad_heap_destroy (xroad_heap_t *heap)
 
size_t xroad_heap_get_size (const xroad_heap_t *heap)
 
int32_t xroad_heap_insert (xroad_heap_t *heap, void *val)
 
void xroad_heap_pop (xroad_heap_t *heap, xroad_heap_free_func_t free_func)
 
void xroad_heap_clear (xroad_heap_t *heap)
 
void * xroad_heap_get_root (xroad_heap_t *heap)
 

Detailed Description

Typedef Documentation

◆ xroad_heap_cmp_func_t

typedef int32_t(* xroad_heap_cmp_func_t) (void *, void *)

heap entry compare function

◆ xroad_heap_free_func_t

typedef void(* xroad_heap_free_func_t) (void *)

heap entry free function

Function Documentation

◆ xroad_heap_clear()

void xroad_heap_clear ( xroad_heap_t heap)

remove all position from heap

Parameters
[in]heap- pointer to heap container

◆ xroad_heap_create()

xroad_heap_t* xroad_heap_create ( size_t  entry_size,
size_t  capacity,
xroad_heap_cmp_func_t  cmp,
xroad_heap_free_func_t  free_func 
)

create new heap container

Parameters
[in]entry_size- the size of entry
[in]capacity- the initial capacity of heap
[in]free_func- function for free heap entries data, NULL - no free performed
Returns
heap object

◆ xroad_heap_destroy()

void xroad_heap_destroy ( xroad_heap_t heap)

destroy heap container

Parameters
[in]heap- container to destroy. If NULL, nothing happened
[in]free_func- function for free heap entries data, NULL - no free performed

◆ xroad_heap_get_root()

void* xroad_heap_get_root ( xroad_heap_t heap)

get first elem from container

Parameters
[in]heap- pointer to heap container
Returns
heap entry

◆ xroad_heap_get_size()

size_t xroad_heap_get_size ( const xroad_heap_t heap)

return heap size

Parameters
[in]heap- pointer to heap container

◆ xroad_heap_insert()

int32_t xroad_heap_insert ( xroad_heap_t heap,
void *  val 
)

insert value into heap

Parameters
[in]heap- pointer to heap container
[in]val- pointer to inserted value return 1 - if root has been changed

◆ xroad_heap_pop()

void xroad_heap_pop ( xroad_heap_t heap,
xroad_heap_free_func_t  free_func 
)

delete root entry from heap

Parameters
[in]heap- pointer to heap container
[in]free_func- function for free heap entries data, NULL - no free performed