Coverage Report

Created: 2023-06-07 08:11

/work/install-coverage/include/opencv4/opencv2/flann/timer.h
Line
Count
Source (jump to first uncovered line)
1
/***********************************************************************
2
 * Software License Agreement (BSD License)
3
 *
4
 * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
5
 * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
6
 *
7
 * THE BSD LICENSE
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 *
13
 * 1. Redistributions of source code must retain the above copyright
14
 *    notice, this list of conditions and the following disclaimer.
15
 * 2. Redistributions in binary form must reproduce the above copyright
16
 *    notice, this list of conditions and the following disclaimer in the
17
 *    documentation and/or other materials provided with the distribution.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
 *************************************************************************/
30
31
#ifndef OPENCV_FLANN_TIMER_H
32
#define OPENCV_FLANN_TIMER_H
33
34
//! @cond IGNORED
35
36
#include <time.h>
37
#include "opencv2/core.hpp"
38
#include "opencv2/core/utility.hpp"
39
40
namespace cvflann
41
{
42
43
/**
44
 * A start-stop timer class.
45
 *
46
 * Can be used to time portions of code.
47
 */
48
class StartStopTimer
49
{
50
    int64 startTime;
51
52
public:
53
    /**
54
     * Value of the timer.
55
     */
56
    double value;
57
58
59
    /**
60
     * Constructor.
61
     */
62
    StartStopTimer()
63
        : startTime(0)
64
0
    {
65
0
        reset();
66
0
    }
67
68
    /**
69
     * Starts the timer.
70
     */
71
    void start()
72
0
    {
73
0
        startTime = cv::getTickCount();
74
0
    }
75
76
    /**
77
     * Stops the timer and updates timer value.
78
     */
79
    void stop()
80
0
    {
81
0
        int64 stopTime = cv::getTickCount();
82
0
        value += ( (double)stopTime - startTime) / cv::getTickFrequency();
83
0
    }
84
85
    /**
86
     * Resets the timer value to 0.
87
     */
88
    void reset()
89
0
    {
90
0
        value = 0;
91
0
    }
92
93
};
94
95
}
96
97
//! @endcond
98
99
#endif // FLANN_TIMER_H