GRAYBYTE WORDPRESS FILE MANAGER2345

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/include/bind9/isc/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/include/bind9/isc//heap.h
/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */


#ifndef ISC_HEAP_H
#define ISC_HEAP_H 1

/*! \file isc/heap.h */

#include <stdbool.h>

#include <isc/lang.h>
#include <isc/types.h>

ISC_LANG_BEGINDECLS

/*%
 * The comparison function returns true if the first argument has
 * higher priority than the second argument, and false otherwise.
 */
typedef bool (*isc_heapcompare_t)(void *, void *);

/*%
 * The index function allows the client of the heap to receive a callback
 * when an item's index number changes.  This allows it to maintain
 * sync with its external state, but still delete itself, since deletions
 * from the heap require the index be provided.
 */
typedef void (*isc_heapindex_t)(void *, unsigned int);

/*%
 * The heapaction function is used when iterating over the heap.
 *
 * NOTE:  The heap structure CANNOT BE MODIFIED during the call to
 * isc_heap_foreach().
 */
typedef void (*isc_heapaction_t)(void *, void *);

typedef struct isc_heap isc_heap_t;

isc_result_t
isc_heap_create(isc_mem_t *mctx, isc_heapcompare_t compare,
		isc_heapindex_t index, unsigned int size_increment,
		isc_heap_t **heapp);
/*!<
 * \brief Create a new heap.  The heap is implemented using a space-efficient
 * storage method.  When the heap elements are deleted space is not freed
 * but will be reused when new elements are inserted.
 *
 * Heap elements are indexed from 1.
 *
 * Requires:
 *\li	"mctx" is valid.
 *\li	"compare" is a function which takes two void * arguments and
 *	returns true if the first argument has a higher priority than
 *	the second, and false otherwise.
 *\li	"index" is a function which takes a void *, and an unsigned int
 *	argument.  This function will be called whenever an element's
 *	index value changes, so it may continue to delete itself from the
 *	heap.  This option may be NULL if this functionality is unneeded.
 *\li	"size_increment" is a hint about how large the heap should grow
 *	when resizing is needed.  If this is 0, a default size will be
 *	used, which is currently 1024, allowing space for an additional 1024
 *	heap elements to be inserted before adding more space.
 *\li	"heapp" is not NULL, and "*heap" is NULL.
 *
 * Returns:
 *\li	ISC_R_SUCCESS		- success
 *\li	ISC_R_NOMEMORY		- insufficient memory
 */

void
isc_heap_destroy(isc_heap_t **heapp);
/*!<
 * \brief Destroys a heap.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 */

isc_result_t
isc_heap_insert(isc_heap_t *heap, void *elt);
/*!<
 * \brief Inserts a new element into a heap.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 */

void
isc_heap_delete(isc_heap_t *heap, unsigned int index);
/*!<
 * \brief Deletes an element from a heap, by element index.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 *\li	"index" is a valid element index, as provided by the "index" callback
 *	provided during heap creation.
 */

void
isc_heap_increased(isc_heap_t *heap, unsigned int index);
/*!<
 * \brief Indicates to the heap that an element's priority has increased.
 * This function MUST be called whenever an element has increased in priority.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 *\li	"index" is a valid element index, as provided by the "index" callback
 *	provided during heap creation.
 */

void
isc_heap_decreased(isc_heap_t *heap, unsigned int index);
/*!<
 * \brief Indicates to the heap that an element's priority has decreased.
 * This function MUST be called whenever an element has decreased in priority.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 *\li	"index" is a valid element index, as provided by the "index" callback
 *	provided during heap creation.
 */

void *
isc_heap_element(isc_heap_t *heap, unsigned int index);
/*!<
 * \brief Returns the element for a specific element index.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 *\li	"index" is a valid element index, as provided by the "index" callback
 *	provided during heap creation.
 *
 * Returns:
 *\li	A pointer to the element for the element index.
 */

void
isc_heap_foreach(isc_heap_t *heap, isc_heapaction_t action, void *uap);
/*!<
 * \brief Iterate over the heap, calling an action for each element.  The
 * order of iteration is not sorted.
 *
 * Requires:
 *\li	"heapp" is not NULL and "*heap" points to a valid isc_heap_t.
 *\li	"action" is not NULL, and is a function which takes two arguments.
 *	The first is a void *, representing the element, and the second is
 *	"uap" as provided to isc_heap_foreach.
 *\li	"uap" is a caller-provided argument, and may be NULL.
 *
 * Note:
 *\li	The heap structure CANNOT be modified during this iteration.  The only
 *	safe function to call while iterating the heap is isc_heap_element().
 */

