diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-01-30 17:42:00 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-01-30 17:42:00 +0100 |
commit | 6c4af0398d260316dd2dd2358a02000cbf84ceba (patch) | |
tree | fec82f367e1bb6ea91865aa6fcaa1027ee3614b4 /src/include | |
parent | 9600ac83094c6738831a79e5cb82b02f8d560064 (diff) | |
download | gnunet-6c4af0398d260316dd2dd2358a02000cbf84ceba.tar.gz gnunet-6c4af0398d260316dd2dd2358a02000cbf84ceba.zip |
allow external code to use DLL pointers of envelopes, under very particular circumstances
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/gnunet_mq_lib.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/include/gnunet_mq_lib.h b/src/include/gnunet_mq_lib.h index 108ba5d54..b527b58e8 100644 --- a/src/include/gnunet_mq_lib.h +++ b/src/include/gnunet_mq_lib.h | |||
@@ -269,6 +269,42 @@ typedef void | |||
269 | 269 | ||
270 | 270 | ||
271 | /** | 271 | /** |
272 | * Insert @a env into the envelope DLL starting at @a env_head | ||
273 | * Note that @a env must not be in any MQ while this function | ||
274 | * is used with DLLs defined outside of the MQ module. This | ||
275 | * is just in case some application needs to also manage a | ||
276 | * FIFO of envelopes independent of MQ itself and wants to | ||
277 | * re-use the pointers internal to @a env. Use with caution. | ||
278 | * | ||
279 | * @param[in|out] env_head of envelope DLL | ||
280 | * @param[in|out] env_tail tail of envelope DLL | ||
281 | * @param[in|out] env element to insert at the tail | ||
282 | */ | ||
283 | void | ||
284 | GNUNET_MQ_dll_insert_tail (struct GNUNET_MQ_Envelope **env_head, | ||
285 | struct GNUNET_MQ_Envelope **env_tail, | ||
286 | struct GNUNET_MQ_Envelope *env); | ||
287 | |||
288 | |||
289 | /** | ||
290 | * Remove @a env from the envelope DLL starting at @a env_head. | ||
291 | * Note that @a env must not be in any MQ while this function | ||
292 | * is used with DLLs defined outside of the MQ module. This | ||
293 | * is just in case some application needs to also manage a | ||
294 | * FIFO of envelopes independent of MQ itself and wants to | ||
295 | * re-use the pointers internal to @a env. Use with caution. | ||
296 | * | ||
297 | * @param[in|out] env_head of envelope DLL | ||
298 | * @param[in|out] env_tail tail of envelope DLL | ||
299 | * @param[in|out] env element to remove from the DLL | ||
300 | */ | ||
301 | void | ||
302 | GNUNET_MQ_dll_remove (struct GNUNET_MQ_Envelope **env_head, | ||
303 | struct GNUNET_MQ_Envelope **env_tail, | ||
304 | struct GNUNET_MQ_Envelope *env); | ||
305 | |||
306 | |||
307 | /** | ||
272 | * Message handler for a specific message type. | 308 | * Message handler for a specific message type. |
273 | */ | 309 | */ |
274 | struct GNUNET_MQ_MessageHandler | 310 | struct GNUNET_MQ_MessageHandler |