blob: 193950d1fb5b5867348edcdadf5d33d31b8e80e0 [file] [log] [blame]
Willy Tarreauc2186022009-10-26 19:48:54 +01001/*
2 * Elastic Binary Trees - exported functions for Indirect String data nodes.
Willy Tarreauf3bfede2011-07-25 11:38:17 +02003 * Version 6.0.6
Willy Tarreaue1ee9562011-01-04 14:33:13 +01004 * (C) 2002-2011 - Willy Tarreau <w@1wt.eu>
Willy Tarreauc2186022009-10-26 19:48:54 +01005 *
Willy Tarreauf3bfede2011-07-25 11:38:17 +02006 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation, version 2.1
9 * exclusively.
Willy Tarreauc2186022009-10-26 19:48:54 +010010 *
Willy Tarreauf3bfede2011-07-25 11:38:17 +020011 * This library is distributed in the hope that it will be useful,
Willy Tarreauc2186022009-10-26 19:48:54 +010012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Willy Tarreauf3bfede2011-07-25 11:38:17 +020013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
Willy Tarreauc2186022009-10-26 19:48:54 +010015 *
Willy Tarreauf3bfede2011-07-25 11:38:17 +020016 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Willy Tarreauc2186022009-10-26 19:48:54 +010019 */
20
21/* Consult ebistree.h for more details about those functions */
22
Willy Tarreau8d2b7772020-05-27 10:58:19 +020023#include <import/ebistree.h>
Willy Tarreauc2186022009-10-26 19:48:54 +010024
Joseph Herlant7c16c0e2018-11-13 19:55:57 -080025/* Find the first occurrence of a zero-terminated string <x> in the tree <root>.
Ilya Shipitsind4259502020-04-08 01:07:56 +050026 * It's the caller's responsibility to use this function only on trees which
Willy Tarreauc2186022009-10-26 19:48:54 +010027 * only contain zero-terminated strings. If none can be found, return NULL.
28 */
Willy Tarreau03e78532020-02-25 07:38:05 +010029struct ebpt_node *ebis_lookup(struct eb_root *root, const char *x)
Willy Tarreauc2186022009-10-26 19:48:54 +010030{
31 return __ebis_lookup(root, x);
32}
33
Willy Tarreauc2186022009-10-26 19:48:54 +010034/* Insert ebpt_node <new> into subtree starting at node root <root>. Only
35 * new->key needs be set with the zero-terminated string key. The ebpt_node is
36 * returned. If root->b[EB_RGHT]==1, the tree may only contain unique keys. The
37 * caller is responsible for properly terminating the key with a zero.
38 */
Willy Tarreau03e78532020-02-25 07:38:05 +010039struct ebpt_node *ebis_insert(struct eb_root *root, struct ebpt_node *new)
Willy Tarreauc2186022009-10-26 19:48:54 +010040{
41 return __ebis_insert(root, new);
42}