17 #ifndef CYBER_TOOLS_CYBER_RECORDER_PLAYER_PLAY_TASK_PRODUCER_H_ 18 #define CYBER_TOOLS_CYBER_RECORDER_PLAYER_PLAY_TASK_PRODUCER_H_ 27 #include <unordered_map> 47 using WriterPtr = std::shared_ptr<Writer<message::RawMessage>>;
48 using WriterMap = std::unordered_map<std::string, WriterPtr>;
63 bool ReadRecordInfo();
64 bool UpdatePlayParam();
72 std::atomic<bool> is_initialized_;
73 std::atomic<bool> is_stopped_;
78 std::vector<RecordReaderPtr> record_readers_;
80 uint64_t earliest_begin_time_;
81 uint64_t latest_end_time_;
82 uint64_t total_msg_num_;
84 static const uint32_t kMinTaskBufferSize;
85 static const uint32_t kPreloadTimeSec;
86 static const uint64_t kSleepIntervalNanoSec;
93 #endif // CYBER_TOOLS_CYBER_RECORDER_PLAYER_PLAY_TASK_PRODUCER_H_
std::shared_ptr< Writer< message::RawMessage > > WriterPtr
Definition: play_task_producer.h:47
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Definition: play_task_producer.h:41
virtual ~PlayTaskProducer()
std::shared_ptr< PlayTaskBuffer > TaskBufferPtr
Definition: play_task_producer.h:45
std::shared_ptr< RecordReader > RecordReaderPtr
Definition: play_task_producer.h:46
std::unordered_map< std::string, WriterPtr > WriterMap
Definition: play_task_producer.h:48
Definition: play_param.h:29
std::unordered_map< std::string, std::string > MessageTypeMap
Definition: play_task_producer.h:49
bool is_stopped() const
Definition: play_task_producer.h:60
std::shared_ptr< Node > NodePtr
Definition: play_task_producer.h:43
std::unique_ptr< std::thread > ThreadPtr
Definition: play_task_producer.h:44
const PlayParam & play_param() const
Definition: play_task_producer.h:59
PlayTaskProducer(const TaskBufferPtr &task_buffer, const PlayParam &play_param)