52#ifndef QSC_COLLECTION_H
53#define QSC_COLLECTION_H
58QSC_CPLUSPLUS_ENABLED_START
106#define QSC_COLLECTION_KEY_WIDTH 16ULL
112#define QSC_COLLECTION_MAX_ENTRIES 32768
118#define QSC_COLLECTION_MAX_WIDTH 102400000
255#if defined(QSC_DEBUG_MODE)
266QSC_CPLUSPLUS_ENABLED_END
Asynchronous Thread and Mutex Management Functions.
QSC_EXPORT_API size_t qsc_collection_size(const qsc_collection_state *ctx)
Get the serialized collection size.
Definition collection.c:386
QSC_EXPORT_API void qsc_collection_erase(qsc_collection_state *ctx)
Erase the collection.
Definition collection.c:159
QSC_EXPORT_API bool qsc_collection_find(const qsc_collection_state *ctx, uint8_t *item, const uint8_t *key)
Find an item in the collection.
Definition collection.c:173
QSC_EXPORT_API void qsc_collection_deserialize(qsc_collection_state *ctx, const uint8_t *input)
Deserialize a collection.
Definition collection.c:94
QSC_EXPORT_API void qsc_collection_remove(qsc_collection_state *ctx, const uint8_t *key)
Remove an item from the collection.
Definition collection.c:264
QSC_EXPORT_API void qsc_collection_dispose(qsc_collection_state *ctx)
Dispose of the collection.
Definition collection.c:125
QSC_EXPORT_API void qsc_collection_item(qsc_collection_state *ctx, uint8_t *item, size_t index)
Retrieve a collection item by index.
Definition collection.c:246
QSC_EXPORT_API void qsc_collection_initialize(qsc_collection_state *ctx, uint32_t width)
Initialize the collection.
Definition collection.c:230
QSC_EXPORT_API size_t qsc_collection_serialize(uint8_t *output, const qsc_collection_state *ctx)
Serialize the collection.
Definition collection.c:354
QSC_EXPORT_API void qsc_collection_add(qsc_collection_state *ctx, const uint8_t *item, const uint8_t *key)
Add an item to the collection.
Definition collection.c:8
QSC_EXPORT_API bool qsc_collection_item_exists(const qsc_collection_state *ctx, const uint8_t *key)
Check if an item exists in the collection.
Definition collection.c:205
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition qsccommon.h:605
Collection state structure.
Definition collection.h:129
uint8_t * keys
Definition collection.h:131
uint32_t width
Definition collection.h:133
uint32_t count
Definition collection.h:132
uint8_t * items
Definition collection.h:130
qsc_mutex opmtx
Definition collection.h:134