This file is indexed.

/usr/include/paristraceroute/tree.h is in libparistraceroute-dev 0.93+git20160927-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef TREE_H
#define TREE_H

#include <stddef.h>   // size_t
#include "dynarray.h" // dynarray_t
#include "common.h"   // ELEMENT_FREE, ELEMENT_DUMP 

typedef struct tree_node_s {
    struct tree_node_s * parent;       /** Pointer to the parent node (if any), NULL otherwise */
    dynarray_t         * children;     /**< Stores a set of (tree_node_t *) related to each child node */
    size_t               num_children; /**< Number of children of this node */
    void               * data;         /**< Data stored in this node */
} tree_node_t;

//----------------------------------------------------------------------
//                              tree_node_t
//----------------------------------------------------------------------

tree_node_t * tree_node_create(void * data);

void tree_node_free_impl(tree_node_t * node, void (*callback_free)(void * element));

#define tree_node_free(node, free) tree_node_free_impl(node, (ELEMENT_FREE) free)

size_t tree_node_get_num_children(const tree_node_t * node);

void * tree_node_get_data(const tree_node_t * node);

tree_node_t * tree_node_get_ith_child(const tree_node_t * node, size_t i);

tree_node_t * tree_node_add_child(tree_node_t * node, void * element);

bool tree_node_push_child(tree_node_t * parent_node, tree_node_t * node);

void tree_node_set_data(tree_node_t * node, void * data);

bool tree_node_del_ith_child(tree_node_t * node, size_t i);

bool tree_node_is_leaf(const tree_node_t * node);

//-------------------------------------------------------------------------
//                                 tree_t
//-------------------------------------------------------------------------

typedef struct {
    struct tree_node_s * root;            /**< Root node */
    void (* callback_free)(void *);       /**< Callback to free data contained in the tree node */
    void (* callback_dump)(const void *); /**< Callback to dump data contained in the tree node */
} tree_t;

tree_t * tree_create_impl(void (*callback_free)(void *), void (*callback_dump)(const void *));

#define tree_create(free, dump) tree_create_impl((ELEMENT_FREE) free, (ELEMENT_DUMP) dump)

void tree_free(tree_t * tree);

tree_node_t * tree_add_root(tree_t * tree, void * data);

tree_node_t * tree_get_root(tree_t * tree);

void tree_dump(const tree_t * tree);

#endif