RegressorSensorBase.h 2.56 KB
Newer Older
Alessio Netti's avatar
Alessio Netti committed
1
2
3
//================================================================================
// Name        : RegressorSensorBase.h
// Author      : Alessio Netti
Micha Müller's avatar
Micha Müller committed
4
// Contact     : info@dcdb.it
Alessio Netti's avatar
Alessio Netti committed
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
// Copyright   : Leibniz Supercomputing Centre
// Description :
//================================================================================

//================================================================================
// This file is part of DCDB (DataCenter DataBase)
// Copyright (C) 2019-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 regressor Regressor analyzer plugin.
 * @ingroup analyzer
 *
 * @brief Regressor analyzer plugin.
 */

#ifndef PROJECT_REGRESSORSENSORBASE_H
#define PROJECT_REGRESSORSENSORBASE_H

#include "sensorbase.h"

/**
 * @brief Sensor base for regressor plugin
 *
 * @ingroup regressor
 */
class RegressorSensorBase : public SensorBase {

public:
    
    // Constructor and destructor
    RegressorSensorBase(const std::string& name) : SensorBase(name) {
        _trainingTarget = false;
    }

    // Copy constructor
    RegressorSensorBase(RegressorSensorBase& other) : SensorBase(other) {
        _trainingTarget = other._trainingTarget;
    }

    virtual ~RegressorSensorBase() {}

    void setTrainingTarget(bool t)      { _trainingTarget=t; }

    bool getTrainingTarget()             { return _trainingTarget; }

    void printConfig(LOG_LEVEL ll, LOGGER& lg, unsigned leadingSpaces=16) {
        SensorBase::printConfig(ll, lg, leadingSpaces);
        std::string leading(leadingSpaces, ' ');
        //LOG_VAR(ll) << leading << "    Training target: " << (_trainingTarget ? std::string("on") : std::string("off"));
    }

protected:
    
    bool _trainingTarget;
};

using RegressorSBPtr = std::shared_ptr<RegressorSensorBase>;

#endif //PROJECT_REGRESSORSENSORBASE_H