nvmlSensorBase.h 2.84 KB
Newer Older
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//================================================================================
// Name        : nvmlSensorBase.h
// Author      : Weronika Filinger, EPCC @ The University of Edinburgh
// Contact     :
// Copyright   : 
// Description : Sensor base class for nvml plugin.
//================================================================================

//================================================================================
// This file is part of DCDB (DataCenter DataBase)
// Copyright (C) 2019 Leibniz Supercomputing Centre
//
// 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.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//================================================================================

/**
 * @defgroup nvml nvml plugin
 * @ingroup  pusherplugins
 *
 * @brief Describe your plugin in one sentence
 */

#ifndef NVML_NVMLSENSORBASE_H_
#define NVML_NVMLSENSORBASE_H_

#include "sensorbase.h"

/* 
 * TODO
 * Add plugin specific includes
 */

/**
 * @brief SensorBase specialization for this plugin.
 *
 * @ingroup nvml
 */
class nvmlSensorBase : public SensorBase {
public:
    nvmlSensorBase(const std::string& name) :
        SensorBase(name) {
        /*
         * TODO
         * Initialize plugin specific attributes
         */
    }

    nvmlSensorBase(const nvmlSensorBase& other) :
        SensorBase(other) {
        /*
         * TODO
         * Copy construct plugin specific attributes
         */
    }

    virtual ~nvmlSensorBase() {
        /*
         * TODO
         * If necessary, deconstruct plugin specific attributes
         */
    }

    nvmlSensorBase& operator=(const nvmlSensorBase& other) {
        SensorBase::operator=(other);
        /*
         * TODO
         * Implement assignment operator for plugin specific attributes
         */
         
        return *this;
    }

    /*
     * TODO
     * Getters and Setters for plugin specific attributes
     */

    void printConfig(LOG_LEVEL ll, LOGGER& lg, unsigned leadingSpaces=16) {
        /*
         * TODO
         * Log attributes here for debug reasons
         */
        LOG_VAR(ll) << "     NumSpacesAsIndention: " << 5;
    }

protected:
    /*
     * TODO
     * Add plugin specific attributes here
     */

};

#endif /* NVML_NVMLSENSORBASE_H_ */