Apollo 10.0
自动驾驶开放平台
apollo::cyber::record::PlayTaskConsumer类 参考

#include <play_task_consumer.h>

apollo::cyber::record::PlayTaskConsumer 的协作图:

Public 类型

using ThreadPtr = std::unique_ptr< std::thread >
 
using TaskBufferPtr = std::shared_ptr< PlayTaskBuffer >
 

Public 成员函数

 PlayTaskConsumer (const TaskBufferPtr &task_buffer, double play_rate=1.0)
 
virtual ~PlayTaskConsumer ()
 
void Start (uint64_t begin_time_ns)
 
void Stop ()
 
void Pause ()
 
void PlayOnce ()
 
void Continue ()
 
uint64_t base_msg_play_time_ns () const
 
uint64_t base_msg_real_time_ns () const
 
uint64_t last_played_msg_real_time_ns () const
 

详细描述

在文件 play_task_consumer.h31 行定义.

成员类型定义说明

◆ TaskBufferPtr

◆ ThreadPtr

using apollo::cyber::record::PlayTaskConsumer::ThreadPtr = std::unique_ptr<std::thread>

在文件 play_task_consumer.h33 行定义.

构造及析构函数说明

◆ PlayTaskConsumer()

apollo::cyber::record::PlayTaskConsumer::PlayTaskConsumer ( const TaskBufferPtr task_buffer,
double  play_rate = 1.0 
)
explicit

在文件 play_task_consumer.cc30 行定义.

32 : play_rate_(play_rate),
33 consume_th_(nullptr),
34 task_buffer_(task_buffer),
35 is_stopped_(true),
36 is_paused_(false),
37 is_playonce_(false),
38 base_msg_play_time_ns_(0),
39 base_msg_real_time_ns_(0),
40 last_played_msg_real_time_ns_(0) {
41 if (play_rate_ <= 0) {
42 AERROR << "invalid play rate: " << play_rate_
43 << " , we will use default value(1.0).";
44 play_rate_ = 1.0;
45 }
46}
#define AERROR
Definition log.h:44

◆ ~PlayTaskConsumer()

apollo::cyber::record::PlayTaskConsumer::~PlayTaskConsumer ( )
virtual

成员函数说明

◆ base_msg_play_time_ns()

uint64_t apollo::cyber::record::PlayTaskConsumer::base_msg_play_time_ns ( ) const
inline

在文件 play_task_consumer.h46 行定义.

46{ return base_msg_play_time_ns_; }

◆ base_msg_real_time_ns()

uint64_t apollo::cyber::record::PlayTaskConsumer::base_msg_real_time_ns ( ) const
inline

在文件 play_task_consumer.h47 行定义.

47{ return base_msg_real_time_ns_; }

◆ Continue()

void apollo::cyber::record::PlayTaskConsumer::Continue ( )
inline

在文件 play_task_consumer.h44 行定义.

44{ is_paused_.exchange(false); }

◆ last_played_msg_real_time_ns()

uint64_t apollo::cyber::record::PlayTaskConsumer::last_played_msg_real_time_ns ( ) const
inline

在文件 play_task_consumer.h48 行定义.

48 {
49 return last_played_msg_real_time_ns_;
50 }

◆ Pause()

void apollo::cyber::record::PlayTaskConsumer::Pause ( )
inline

在文件 play_task_consumer.h42 行定义.

42{ is_paused_.exchange(true); }

◆ PlayOnce()

void apollo::cyber::record::PlayTaskConsumer::PlayOnce ( )
inline

在文件 play_task_consumer.h43 行定义.

43{ is_playonce_.exchange(true); }

◆ Start()

void apollo::cyber::record::PlayTaskConsumer::Start ( uint64_t  begin_time_ns)

在文件 play_task_consumer.cc50 行定义.

50 {
51 if (!is_stopped_.exchange(false)) {
52 return;
53 }
54 begin_time_ns_ = begin_time_ns;
55 consume_th_.reset(new std::thread(&PlayTaskConsumer::ThreadFunc, this));
56}

◆ Stop()

void apollo::cyber::record::PlayTaskConsumer::Stop ( )

在文件 play_task_consumer.cc58 行定义.

58 {
59 if (is_stopped_.exchange(true)) {
60 return;
61 }
62 if (consume_th_ != nullptr && consume_th_->joinable()) {
63 consume_th_->join();
64 consume_th_ = nullptr;
65 }
66 // reset value for next use consumer
67 base_msg_play_time_ns_ = 0;
68 base_msg_real_time_ns_ = 0;
69 last_played_msg_real_time_ns_ = 0;
70}

该类的文档由以下文件生成: