.. _file_include_cmb_objectqueue.h: File cmb_objectqueue.h ====================== |exhale_lsh| :ref:`Parent directory ` (``include``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS A fixed-capacity queue where one or more producer processes (putters) can put arbitrary objects into the one end, and one or more consumer processes (getters) can get objects out of the other end. If space is not available, the producers wait, and if there is no content, the consumers wait. .. contents:: Contents :local: :backlinks: none Definition (``include/cmb_objectqueue.h``) ------------------------------------------ .. toctree:: :maxdepth: 1 program_listing_file_include_cmb_objectqueue.h.rst Detailed Description -------------------- The difference from ``cmb_buffer`` is that it only represents amounts, while ``cmb_objectqueue`` tracks the individual objects passing through the queue. An object can be anything, represented by ``void*`` here. First in first out queue order only. No method implemented to cancel random objects from the queue. No record is kept of object holders, since the ``cmb_buffer`` and ``cmb_objectqueue`` essentially deal with assigning the available space in the resource to processes, not lending pieces of a resource to processes. The objects holding a part of a ``cmb_objectqueue`` are already in the queue. Hence, no need for forced removal (drop) of holder processes either. Includes -------- - ``cmb_assert.h`` (:ref:`file_include_cmb_assert.h`) - ``cmb_resourceguard.h`` (:ref:`file_include_cmb_resourceguard.h`) - ``cmb_timeseries.h`` (:ref:`file_include_cmb_timeseries.h`) - ``cmi_resourcebase.h`` - ``stdint.h`` Included By ----------- - :ref:`file_include_cimba.h` Classes ------- - :ref:`exhale_struct_structcmb__objectqueue`