[#BloombergLP-bdlcc-FixedQueueIndexManager-reservePushIndex] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlcc.adoc[bdlcc]::xref:BloombergLP/bdlcc/FixedQueueIndexManager.adoc[FixedQueueIndexManager]::reservePushIndex :relfileprefix: ../../../ :mrdocs: Reserve the next available index at which to enqueue an element in an (externally managed) circular buffer; load the specified `index` with the reserved index and load the specified `generation` with the current generation of the circular buffer. Return 0 on success, a negative value if the queue is disabled, and a positive value if the queue is full. If this method succeeds, other threads using this object may spin on the corresponding index state until `commitPushIndex` is called using the returned `index` and `generation` values; clients should call `commitPushIndex` quickly after this method returns, without performing any blocking operations. If this method fails the `generation` and `index` will be unmodified. The behavior is undefined if the current thread is already holding a reservation on either a push or pop index. Note that `generation` is necessary for invoking `commitPushIndex` but should not otherwise be used by the caller; the value reflects the number of times the `index` in the circular buffer has been used. == Synopsis Declared in `<bdlcc_fixedqueueindexmanager.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int reservePushIndex( unsigned int* generation, unsigned int* index); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#