LCOV - code coverage report
Current view: top level - Core - OOAsyncQueue.h (source / functions) Hit Total Coverage
Test: coverxygen.info Lines: 0 14 0.0 %
Date: 2025-05-28 07:50:54 Functions: 0 0 -

          Line data    Source code
       1           0 : /*
       2             : 
       3             : OOAsyncQueue.h
       4             : By Jens Ayton
       5             : 
       6             : OOAsyncQueue is used to pass messages (in the form of arbitrary objects)
       7             : between threads. It is many-to-many capable, i.e. it is safe to send messages
       8             : from any number of threads and to read messages from any number of threads.
       9             : 
      10             : 
      11             : Copyright (C) 2007-2013 Jens Ayton
      12             : 
      13             : Permission is hereby granted, free of charge, to any person obtaining a copy
      14             : of this software and associated documentation files (the "Software"), to deal
      15             : in the Software without restriction, including without limitation the rights
      16             : to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      17             : copies of the Software, and to permit persons to whom the Software is
      18             : furnished to do so, subject to the following conditions:
      19             : 
      20             : The above copyright notice and this permission notice shall be included in all
      21             : copies or substantial portions of the Software.
      22             : 
      23             : THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      24             : IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      25             : FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      26             : AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      27             : LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      28             : OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      29             : SOFTWARE.
      30             : 
      31             : */
      32             : 
      33             : #import <Foundation/Foundation.h>
      34             : 
      35             : 
      36           0 : @interface OOAsyncQueue: NSObject
      37             : {
      38             : @private
      39           0 :         NSConditionLock                         *_lock;
      40           0 :         struct OOAsyncQueueElement      *_head,
      41           0 :                                                                 *_tail,
      42           0 :                                                                 *_pool;
      43           0 :         unsigned                                        _elemCount,
      44           0 :                                                                 _poolCount;
      45             : }
      46             : 
      47           0 : - (BOOL)enqueue:(id)object;     // Returns NO on failure, or if object is nil.
      48             : 
      49           0 : - (id)dequeue;                  // Blocks until the queue is non-empty.
      50           0 : - (id)tryDequeue;               // Returns nil if empty.
      51             : 
      52             : // Due to the asynchronous nature of the queue, these values are immediately out of date.
      53           0 : - (BOOL)empty;
      54           0 : - (unsigned)count;
      55             : 
      56           0 : - (void)emptyQueue;             // Releases all elements.
      57             : 
      58             : @end

Generated by: LCOV version 1.14