This commit is contained in:
2026-06-14 19:09:18 +01:00
parent 14bd1a9271
commit 13fa90a0e9
3958 changed files with 999286 additions and 4 deletions
+419
View File
@@ -0,0 +1,419 @@
.TH "ktxHashList" 3 "Sun Jun 14 2026 18:00:57" "Version 0.0.0" "libktx Reference" \" -*- nroff -*-
.ad l
.nh
.SH NAME
ktxHashList \- Opaque handle to a \fBktxHashList\fP\&.
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <ktx\&.h>\fP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "void \fBktxHashList_Construct\fP (\fBktxHashList\fP *pHead)"
.br
.RI "Construct an empty hash list for storing key-value pairs\&. "
.ti -1c
.RI "void \fBktxHashList_ConstructCopy\fP (\fBktxHashList\fP *pHead, \fBktxHashList\fP orig)"
.br
.RI "Construct a hash list by copying another\&. "
.ti -1c
.RI "void \fBktxHashList_Destruct\fP (\fBktxHashList\fP *pHead)"
.br
.RI "Destruct a hash list\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_Create\fP (\fBktxHashList\fP **ppHl)"
.br
.RI "Create an empty hash list for storing key-value pairs\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_CreateCopy\fP (\fBktxHashList\fP **ppHl, \fBktxHashList\fP orig)"
.br
.RI "Create a copy of a hash list\&. "
.ti -1c
.RI "void \fBktxHashList_Destroy\fP (\fBktxHashList\fP *pHead)"
.br
.RI "Destroy a hash list\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_AddKVPair\fP (\fBktxHashList\fP *pHead, const char *key, unsigned int valueLen, const void *value)"
.br
.RI "Add a key value pair to a hash list\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_DeleteKVPair\fP (\fBktxHashList\fP *pHead, const char *key)"
.br
.RI "Delete a key value pair in a hash list\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_DeleteEntry\fP (\fBktxHashList\fP *pHead, \fBktxHashListEntry\fP *pEntry)"
.br
.RI "Delete an entry from a hash list\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_FindEntry\fP (\fBktxHashList\fP *pHead, const char *key, \fBktxHashListEntry\fP **ppEntry)"
.br
.RI "Looks up a key in a hash list and returns the entry\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_FindValue\fP (\fBktxHashList\fP *pHead, const char *key, unsigned int *pValueLen, void **ppValue)"
.br
.RI "Looks up a key in a hash list and returns the value\&. "
.ti -1c
.RI "\fBktxHashListEntry\fP * \fBktxHashList_Next\fP (\fBktxHashListEntry\fP *entry)"
.br
.RI "Returns the next entry in a \fBktxHashList\fP\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_Serialize\fP (\fBktxHashList\fP *pHead, unsigned int *pKvdLen, unsigned char **ppKvd)"
.br
.RI "Serialize a hash list to a block of data suitable for writing to a file\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_Sort\fP (\fBktxHashList\fP *pHead)"
.br
.RI "Sort a hash list in order of the UTF8 codepoints\&. "
.ti -1c
.RI "\fBKTX_error_code\fP \fBktxHashList_Deserialize\fP (\fBktxHashList\fP *pHead, unsigned int kvdLen, void *pKvd)"
.br
.RI "Construct a hash list from a block of serialized key-value data read from a file\&. "
.in -1c
.SH "Detailed Description"
.PP
Opaque handle to a \fBktxHashList\fP\&.
.SH "Member Function Documentation"
.PP
.SS "\fBKTX_error_code\fP ktxHashList_AddKVPair (\fBktxHashList\fP * pHead, const char * key, unsigned int valueLen, const void * value)"
.PP
Add a key value pair to a hash list\&. The value can be empty, i\&.e, its length can be 0\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIkey\fP pointer to the UTF8 NUL-terminated string to be used as the key\&.
.br
\fIvalueLen\fP the number of bytes of data in \fRvalue\fP\&.
.br
\fIvalue\fP pointer to the bytes of data constituting the value\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRpHead\fP, \fRkey\fP or \fRvalue\fP are NULL, \fRkey\fP is an empty string or \fRvalueLen\fP == 0\&.
.RE
.PP
.SS "void ktxHashList_Construct (\fBktxHashList\fP * pHead)"
.PP
Construct an empty hash list for storing key-value pairs\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the location to write the list head\&.
.RE
.PP
.SS "void ktxHashList_ConstructCopy (\fBktxHashList\fP * pHead, \fBktxHashList\fP orig)"
.PP
Construct a hash list by copying another\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to head of the list\&.
.br
\fIorig\fP head of the original hash list\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_Create (\fBktxHashList\fP ** ppHl)"
.PP
Create an empty hash list for storing key-value pairs\&.
.PP
\fBParameters\fP
.RS 4
\fIppHl\fP address of a variable in which to set a pointer to the newly created hash list\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_OUT_OF_MEMORY\fP\fP if not enough memory\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_CreateCopy (\fBktxHashList\fP ** ppHl, \fBktxHashList\fP orig)"
.PP
Create a copy of a hash list\&.
.PP
\fBParameters\fP
.RS 4
\fIppHl\fP address of a variable in which to set a pointer to the newly created hash list\&.
.br
\fIorig\fP head of the \fBktxHashList\fP to copy\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_OUT_OF_MEMORY\fP\fP if not enough memory\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_DeleteEntry (\fBktxHashList\fP * pHead, \fBktxHashListEntry\fP * pEntry)"
.PP
Delete an entry from a hash list\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIpEntry\fP pointer to the \fBktxHashListEntry\fP to delete\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRpHead\fP is NULL or \fRkey\fP is an empty string\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_DeleteKVPair (\fBktxHashList\fP * pHead, const char * key)"
.PP
Delete a key value pair in a hash list\&. Is a nop if the key is not in the hash\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIkey\fP pointer to the UTF8 NUL-terminated string to be used as the key\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRpHead\fP is NULL or \fRkey\fP is an empty string\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_Deserialize (\fBktxHashList\fP * pHead, unsigned int kvdLen, void * pKvd)"
.PP
Construct a hash list from a block of serialized key-value data read from a file\&.
.PP
\fBNote\fP
.RS 4
The bytes of the 32-bit key-value lengths within the serialized data are expected to be in native endianness\&.
.RE
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIkvdLen\fP the length of the serialized key-value data\&.
.br
\fIpKvd\fP pointer to the serialized key-value data\&. table\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_OPERATION\fP\fP if \fRpHead\fP does not point to an empty list\&.
.br
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRpKvd\fP or \fRpHt\fP is NULL or kvdLen == 0\&.
.br
\fI\fBKTX_OUT_OF_MEMORY\fP\fP there was not enough memory to create the hash table\&.
.RE
.PP
.SS "void ktxHashList_Destroy (\fBktxHashList\fP * pHead)"
.PP
Destroy a hash list\&. All memory associated with the hash list's keys and values is freed\&. The hash list is also freed\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the hash list to be destroyed\&.
.RE
.PP
.SS "void ktxHashList_Destruct (\fBktxHashList\fP * pHead)"
.PP
Destruct a hash list\&. All memory associated with the hash list's keys and values is freed\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the hash list to be destroyed\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_FindEntry (\fBktxHashList\fP * pHead, const char * key, \fBktxHashListEntry\fP ** ppEntry)"
.PP
Looks up a key in a hash list and returns the entry\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIkey\fP pointer to a UTF8 NUL-terminated string to find\&.
.br
\fIppEntry\fP \fR*ppEntry\fP is set to the point at the \fBktxHashListEntry\fP\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRThis\fP, \fRkey\fP or \fRpValueLen\fP or \fRppValue\fP is NULL\&.
.br
\fI\fBKTX_NOT_FOUND\fP\fP an entry matching \fRkey\fP was not found\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_FindValue (\fBktxHashList\fP * pHead, const char * key, unsigned int * pValueLen, void ** ppValue)"
.PP
Looks up a key in a hash list and returns the value\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIkey\fP pointer to a UTF8 NUL-terminated string to find\&.
.br
\fIpValueLen\fP \fR*pValueLen\fP is set to the number of bytes of data in the returned value\&.
.br
\fIppValue\fP \fR*ppValue\fP is set to the point to the value for \fRkey\fP\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRThis\fP, \fRkey\fP or \fRpValueLen\fP or \fRppValue\fP is NULL\&.
.br
\fI\fBKTX_NOT_FOUND\fP\fP an entry matching \fRkey\fP was not found\&.
.RE
.PP
.SS "\fBktxHashListEntry\fP * ktxHashList_Next (\fBktxHashListEntry\fP * entry)"
.PP
Returns the next entry in a \fBktxHashList\fP\&. Use for iterating through the list:
.PP
.nf
ktxHashListEntry* entry;
for (entry = listHead; entry != NULL; entry = ktxHashList_Next(entry)) {
\&.\&.\&.
};
.fi
.PP
.PP
Note
.PP
\fBParameters\fP
.RS 4
\fIentry\fP pointer to a hash list entry\&. Note that a ktxHashList*, i\&.e\&. the list head, is also a pointer to an entry so can be passed to this function\&.
.RE
.PP
\fBReturns\fP
.RS 4
a pointer to the next entry or NULL\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_Serialize (\fBktxHashList\fP * pHead, unsigned int * pKvdLen, unsigned char ** ppKvd)"
.PP
Serialize a hash list to a block of data suitable for writing to a file\&. The caller is responsible for freeing the data block returned by this function\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.br
\fIpKvdLen\fP \fR*pKvdLen\fP is set to the number of bytes of data in the returned data block\&.
.br
\fIppKvd\fP \fR*ppKvd\fP is set to the point to the block of memory containing the serialized data or NULL\&. if the hash list is empty\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRThis\fP, \fRpKvdLen\fP or \fRppKvd\fP is NULL\&.
.br
\fI\fBKTX_OUT_OF_MEMORY\fP\fP there was not enough memory to serialize the data\&.
.RE
.PP
.SS "\fBKTX_error_code\fP ktxHashList_Sort (\fBktxHashList\fP * pHead)"
.PP
Sort a hash list in order of the UTF8 codepoints\&.
.PP
\fBParameters\fP
.RS 4
\fIpHead\fP pointer to the head of the target hash list\&.
.RE
.PP
\fBReturns\fP
.RS 4
KTX_SUCCESS or one of the following error codes\&.
.RE
.PP
\fBExceptions\fP
.RS 4
\fI\fBKTX_INVALID_VALUE\fP\fP if \fRThis\fP is NULL\&.
.RE
.PP
.SH "Author"
.PP
Generated automatically by Doxygen for libktx Reference from the source code\&.