File: HitCount.h

package info (click to toggle)
sonic-visualiser 5.2.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,744 kB
  • sloc: cpp: 158,888; ansic: 11,920; sh: 1,785; makefile: 517; xml: 64; perl: 31
file content (76 lines) | stat: -rw-r--r-- 1,387 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

/*
    Sonic Visualiser
    An audio file viewer and annotation editor.
    Centre for Digital Music, Queen Mary, University of London.
    
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.  See the file
    COPYING included with this distribution for more information.
*/

#ifndef HIT_COUNT_H
#define HIT_COUNT_H

#include <string>

//#define NO_HIT_COUNTS 1

//#define WANT_HIT_COUNTS 1

#ifdef NDEBUG
#ifndef WANT_HIT_COUNTS
#define NO_HIT_COUNTS 1
#endif
#endif

namespace sv {

#ifndef NO_HIT_COUNTS

/**
 * Profile class for counting cache hits and the like.
 */
class HitCount
{
public:
    HitCount(std::string name) :
        m_name(name),
        m_hit(0),
        m_partial(0),
        m_miss(0)
    { }
    
    ~HitCount();

    void hit() { ++m_hit; }
    void partial() { ++m_partial; }
    void miss() { ++m_miss; }

private:
    std::string m_name;
    int m_hit;
    int m_partial;
    int m_miss;
};

#else // NO_HIT_COUNTS

class HitCount
{
public:
    HitCount(std::string) {}

    void hit() {}
    void partial() {}
    void miss() {}
};

#endif

} // end namespace sv

#endif