handle_to_data[c.first].push_back(std::make_pair(time,c.second));
size_t index = handle_to_data[c.first].size() - 1;
time_to_index[c.first][time] = index;
- index_to_time[c.first][index] = time;
}
sample_times_ndx++;
}
{
handle_to_data.clear();
time_to_index.clear();
- index_to_time.clear();
last_data.clear();
sample_times_ndx = 0;
sample_times = time;
handle_to_data[c.first].push_back(std::make_pair(time.back(),c.second));
size_t index = handle_to_data[c.first].size() - 1;
time_to_index[c.first][time.back()] = index;
- index_to_time[c.first][index] = time.back();
}
}
}
{
handle_to_data.clear();
time_to_index.clear();
- index_to_time.clear();
last_data.clear();
sample_times_ndx = 0;
sample_times = time;
handle_to_data[c.first].push_back(std::make_pair(time.back(),c.second));
size_t index = handle_to_data[c.first].size() - 1;
time_to_index[c.first][time.back()] = index;
- index_to_time[c.first][index] = time.back();
}
}
}
size_t index = time_to_index[signal][time];
return data.at(index).second;
} else {
- size_t index = 0;
- for(size_t i = 0; i< data.size(); i++) {
- uint64_t t = index_to_time[signal][i];
- if (t > time)
- break;
- index = i;
- }
- return data.at(index).second;
+ log_error("No data for signal %d at time %d\n", (int)signal, (int)time);
}
}
std::map<fstHandle, std::vector<std::pair<uint64_t, std::string>>> handle_to_data;
std::map<fstHandle, std::string> last_data;
std::map<fstHandle, std::map<uint64_t, size_t>> time_to_index;
- std::map<fstHandle, std::map<size_t, uint64_t>> index_to_time;
std::vector<uint64_t> sample_times;
size_t sample_times_ndx;
double timescale;