ndn-lite
name-tree.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 Xinyu Ma, Yu Guan
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v3.0. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #ifndef FORWARDER_NAME_TREE_H
10 #define FORWARDER_NAME_TREE_H
11 
12 #include "../ndn-constants.h"
13 #include <stdint.h>
14 #include <stddef.h>
15 
25 
27 };
28 
32 typedef struct nametree_entry{
37 
43 
51 
57 
64 
66 
67 #define NDN_NAMETREE_RESERVE_SIZE(entry_count) (sizeof(nametree_entry_t) * (entry_count))
68 
69 void
70 ndn_nametree_init(void* memory, ndn_table_id_t capacity);
71 
73 ndn_nametree_find_or_insert(ndn_nametree_t* nametree, uint8_t name[], size_t len);
74 
77  ndn_nametree_t* nametree,
78  uint8_t name[],
79  size_t len,
80  enum NDN_NAMETREE_ENTRY_TYPE type);
81 
83 ndn_nametree_find(ndn_nametree_t *nametree, uint8_t name[], size_t len);
84 
87 
90 
93 #endif // FORWARDER_NAME_TREE_H
nametree_entry_t * ndn_nametree_find(ndn_nametree_t *nametree, uint8_t name[], size_t len)
Definition: name-splay.c:182
ndn_table_id_t ndn_nametree_getid(ndn_nametree_t *self, nametree_entry_t *entry)
Definition: name-splay.c:256
Definition: name-tree.h:24
ndn_table_id_t right_bro
Right brother of this node.
Definition: name-tree.h:50
ndn_table_id_t fib_id
Corresponding FIB entry's id.
Definition: name-splay.h:35
NDN_NAMETREE_ENTRY_TYPE
Definition: name-splay.h:22
ndn_table_id_t pit_id
Child or parent.
Definition: name-splay.h:34
void ndn_nametree_init(void *memory, ndn_table_id_t capacity)
Definition: name-splay.c:30
nametree_entry_t * ndn_nametree_prefix_match(ndn_nametree_t *nametree, uint8_t name[], size_t len, enum NDN_NAMETREE_ENTRY_TYPE type)
Definition: name-splay.c:206
#define NDN_NAME_COMPONENT_BLOCK_SIZE
Definition: ndn-constants.h:16
nametree_entry_t * ndn_nametree_find_or_insert(ndn_nametree_t *nametree, uint8_t name[], size_t len)
Definition: name-splay.c:160
ndn_table_id_t left_child
First child of this node.
Definition: name-tree.h:42
Definition: name-splay.h:38
Definition: name-tree.h:23
uint16_t ndn_table_id_t
Definition: ndn-constants.h:39
uint8_t val[NDN_NAME_COMPONENT_BLOCK_SIZE]
Name component of this node.
Definition: name-splay.h:31
struct nametree_entry nametree_entry_t
NameTree node.
Definition: name-tree.h:26
NameTree node.
Definition: name-splay.h:30
nametree_entry_t * ndn_nametree_at(ndn_nametree_t *self, ndn_table_id_t id)
Definition: name-splay.c:251