GRPC Core
18.0.0
|
#include <grpc/support/port_platform.h>
#include "src/core/lib/avl/avl.h"
#include <assert.h>
#include <stdlib.h>
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include "src/core/lib/gpr/useful.h"
Functions | |
grpc_avl | grpc_avl_create (const grpc_avl_vtable *vtable) |
Create an immutable AVL tree. More... | |
grpc_avl_node * | new_node (void *key, void *value, grpc_avl_node *left, grpc_avl_node *right) |
void * | grpc_avl_get (grpc_avl avl, void *key, void *user_data) |
Lookup key, and return the associated value. More... | |
int | grpc_avl_maybe_get (grpc_avl avl, void *key, void **value, void *user_data) |
Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to its value. More... | |
grpc_avl | grpc_avl_add (grpc_avl avl, void *key, void *value, void *user_data) |
Return a new tree with (key, value) added to avl. More... | |
grpc_avl | grpc_avl_remove (grpc_avl avl, void *key, void *user_data) |
Return a new tree with key deleted implicitly unrefs avl to allow easy chaining. More... | |
grpc_avl | grpc_avl_ref (grpc_avl avl, void *) |
Add a reference to an existing tree - returns the tree as a convenience. More... | |
void | grpc_avl_unref (grpc_avl avl, void *user_data) |
Remove a reference to a tree - destroying it if there are no references left. More... | |
int | grpc_avl_is_empty (grpc_avl avl) |
Return 1 if avl is empty, 0 otherwise. More... | |
Return a new tree with (key, value) added to avl.
implicitly unrefs avl to allow easy chaining. if key exists in avl, the new tree's key entry updated (i.e. a duplicate is not created). The optional user_data will be passed to vtable functions.
grpc_avl grpc_avl_create | ( | const grpc_avl_vtable * | vtable | ) |
Create an immutable AVL tree.
void* grpc_avl_get | ( | grpc_avl | avl, |
void * | key, | ||
void * | user_data | ||
) |
Lookup key, and return the associated value.
Does not mutate avl. Returns NULL if key is not found. The optional user_data will be passed to vtable functions.
int grpc_avl_is_empty | ( | grpc_avl | avl | ) |
Return 1 if avl is empty, 0 otherwise.
int grpc_avl_maybe_get | ( | grpc_avl | avl, |
void * | key, | ||
void ** | value, | ||
void * | user_data | ||
) |
Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to its value.
The optional user_data will be passed to vtable functions.
Add a reference to an existing tree - returns the tree as a convenience.
The optional user_data will be passed to vtable functions.
Return a new tree with key deleted implicitly unrefs avl to allow easy chaining.
The optional user_data will be passed to vtable functions.
void grpc_avl_unref | ( | grpc_avl | avl, |
void * | user_data | ||
) |
Remove a reference to a tree - destroying it if there are no references left.
The optional user_data will be passed to vtable functions.
grpc_avl_node* new_node | ( | void * | key, |
void * | value, | ||
grpc_avl_node * | left, | ||
grpc_avl_node * | right | ||
) |