blob: cde5519c5cf21fcad4dec375671a964c7c2bbcce [file] [log] [blame]
Tomáš Peckaddf04a32020-06-17 15:32:01 +02001/*
2 * Copyright (C) 2020 CESNET, https://photonics.cesnet.cz/
3 *
4 * Written by Tomáš Pecka <tomas.pecka@fit.cvut.cz>
5 *
6*/
7#pragma once
8
9#include <memory>
Tomáš Pecka261c8862020-11-05 11:23:08 +010010#include "health/State.h"
Tomáš Peckaddf04a32020-06-17 15:32:01 +020011
Tomáš Pecka261c8862020-11-05 11:23:08 +010012namespace velia::health {
Tomáš Peckaddf04a32020-06-17 15:32:01 +020013
14class LedSysfsDriver;
15
16class LedOutputCallback {
17public:
18 LedOutputCallback(std::shared_ptr<LedSysfsDriver> red, std::shared_ptr<LedSysfsDriver> green, std::shared_ptr<LedSysfsDriver> blue);
Tomáš Pecka7ff533b2020-07-17 15:01:16 +020019 ~LedOutputCallback();
20 void reset();
Tomáš Peckaddf04a32020-06-17 15:32:01 +020021 void operator()(State state);
22
23private:
24 std::shared_ptr<LedSysfsDriver> m_redLed, m_greenLed, m_blueLed;
25};
26
Tomáš Pecka261c8862020-11-05 11:23:08 +010027}