10 #include <absl/synchronization/mutex.h>
12 #include <packager/ad_cue_generator_params.h>
36 double GetHint(
double time_in_seconds);
44 std::shared_ptr<const CueEvent>
GetNext(
double hint_in_seconds);
48 std::shared_ptr<const CueEvent>
PromoteAt(
double time_in_seconds);
53 bool HasMore(
double hint_in_seconds)
const;
61 std::shared_ptr<const CueEvent> PromoteAtNoLocking(
double time_in_seconds);
64 absl::CondVar sync_condition_ ABSL_GUARDED_BY(mutex_);
65 size_t thread_count_ = 0;
66 size_t waiting_thread_count_ = 0;
67 bool cancelled_ =
false;
69 std::map<double, std::shared_ptr<CueEvent>> unpromoted_;
70 std::map<double, std::shared_ptr<CueEvent>> promoted_;
All the methods that are virtual are virtual for mocking.