My Project
Server
trunk
curl-7.47.1
lib
splay.h
1
#ifndef HEADER_CURL_SPLAY_H
2
#define HEADER_CURL_SPLAY_H
3
/***************************************************************************
4
* _ _ ____ _
5
* Project ___| | | | _ \| |
6
* / __| | | | |_) | |
7
* | (__| |_| | _ <| |___
8
* \___|\___/|_| \_\_____|
9
*
10
* Copyright (C) 1997 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
11
*
12
* This software is licensed as described in the file COPYING, which
13
* you should have received as part of this distribution. The terms
14
* are also available at https://curl.haxx.se/docs/copyright.html.
15
*
16
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
17
* copies of the Software, and permit persons to whom the Software is
18
* furnished to do so, under the terms of the COPYING file.
19
*
20
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21
* KIND, either express or implied.
22
*
23
***************************************************************************/
24
#include "curl_setup.h"
25
26
struct
Curl_tree
{
27
struct
Curl_tree
*smaller;
/* smaller node */
28
struct
Curl_tree
*larger;
/* larger node */
29
struct
Curl_tree
*same;
/* points to a node with identical key */
30
struct
timeval
key;
/* this node's "sort" key */
31
void
*payload;
/* data the splay code doesn't care about */
32
};
33
34
struct
Curl_tree
*Curl_splay(
struct
timeval
i,
35
struct
Curl_tree
*t);
36
37
struct
Curl_tree
*Curl_splayinsert(
struct
timeval
key,
38
struct
Curl_tree
*t,
39
struct
Curl_tree
*newnode);
40
41
#if 0
42
struct
Curl_tree
*Curl_splayremove(
struct
timeval
key,
43
struct
Curl_tree
*t,
44
struct
Curl_tree
**removed);
45
#endif
46
47
struct
Curl_tree
*Curl_splaygetbest(
struct
timeval
key,
48
struct
Curl_tree
*t,
49
struct
Curl_tree
**removed);
50
51
int
Curl_splayremovebyaddr(
struct
Curl_tree
*t,
52
struct
Curl_tree
*removenode,
53
struct
Curl_tree
**newroot);
54
55
#define Curl_splaycomparekeys(i,j) ( ((i.tv_sec) < (j.tv_sec)) ? -1 : \
56
( ((i.tv_sec) > (j.tv_sec)) ? 1 : \
57
( ((i.tv_usec) < (j.tv_usec)) ? -1 : \
58
( ((i.tv_usec) > (j.tv_usec)) ? 1 : 0 ))))
59
60
#ifdef DEBUGBUILD
61
void
Curl_splayprint(
struct
Curl_tree
* t,
int
d,
char
output);
62
#else
63
#define Curl_splayprint(x,y,z) Curl_nop_stmt
64
#endif
65
66
#endif
/* HEADER_CURL_SPLAY_H */
Curl_tree
Definition:
splay.h:26
timeval
Definition:
curl_setup_once.h:110
Generated by
1.8.12