vulp  2.3.0
Observer.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: Apache-2.0
2 // Copyright 2022 Stéphane Caron
3 
4 #pragma once
5 
6 #include <palimpsest/Dictionary.h>
7 
8 #include <string>
9 
10 namespace vulp::observation {
11 
12 using palimpsest::Dictionary;
13 
15 class Observer {
16  public:
18  virtual ~Observer() {}
19 
21  virtual inline std::string prefix() const noexcept {
22  return "unknown_source";
23  }
24 
29  virtual void reset(const Dictionary& config) {}
30 
38  virtual void read(const Dictionary& observation) {}
39 
47  virtual void write(Dictionary& observation) {}
48 };
49 
50 } // namespace vulp::observation
Base class for observers.
Definition: Observer.h:15
virtual void reset(const Dictionary &config)
Reset observer.
Definition: Observer.h:29
virtual std::string prefix() const noexcept
Prefix of outputs in the observation dictionary.
Definition: Observer.h:21
virtual void read(const Dictionary &observation)
Read inputs from other observations.
Definition: Observer.h:38
virtual void write(Dictionary &observation)
Write outputs, called if reading was successful.
Definition: Observer.h:47
virtual ~Observer()
Destructor is virtual to deallocate lists of observers properly.
Definition: Observer.h:18
State observation.