17 #ifndef CYBER_DATA_DATA_VISITOR_H_ 18 #define CYBER_DATA_DATA_VISITOR_H_ 50 explicit DataVisitor(
const std::vector<VisitorConfig>& configs)
63 data_notifier_->AddNotifier(buffer_m0_.channel_id(), notifier_);
65 buffer_m0_, buffer_m1_, buffer_m2_, buffer_m3_);
71 data_fusion_ =
nullptr;
75 bool TryFetch(std::shared_ptr<M0>& m0, std::shared_ptr<M1>& m1,
76 std::shared_ptr<M2>& m2, std::shared_ptr<M3>& m3) {
77 if (data_fusion_->Fusion(&next_msg_index_, m0, m1, m2, m3)) {
92 template <
typename M0,
typename M1,
typename M2>
95 explicit DataVisitor(
const std::vector<VisitorConfig>& configs)
105 data_notifier_->AddNotifier(buffer_m0_.channel_id(), notifier_);
113 data_fusion_ =
nullptr;
117 bool TryFetch(std::shared_ptr<M0>& m0, std::shared_ptr<M1>& m1,
118 std::shared_ptr<M2>& m2) {
119 if (data_fusion_->Fusion(&next_msg_index_, m0, m1, m2)) {
133 template <
typename M0,
typename M1>
143 data_notifier_->AddNotifier(buffer_m0_.channel_id(), notifier_);
150 data_fusion_ =
nullptr;
154 bool TryFetch(std::shared_ptr<M0>& m0, std::shared_ptr<M1>& m1) {
155 if (data_fusion_->Fusion(&next_msg_index_, m0, m1)) {
168 template <
typename M0>
174 data_notifier_->AddNotifier(buffer_.channel_id(), notifier_);
178 : buffer_(channel_id, new
BufferType<M0>(queue_size)) {
180 data_notifier_->AddNotifier(buffer_.channel_id(), notifier_);
184 if (buffer_.Fetch(&next_msg_index_, m0)) {
199 #endif // CYBER_DATA_DATA_VISITOR_H_ uint32_t queue_size
Definition: data_visitor.h:40
bool TryFetch(std::shared_ptr< M0 > &m0, std::shared_ptr< M1 > &m1, std::shared_ptr< M2 > &m2, std::shared_ptr< M3 > &m3)
Definition: data_visitor.h:75
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
bool TryFetch(std::shared_ptr< M0 > &m0, std::shared_ptr< M1 > &m1, std::shared_ptr< M2 > &m2)
Definition: data_visitor.h:117
~DataVisitor()
Definition: data_visitor.h:110
DataVisitor(const std::vector< VisitorConfig > &configs)
Definition: data_visitor.h:95
DataVisitor(const VisitorConfig &configs)
Definition: data_visitor.h:171
uint64_t channel_id
Definition: data_visitor.h:39
DataVisitor(uint64_t channel_id, uint32_t queue_size)
Definition: data_visitor.h:177
Definition: data_fusion.h:36
Definition: cache_buffer.h:30
Definition: data_visitor.h:36
~DataVisitor()
Definition: data_visitor.h:68
Definition: data_visitor_base.h:33
~DataVisitor()
Definition: data_visitor.h:147
DataVisitor(const std::vector< VisitorConfig > &configs)
Definition: data_visitor.h:50
bool TryFetch(std::shared_ptr< M0 > &m0)
Definition: data_visitor.h:183
DataVisitor(const std::vector< VisitorConfig > &configs)
Definition: data_visitor.h:136
Definition: all_latest.h:39
VisitorConfig(uint64_t id, uint32_t size)
Definition: data_visitor.h:37
Definition: data_visitor.h:48
bool TryFetch(std::shared_ptr< M0 > &m0, std::shared_ptr< M1 > &m1)
Definition: data_visitor.h:154