ISC_LANG_ENDDECLS

#endif /* ISC_HEAP_H */

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
February 21 2025 08:48:18
root / root
0755
aes.h
1.055 KB
February 20 2025 09:05:24
root / root
0644
app.h
10.232 KB
February 20 2025 09:05:24
root / root
0644
assertions.h
2.839 KB
February 20 2025 09:05:24
root / root
0644
atomic.h
4.07 KB
February 20 2025 09:05:24
root / root
0644
backtrace.h
3.8 KB
February 20 2025 09:05:24
root / root
0644
base32.h
4.349 KB
February 20 2025 09:05:24
root / root
0644
base64.h
2.799 KB
February 20 2025 09:05:24
root / root
0644
bind9.h
0.811 KB
February 20 2025 09:05:24
root / root
0644
boolean.h
0.58 KB
February 20 2025 09:05:24
root / root
0644
buffer.h
25.652 KB
February 20 2025 09:05:24
root / root
0644
bufferlist.h
1.418 KB
February 20 2025 09:05:24
root / root
0644
cmocka.h
1.351 KB
February 20 2025 09:05:24
root / root
0644
commandline.h
1.673 KB
February 20 2025 09:05:24
root / root
0644
condition.h
1.443 KB
February 20 2025 09:05:24
root / root
0644
counter.h
1.881 KB
February 20 2025 09:05:24
root / root
0644
crc64.h
0.975 KB
February 20 2025 09:05:24
root / root
0644
deprecated.h
0.608 KB
February 20 2025 09:05:24
root / root
0644
dir.h
1.561 KB
February 20 2025 09:05:24
root / root
0644
endian.h
4.666 KB
February 20 2025 09:05:24
root / root
0644
entropy.h
10.13 KB
February 20 2025 09:05:24
root / root
0644
errno.h
0.644 KB
February 20 2025 09:05:24
root / root
0644
errno2result.h
0.881 KB
February 20 2025 09:05:37
root / root
0644
error.h
1.396 KB
February 20 2025 09:05:24
root / root
0644
event.h
2.981 KB
February 20 2025 09:05:24
root / root
0644
eventclass.h
1.349 KB
February 20 2025 09:05:24
root / root
0644
file.h
11.394 KB
February 20 2025 09:05:24
root / root
0644
formatcheck.h
0.872 KB
February 20 2025 09:05:24
root / root
0644
fsaccess.h
7.268 KB
February 20 2025 09:05:24
root / root
0644
hash.h
7.482 KB
February 20 2025 09:05:24
root / root
0644
heap.h
5.141 KB
February 20 2025 09:05:24
root / root
0644
hex.h
2.74 KB
February 20 2025 09:05:24
root / root
0644
hmacmd5.h
1.745 KB
February 20 2025 09:05:24
root / root
0644
hmacsha.h
4.405 KB
February 20 2025 09:05:24
root / root
0644
ht.h
4.293 KB
February 20 2025 09:05:24
root / root
0644
httpd.h
2.264 KB
February 20 2025 09:05:24
root / root
0644
int.h
1.063 KB
February 20 2025 09:05:24
root / root
0644
interfaceiter.h
3.047 KB
February 20 2025 09:05:24
root / root
0644
iterated_hash.h
1.021 KB
February 20 2025 09:05:24
root / root
0644
json.h
1.425 KB
February 20 2025 09:05:24
root / root
0644
keyboard.h
0.966 KB
February 20 2025 09:05:24
root / root
0644
lang.h
0.622 KB
February 20 2025 09:05:24
root / root
0644
lex.h
9.542 KB
February 20 2025 09:05:24
root / root
0644
lfsr.h
2.889 KB
February 20 2025 09:05:24
root / root
0644
lib.h
1.043 KB
February 20 2025 09:05:24
root / root
0644
likely.h
0.799 KB
February 20 2025 09:05:24
root / root
0644
list.h
5.616 KB
February 20 2025 09:05:24
root / root
0644
log.h
28.061 KB
February 20 2025 09:05:24
root / root
0644
magic.h
0.971 KB
February 20 2025 09:05:24
root / root
0644
md5.h
2.324 KB
February 20 2025 09:05:24
root / root
0644
mem.h
20.615 KB
February 20 2025 09:05:24
root / root
0644
meminfo.h
0.693 KB
February 20 2025 09:05:24
root / root
0644
msgcat.h
2.662 KB
February 20 2025 09:05:24
root / root
0644
msgs.h
8.225 KB
February 20 2025 09:05:24
root / root
0644
mutex.h
3.441 KB
February 20 2025 09:05:24
root / root
0644
mutexblock.h
1.343 KB
February 20 2025 09:05:24
root / root
0644
net.h
10.287 KB
February 20 2025 09:05:24
root / root
0644
netaddr.h
4.482 KB
February 20 2025 09:05:24
root / root
0644
netdb.h
0.843 KB
February 20 2025 09:05:24
root / root
0644
netscope.h
0.944 KB
February 20 2025 09:05:24
root / root
0644
offset.h
0.684 KB
February 20 2025 09:05:24
root / root
0644
once.h
0.96 KB
February 20 2025 09:05:24
root / root
0644
ondestroy.h
2.733 KB
February 20 2025 09:05:24
root / root
0644
os.h
0.655 KB
February 20 2025 09:05:24
root / root
0644
parseint.h
1.506 KB
February 20 2025 09:05:24
root / root
0644
platform.h
9.489 KB
February 20 2025 09:05:24
root / root
0644
pool.h
3.42 KB
February 20 2025 09:05:24
root / root
0644
portset.h
3.218 KB
February 20 2025 09:05:24
root / root
0644
print.h
2.417 KB
February 20 2025 09:05:24
root / root
0644
queue.h
5.082 KB
February 20 2025 09:05:24
root / root
0644
quota.h
2.383 KB
February 20 2025 09:05:24
root / root
0644
radix.h
6.339 KB
February 20 2025 09:05:24
root / root
0644
random.h
3.498 KB
February 20 2025 09:05:24
root / root
0644
ratelimiter.h
3.415 KB
February 20 2025 09:05:24
root / root
0644
refcount.h
8.001 KB
February 20 2025 09:05:24
root / root
0644
regex.h
0.749 KB
February 20 2025 09:05:24
root / root
0644
region.h
1.986 KB
February 20 2025 09:05:24
root / root
0644
resource.h
2.795 KB
February 20 2025 09:05:24
root / root
0644
result.h
4.865 KB
February 20 2025 09:05:24
root / root
0644
resultclass.h
1.562 KB
February 20 2025 09:05:24
root / root
0644
rwlock.h
3.718 KB
February 20 2025 09:05:24
root / root
0644
safe.h
1.32 KB
February 20 2025 09:05:24
root / root
0644
serial.h
1.336 KB
February 20 2025 09:05:24
root / root
0644
sha1.h
1.52 KB
February 20 2025 09:05:24
root / root
0644
sha2.h
5.599 KB
February 20 2025 09:05:24
root / root
0644
siphash.h
0.717 KB
February 20 2025 09:05:24
root / root
0644
sockaddr.h
5.897 KB
February 20 2025 09:05:24
root / root
0644
socket.h
35.796 KB
February 20 2025 09:05:24
root / root
0644
stat.h
0.787 KB
February 20 2025 09:05:24
root / root
0644
stats.h
3.622 KB
February 20 2025 09:05:24
root / root
0644
stdatomic.h
5.127 KB
February 20 2025 09:05:24
root / root
0644
stdio.h
1.745 KB
February 20 2025 09:05:24
root / root
0644
stdlib.h
0.688 KB
February 20 2025 09:05:24
root / root
0644
stdtime.h
1.04 KB
February 20 2025 09:05:24
root / root
0644
strerror.h
0.759 KB
February 20 2025 09:05:24
root / root
0644
string.h
5.878 KB
February 20 2025 09:05:24
root / root
0644
symtab.h
4.225 KB
February 20 2025 09:05:24
root / root
0644
syslog.h
0.824 KB
February 20 2025 09:05:24
root / root
0644
task.h
21.039 KB
February 20 2025 09:05:24
root / root
0644
taskpool.h
3.622 KB
February 20 2025 09:05:24
root / root
0644
thread.h
1.471 KB
February 20 2025 09:05:24
root / root
0644
time.h
8.668 KB
February 20 2025 09:05:24
root / root
0644
timer.h
10.542 KB
February 20 2025 09:05:24
root / root
0644
tm.h
0.874 KB
February 20 2025 09:05:24
root / root
0644
types.h
5.645 KB
February 20 2025 09:05:24
root / root
0644
utf8.h
0.906 KB
February 20 2025 09:05:24
root / root
0644
util.h
10.29 KB
February 20 2025 09:05:24
root / root
0644
version.h
0.673 KB
February 20 2025 09:05:24
root / root
0644
xml.h
1.068 KB
February 20 2025 09:05:24
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF