diff PrivateQueue.c @ 11:3562716ebdbd

added numInPrivQ service
author Me
date Thu, 04 Nov 2010 17:54:08 -0700
parents 62326cc8e6f4
children 3134d8a1e8e3 447e97a52426
line diff
     1.1 --- a/PrivateQueue.c	Tue Nov 02 16:48:22 2010 -0700
     1.2 +++ b/PrivateQueue.c	Thu Nov 04 17:54:08 2010 -0700
     1.3 @@ -2,8 +2,6 @@
     1.4   *  Copyright 2009 OpenSourceStewardshipFoundation.org
     1.5   *  Licensed under GNU General Public License version 2
     1.6   *
     1.7 - * NOTE: this version of SRSW correct as of April 25, 2010
     1.8 - *
     1.9   * Author: seanhalle@yahoo.com
    1.10   */
    1.11  
    1.12 @@ -83,6 +81,24 @@
    1.13     return NULL;
    1.14   }
    1.15  
    1.16 +int32
    1.17 +numInPrivQ( PrivQueueStruc *Q )
    1.18 + { int32 size, numIn;
    1.19 + 
    1.20 +   if( Q->insertPos < Q->extractPos )
    1.21 +    {    //insert has wrapped around so numIn is:
    1.22 +         // insertPos + size - extractPos -- Consider, is empty when
    1.23 +         // extractPos = endOfData and insert = start -- correctly get zero
    1.24 +      size  = Q->endOfData - Q->startOfData;
    1.25 +      numIn = Q->insertPos + size - Q->extractPos;
    1.26 +    }
    1.27 +   else
    1.28 +    {
    1.29 +      numIn =  Q->insertPos -  Q->extractPos -1;//-1 bec empty @ side-by-side
    1.30 +    }
    1.31 +   return numIn;
    1.32 + }
    1.33 +
    1.34  
    1.35  /*Expands the queue size automatically when it's full
    1.36   */