mirror of
https://github.com/curl/curl.git
synced 2026-04-11 12:01:42 +08:00
Discovered with clang-tidy checker `readability-inconsistent-declaration-parameter-name`. Also: - do not enforce the above because of inconsistencies still present between public API prototypes and definitions. (Also betwen man page protos, and man page examples, and other parts of the code, e.g. `easy` vs `curl` vs `d` vs `handle`) Perhaps subject for a future effort: https://github.com/curl/curl/actions/runs/22166472728/job/64094691653 - enable and fix `readability-named-parameter` where missing. Refs: https://clang.llvm.org/extra/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html https://clang.llvm.org/extra/clang-tidy/checks/readability/named-parameter.html Closes #20624
60 lines
2.4 KiB
C
60 lines
2.4 KiB
C
#ifndef HEADER_CURL_SPLAY_H
|
|
#define HEADER_CURL_SPLAY_H
|
|
/***************************************************************************
|
|
* _ _ ____ _
|
|
* Project ___| | | | _ \| |
|
|
* / __| | | | |_) | |
|
|
* | (__| |_| | _ <| |___
|
|
* \___|\___/|_| \_\_____|
|
|
*
|
|
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
*
|
|
* This software is licensed as described in the file COPYING, which
|
|
* you should have received as part of this distribution. The terms
|
|
* are also available at https://curl.se/docs/copyright.html.
|
|
*
|
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
* copies of the Software, and permit persons to whom the Software is
|
|
* furnished to do so, under the terms of the COPYING file.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
* SPDX-License-Identifier: curl
|
|
*
|
|
***************************************************************************/
|
|
#include "curl_setup.h"
|
|
|
|
#include "curlx/timeval.h"
|
|
|
|
/* only use function calls to access this struct */
|
|
struct Curl_tree {
|
|
struct Curl_tree *smaller; /* smaller node */
|
|
struct Curl_tree *larger; /* larger node */
|
|
struct Curl_tree *samen; /* points to the next node with identical key */
|
|
struct Curl_tree *samep; /* points to the prev node with identical key */
|
|
struct curltime key; /* this node's "sort" key */
|
|
void *ptr; /* data the splay code does not care about */
|
|
};
|
|
|
|
struct Curl_tree *Curl_splay(const struct curltime *pkey,
|
|
struct Curl_tree *t);
|
|
|
|
struct Curl_tree *Curl_splayinsert(const struct curltime *pkey,
|
|
struct Curl_tree *t,
|
|
struct Curl_tree *node);
|
|
|
|
struct Curl_tree *Curl_splaygetbest(const struct curltime *pkey,
|
|
struct Curl_tree *t,
|
|
struct Curl_tree **removed);
|
|
|
|
int Curl_splayremove(struct Curl_tree *t,
|
|
struct Curl_tree *removenode,
|
|
struct Curl_tree **newroot);
|
|
|
|
/* set and get the custom payload for this tree node */
|
|
void Curl_splayset(struct Curl_tree *node, void *payload);
|
|
void *Curl_splayget(struct Curl_tree *node);
|
|
|
|
#endif /* HEADER_CURL_SPLAY_H */
|