24.09., 9:00 - 11:00: Due to updates GitLab will be unavailable for some minutes between 09:00 and 11:00.

SmoothingConfigurator.h 2.46 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
//================================================================================
// Name        : SmoothingConfigurator.h
// Author      : Alessio Netti
// Contact     : info@dcdb.it
// 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.
//================================================================================

#ifndef PROJECT_SMOOTHINGCONFIGURATOR_H
#define PROJECT_SMOOTHINGCONFIGURATOR_H

#include "../../includes/OperatorConfiguratorTemplate.h"
#include "SmoothingOperator.h"

/**
 * @brief Configurator for the smoothing plugin.
 *
 * @ingroup smoothing
 */
class SmoothingConfigurator : virtual public OperatorConfiguratorTemplate<SmoothingOperator, SmoothingSensorBase> {

public:
    SmoothingConfigurator();
43
    virtual ~SmoothingConfigurator();
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

private:
    void sensorBase(SmoothingSensorBase& s, CFG_VAL config) override;
    void operatorAttributes(SmoothingOperator& op, CFG_VAL config) override;
    bool unit(UnitTemplate<SmoothingSensorBase>& u) override;

    bool readUnits(SmoothingOperator& op, std::vector<SmoothingSBPtr>& protoInputs, std::vector<SmoothingSBPtr>& protoOutputs, 
            std::vector<SmoothingSBPtr>& protoGlobalOutputs, inputMode_t inputMode) override;

    std::string _stripTopic(const std::string& topic, const std::string& separator);

};

extern "C" OperatorConfiguratorInterface* create() {
    return new SmoothingConfigurator;
}

extern "C" void destroy(OperatorConfiguratorInterface* c) {
    delete c;
}

#endif //PROJECT_SMOOTHINGCONFIGURATOR_H