9 #include <framework/utilities/NumberSequence.h> 
   23     std::vector<std::string> tokens;
 
   24     unsigned int lastdelimiter = 0;
 
   25     for (
unsigned int i = 0; i < str.size(); ++i) {
 
   27         tokens.push_back(str.substr(lastdelimiter, i - lastdelimiter));
 
   28         lastdelimiter = i + 1;
 
   31     std::string last = str.substr(lastdelimiter);
 
   32     if (last.size() != 0) {
 
   33       tokens.push_back(last);
 
   37     std::vector<std::pair<int64_t, int64_t>> intervals;
 
   38     intervals.reserve(tokens.size());
 
   39     for (
const auto& token : tokens) {
 
   40       size_t interval_marker_position = token.find(
':');
 
   42       if (interval_marker_position == std::string::npos) {
 
   43         int64_t number = std::stol(token);
 
   44         intervals.emplace_back(number, number);
 
   46         int64_t interval_begin = std::stol(token.substr(0, interval_marker_position));
 
   47         int64_t interval_end = std::stol(token.substr(interval_marker_position + 1));
 
   48         intervals.emplace_back(interval_begin, interval_end);
 
   53     std::set<int64_t> sequence;
 
   54     for (
const auto& interval : intervals) {
 
   55       for (int64_t number = interval.first; number <= interval.second; ++number)
 
   56         sequence.insert(number);
 
std::set< int64_t > generate_number_sequence(const std::string &str)
Generate a sequence of numbers defined by a string.
Abstract base class for different kinds of events.