blob: 689174573e4e5518292a6f06034ab947199f04c2 [file] [log] [blame]
Jon Medhurstaaf37a32013-06-11 12:10:56 +01001/**
Jon Medhurst15ce78d2014-04-10 09:02:02 +01002 * Copyright (C) ARM Limited 2013-2014. All rights reserved.
Jon Medhurstaaf37a32013-06-11 12:10:56 +01003 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#ifndef COUNTER_H
10#define COUNTER_H
11
12#include <string.h>
13
14class Driver;
15
16class Counter {
17public:
18 static const size_t MAX_STRING_LEN = 80;
19 static const size_t MAX_DESCRIPTION_LEN = 400;
20
21 Counter () {
22 clear();
23 }
24
25 void clear () {
26 mType[0] = '\0';
27 mEnabled = false;
Jon Medhurst15ce78d2014-04-10 09:02:02 +010028 mEvent = -1;
Jon Medhurstaaf37a32013-06-11 12:10:56 +010029 mCount = 0;
30 mKey = 0;
31 mDriver = NULL;
32 }
33
34 void setType(const char *const type) { strncpy(mType, type, sizeof(mType)); mType[sizeof(mType) - 1] = '\0'; }
35 void setEnabled(const bool enabled) { mEnabled = enabled; }
36 void setEvent(const int event) { mEvent = event; }
37 void setCount(const int count) { mCount = count; }
38 void setKey(const int key) { mKey = key; }
39 void setDriver(Driver *const driver) { mDriver = driver; }
40
41 const char *getType() const { return mType;}
42 bool isEnabled() const { return mEnabled; }
43 int getEvent() const { return mEvent; }
44 int getCount() const { return mCount; }
45 int getKey() const { return mKey; }
46 Driver *getDriver() const { return mDriver; }
47
48private:
49 // Intentionally unimplemented
50 Counter(const Counter &);
51 Counter & operator=(const Counter &);
52
53 char mType[MAX_STRING_LEN];
54 bool mEnabled;
55 int mEvent;
56 int mCount;
57 int mKey;
58 Driver *mDriver;
59};
60
61#endif // COUNTER_H