7#include "collection.hpp"
16 "Found a macro 'Unsorted' (probably from X11), conflicting with `rerun::SortingStatus::Unsorted`. Add '#undef Unsorted' before '#include <rerun.hpp>' to work around this."
46 std::shared_ptr<arrow::Array>
array;
80 std::move(sequence_points),
98 std::move(sequence_points),
110 [[deprecated(
"Use 'from_duration_nanos' or `from_nanos_since_epoch' instead"
118 std::move(times_in_nanoseconds),
130 [[deprecated(
"Use 'from_duration_secs' or `from_secs_since_epoch' instead"
147 template <
typename TRep,
typename TPeriod>
149 std::string timeline_name,
150 const Collection<std::chrono::duration<TRep, TPeriod>>& durations,
153 std::vector<int64_t> times(durations.size());
154 for (
size_t i = 0; i < durations.size(); i++) {
156 std::chrono::duration_cast<std::chrono::nanoseconds>(durations[i]).count();
166 template <
typename TRep,
typename TPeriod>
168 std::string timeline_name,
169 const Collection<std::chrono::duration<TRep, TPeriod>>& chrono_times,
172 return from_durations<TRep, TPeriod>(timeline_name, chrono_times,
sorting_status);
188 std::move(duration_in_nanos),
204 std::vector<int64_t> duration_in_nanos;
205 duration_in_nanos.reserve(duration_in_secs.
size());
206 for (
auto time_in_secs : duration_in_secs) {
207 duration_in_nanos.push_back(
static_cast<int64_t
>(time_in_secs * 1.0e9 + 0.5));
211 std::move(duration_in_nanos),
219 template <
typename TClock>
221 std::string timeline_name,
222 const Collection<std::chrono::time_point<TClock>>& time_points,
225 std::vector<int64_t> nanos_since_epoch;
226 nanos_since_epoch.reserve(time_points.size());
227 for (
auto timepoint : time_points) {
228 auto nanos = std::chrono::duration_cast<std::chrono::nanoseconds>(
229 timepoint.time_since_epoch()
231 nanos_since_epoch.push_back(nanos.count());
234 std::move(timeline_name),
253 std::move(timestamp_in_nanos),
269 std::vector<int64_t> timestamp_in_nanos;
270 timestamp_in_nanos.reserve(timestamp_in_secs.
size());
271 for (
auto time_in_secs : timestamp_in_secs) {
272 timestamp_in_nanos.push_back(
static_cast<int64_t
>(time_in_secs * 1.0e9 + 0.5));
275 std::move(timeline_name),
276 std::move(timestamp_in_nanos),
Generic collection of elements that are roughly contiguous in memory.
Definition collection.hpp:49
size_t size() const
Returns the number of instances in this collection.
Definition collection.hpp:291
Status outcome object (success or error) returned for fallible operations.
Definition error.hpp:99
All Rerun C++ types and functions are in the rerun namespace or one of its nested namespaces.
Definition rerun.hpp:23
@ Sequence
Used e.g. for frames in a film.
@ Timestamp
Nanoseconds since Unix epoch (1970-01-01 00:00:00 UTC).
SortingStatus
Describes whether an array is known to be sorted or not.
Definition time_column.hpp:27
@ Sorted
The array is known to be sorted.
@ Unsorted
The array is known to be unsorted.
@ Unknown
It's not known whether the array is sorted or not.
Arrow-encoded data for a column of time points.
Definition time_column.hpp:41
Timeline timeline
The timeline this column belongs to.
Definition time_column.hpp:43
TimeColumn(Timeline timeline, Collection< int64_t > times, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a time column from an array of time points.
std::shared_ptr< arrow::Array > array
Time points as a primitive array of i64.
Definition time_column.hpp:46
static TimeColumn from_times(std::string timeline_name, const Collection< std::chrono::duration< TRep, TPeriod > > &chrono_times, SortingStatus sorting_status=SortingStatus::Unknown)
Definition time_column.hpp:167
static TimeColumn from_nanoseconds(std::string timeline_name, Collection< int64_t > times_in_nanoseconds, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a time column from an array of nanoseconds.
Definition time_column.hpp:112
static TimeColumn from_duration_secs(std::string timeline_name, Collection< double > duration_in_secs, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a duration column from an array of seconds.
Definition time_column.hpp:200
static TimeColumn from_seconds(std::string timeline_name, Collection< double > times_in_secs, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a time column from an array of seconds.
Error to_c_ffi_struct(rr_time_column &out_column) const
To rerun C API component batch.
static TimeColumn from_duration_nanoseconds(std::string timeline_name, Collection< int64_t > duration_in_nanos, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a duration column from an array of nanoseconds.
Definition time_column.hpp:182
static TimeColumn from_sequence(std::string timeline_name, Collection< int64_t > sequence_points, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a column from an array of sequence points, e.g.
Definition time_column.hpp:92
static TimeColumn from_durations(std::string timeline_name, const Collection< std::chrono::duration< TRep, TPeriod > > &durations, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a time column from an array of arbitrary std::chrono durations.
Definition time_column.hpp:148
static TimeColumn from_sequence_points(std::string timeline_name, Collection< int64_t > sequence_points, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a time column from an array of sequence points.
Definition time_column.hpp:74
static TimeColumn from_secs_since_epoch(std::string timeline_name, Collection< double > timestamp_in_secs, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a duration column from an array of seconds since Unix Epoch (1970-01-01 00:00:00 UTC).
Definition time_column.hpp:265
SortingStatus sorting_status
The sorting order of the times array.
Definition time_column.hpp:49
static TimeColumn from_nanos_since_epoch(std::string timeline_name, Collection< int64_t > timestamp_in_nanos, SortingStatus sorting_status=SortingStatus::Unknown)
Creates a timestamp column from an array of nanoseconds since Unix Epoch (1970-01-01 00:00:00 UTC).
Definition time_column.hpp:247
Definition of a timeline.
Definition timeline.hpp:23