blink1-control
PatternConfig.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <memory>
9 #include <ostream>
10 #include <string>
11 #include <vector>
12 
14 
15 namespace blink1_control::config {
16 
20  struct PatternConfig {
21 
25  std::string name;
26 
30  std::vector<std::unique_ptr<PatternCommand>> before;
31 
35  std::vector<std::unique_ptr<PatternCommand>> after;
36 
40  std::vector<std::unique_ptr<PatternCommand>> pattern;
41 
45  int repeat;
46 
53  friend std::ostream& operator<<(std::ostream& os, blink1_control::config::PatternConfig& config) {
54  os << "{name: " << config.name << ", repeat: " << config.repeat << ", pattern: {";
55  bool first = true;
56  for (auto& configPattern : config.pattern) {
57  if (first) {
58  first = false;
59  } else {
60  os << ", ";
61  }
62  os << *configPattern;
63  }
64  os << "}}";
65 
66  return os;
67  }
68  };
69 }
blink1_control::config::PatternConfig::before
std::vector< std::unique_ptr< PatternCommand > > before
Definition: PatternConfig.hpp:30
blink1_control::config::PatternConfig::name
std::string name
Definition: PatternConfig.hpp:25
blink1_control::config::PatternConfig::operator<<
friend std::ostream & operator<<(std::ostream &os, blink1_control::config::PatternConfig &config)
Definition: PatternConfig.hpp:53
blink1_control::config::PatternConfig::pattern
std::vector< std::unique_ptr< PatternCommand > > pattern
Definition: PatternConfig.hpp:40
blink1_control::config
Definition: ConditionConfig.hpp:12
blink1_control::config::PatternConfig
Definition: PatternConfig.hpp:20
PatternCommand.hpp
Header file for blink1_control::config::PatternCommand and derived classes.
blink1_control::config::PatternConfig::after
std::vector< std::unique_ptr< PatternCommand > > after
Definition: PatternConfig.hpp:35
blink1_control::config::PatternConfig::repeat
int repeat
Definition: PatternConfig.hpp:45