Open SCAP Library
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
src
OVAL
probes
SEAP
generic
rbt
rbt_str.h
1
/*
2
* Copyright 2010 Red Hat Inc., Durham, North Carolina.
3
* All Rights Reserved.
4
*
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with this library; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
*
19
* Authors:
20
* "Daniel Kopecek" <dkopecek@redhat.com>
21
*/
22
#ifndef RBT_STR_H
23
#define RBT_STR_H
24
25
#include "rbt_common.h"
26
27
struct
rbt_str_node
{
28
char
*key;
29
void
*data;
30
};
31
32
typedef
struct
rbt_str_node
rbt_str_node_t
;
33
34
#define rbt_str_node_key(np) (((struct rbt_str_node *)(rbt_node_ptr(np)->_node))->key)
35
#define rbt_str_node_data(np) (((struct rbt_str_node *)(rbt_node_ptr(np)->_node))->data)
36
37
rbt_t
*rbt_str_new (
void
);
38
void
rbt_str_free (
rbt_t
*
rbt
);
39
void
rbt_str_free_cb (
rbt_t
*
rbt
,
void
(*
callback
)(
struct
rbt_str_node
*));
40
void
rbt_str_free_cb2 (
rbt_t
*rbt,
void
(*
callback
)(
struct
rbt_str_node
*,
void
*user),
void
*user);
41
42
int
rbt_str_add(
rbt_t
*rbt,
char
*key,
void
*data);
43
void
*rbt_str_rep(
rbt_t
*rbt,
const
char
*key,
void
*data);
44
int
rbt_str_del(
rbt_t
*rbt,
const
char
*key,
void
**n);
45
int
rbt_str_getnode(
rbt_t
*rbt,
const
char
*key,
struct
rbt_str_node
**node);
46
int
rbt_str_get(
rbt_t
*rbt,
const
char
*key,
void
**data);
47
48
int
rbt_str_walk_preorder(
rbt_t
*rbt,
int
(*
callback
)(
struct
rbt_str_node
*), rbt_walk_t flags);
49
int
rbt_str_walk_inorder(
rbt_t
*rbt,
int
(*
callback
)(
struct
rbt_str_node
*), rbt_walk_t flags);
50
int
rbt_str_walk_inorder2(
rbt_t
*rbt,
int
(*
callback
)(
struct
rbt_str_node
*,
void
*),
void
*user, rbt_walk_t flags);
51
int
rbt_str_walk_postorder(
rbt_t
*rbt,
int
(*
callback
)(
struct
rbt_str_node
*), rbt_walk_t flags);
52
int
rbt_str_walk_levelorder(
rbt_t
*rbt,
int
(*
callback
)(
struct
rbt_str_node
*), rbt_walk_t flags);
53
int
rbt_str_walk(
rbt_t
*rbt, rbt_walk_t type,
int
(*
callback
)(
struct
rbt_str_node
*));
54
size_t
rbt_str_size(
rbt_t
*rbt);
55
56
#endif
/* RBT_STR_H */
Generated by
1.8.2