//===-- rosa/agent/SystemStateDetector.hpp ----------------------*- C++ -*-===//
//
//                                 The RoSA Framework
//
//===----------------------------------------------------------------------===//
///
/// \file rosa/agent/SystemStateDetector.hpp
///
/// \author Maximilian Götzinger (maximilian.goetzinger@tuwien.ac.at)
///
/// \date 2019
///
/// \brief Definition of *system state detector* *functionality*.
///
//===----------------------------------------------------------------------===//

#ifndef ROSA_AGENT_SYSTEMSTATEDETECTOR_HPP
#define ROSA_AGENT_SYSTEMSTATEDETECTOR_HPP

#include "rosa/agent/Functionality.h"
#include "rosa/agent/History.hpp"
#include <type_traits>

namespace rosa {
namespace agent {

/// TODO TEXT
template <typename CONFDATATYPE, HistoryPolicy HP>
class SystemStateDetector : public Functionality {

  /* //TODO: STATIC_ASSERT
// Make sure the actual type arguments are matching our expectations.
STATIC_ASSERT(std::is_arithmetic<CONFDATATYPE>::value,
              "confidence abstraction type is not to arithmetic");
*/

private:
  unsigned int NextSignalStateID;

public:
  SystemStateDetector() : NextSignalStateID(1) {}
};

} // End namespace agent
} // End namespace rosa

#endif // ROSA_AGENT_SYSTEMSTATEDETECTOR_HPP
