LCOV - code coverage report
Current view: top level - nsprpub/pr/include - prinrval.h (source / functions) Hit Total Coverage
Test: output.info Lines: 8 8 100.0 %
Date: 2017-07-14 16:53:18 Functions: 8 8 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : /*
       7             : ** File:                prinrval.h
       8             : ** Description: API to interval timing functions of NSPR.
       9             : **
      10             : **
      11             : ** NSPR provides interval times that are independent of network time
      12             : ** of day values. Interval times are (in theory) accurate regardless
      13             : ** of host processing requirements and also very cheap to acquire. It
      14             : ** is expected that getting an interval time while in a synchronized
      15             : ** function (holding one's lock).
      16             : **/
      17             : 
      18             : #if !defined(prinrval_h)
      19             : #define prinrval_h
      20             : 
      21             : #include "prtypes.h"
      22             : 
      23             : PR_BEGIN_EXTERN_C
      24             : 
      25             : /**********************************************************************/
      26             : /************************* TYPES AND CONSTANTS ************************/
      27             : /**********************************************************************/
      28             : 
      29             : typedef PRUint32 PRIntervalTime;
      30             : 
      31             : /***********************************************************************
      32             : ** DEFINES:     PR_INTERVAL_MIN
      33             : **              PR_INTERVAL_MAX
      34             : ** DESCRIPTION:
      35             : **  These two constants define the range (in ticks / second) of the
      36             : **  platform dependent type, PRIntervalTime. These constants bound both
      37             : **  the period and the resolution of a PRIntervalTime. 
      38             : ***********************************************************************/
      39             : #define PR_INTERVAL_MIN 1000UL
      40             : #define PR_INTERVAL_MAX 100000UL
      41             : 
      42             : /***********************************************************************
      43             : ** DEFINES:     PR_INTERVAL_NO_WAIT
      44             : **              PR_INTERVAL_NO_TIMEOUT
      45             : ** DESCRIPTION:
      46             : **  Two reserved constants are defined in the PRIntervalTime namespace.
      47             : **  They are used to indicate that the process should wait no time (return
      48             : **  immediately) or wait forever (never time out), respectively.
      49             : **  Note: PR_INTERVAL_NO_TIMEOUT passed as input to PR_Connect is 
      50             : **  interpreted as use the OS's connect timeout.
      51             : **  
      52             : ***********************************************************************/
      53             : #define PR_INTERVAL_NO_WAIT 0UL
      54             : #define PR_INTERVAL_NO_TIMEOUT 0xffffffffUL
      55             : 
      56             : /**********************************************************************/
      57             : /****************************** FUNCTIONS *****************************/
      58             : /**********************************************************************/
      59             : 
      60             : /***********************************************************************
      61             : ** FUNCTION:    PR_IntervalNow
      62             : ** DESCRIPTION:
      63             : **  Return the value of NSPR's free running interval timer. That timer
      64             : **  can be used to establish epochs and determine intervals (be computing
      65             : **  the difference between two times).
      66             : ** INPUTS:      void
      67             : ** OUTPUTS:     void
      68             : ** RETURN:      PRIntervalTime
      69             : **  
      70             : ** SIDE EFFECTS:
      71             : **  None
      72             : ** RESTRICTIONS:
      73             : **  The units of PRIntervalTime are platform dependent. They are chosen
      74             : **  such that they are appropriate for the host OS, yet provide sufficient
      75             : **  resolution and period to be useful to clients. 
      76             : ** MEMORY:      N/A
      77             : ** ALGORITHM:   Platform dependent
      78             : ***********************************************************************/
      79        4527 : NSPR_API(PRIntervalTime) PR_IntervalNow(void);
      80             : 
      81             : /***********************************************************************
      82             : ** FUNCTION:    PR_TicksPerSecond
      83             : ** DESCRIPTION:
      84             : **  Return the number of ticks per second for PR_IntervalNow's clock.
      85             : **  The value will be in the range [PR_INTERVAL_MIN..PR_INTERVAL_MAX].
      86             : ** INPUTS:      void
      87             : ** OUTPUTS:     void
      88             : ** RETURN:      PRUint32
      89             : **  
      90             : ** SIDE EFFECTS:
      91             : **  None
      92             : ** RESTRICTIONS:
      93             : **  None
      94             : ** MEMORY:      N/A
      95             : ** ALGORITHM:   N/A
      96             : ***********************************************************************/
      97        2052 : NSPR_API(PRUint32) PR_TicksPerSecond(void);
      98             : 
      99             : /***********************************************************************
     100             : ** FUNCTION:    PR_SecondsToInterval
     101             : **              PR_MillisecondsToInterval
     102             : **              PR_MicrosecondsToInterval
     103             : ** DESCRIPTION:
     104             : **  Convert standard clock units to platform dependent intervals.
     105             : ** INPUTS:      PRUint32
     106             : ** OUTPUTS:     void
     107             : ** RETURN:      PRIntervalTime
     108             : **  
     109             : ** SIDE EFFECTS:
     110             : **  None
     111             : ** RESTRICTIONS:
     112             : **  Conversion may cause overflow, which is not reported.
     113             : ** MEMORY:      N/A
     114             : ** ALGORITHM:   N/A
     115             : ***********************************************************************/
     116          42 : NSPR_API(PRIntervalTime) PR_SecondsToInterval(PRUint32 seconds);
     117        1323 : NSPR_API(PRIntervalTime) PR_MillisecondsToInterval(PRUint32 milli);
     118         384 : NSPR_API(PRIntervalTime) PR_MicrosecondsToInterval(PRUint32 micro);
     119             : 
     120             : /***********************************************************************
     121             : ** FUNCTION:    PR_IntervalToSeconds
     122             : **              PR_IntervalToMilliseconds
     123             : **              PR_IntervalToMicroseconds
     124             : ** DESCRIPTION:
     125             : **  Convert platform dependent intervals to standard clock units.
     126             : ** INPUTS:      PRIntervalTime
     127             : ** OUTPUTS:     void
     128             : ** RETURN:      PRUint32
     129             : **  
     130             : ** SIDE EFFECTS:
     131             : **  None
     132             : ** RESTRICTIONS:
     133             : **  Conversion may cause overflow, which is not reported.
     134             : ** MEMORY:      N/A
     135             : ** ALGORITHM:   N/A
     136             : ***********************************************************************/
     137          60 : NSPR_API(PRUint32) PR_IntervalToSeconds(PRIntervalTime ticks);
     138          14 : NSPR_API(PRUint32) PR_IntervalToMilliseconds(PRIntervalTime ticks);
     139         162 : NSPR_API(PRUint32) PR_IntervalToMicroseconds(PRIntervalTime ticks);
     140             : 
     141             : PR_END_EXTERN_C
     142             : 
     143             : 
     144             : #endif /* !defined(prinrval_h) */
     145             : 
     146             : /* prinrval.h */

Generated by: LCOV version 1.13