waiter.h
Go to the documentation of this file.
1 /*
2  * For synchronize asynchrous operations
3  *
4  * Copyright 2010 Robopeak Team
5  */
6 #pragma once
7 
8 #ifdef _AVR_
9 #error there is no implementation for waiter.h on AVR platforms
10 #else
11 
12 #include "hal/event.h"
13 
14 namespace rp{ namespace hal{
15 
16  template<typename ResultT>
17  class Waiter : public Event
18  {
19  public:
20  Waiter()
21  : Event()
22  {
23  }
24 
26  {}
27 
28  ResultT waitForResult()
29  {
30  wait();
31  return result;
32  }
33 
34  void setResult(ResultT result)
35  {
36  this->result = result;
37  set();
38  }
39 
40  volatile ResultT result;
41  };
42 }}
43 
44 #endif
rp::hal::Waiter::setResult
void setResult(ResultT result)
Definition: waiter.h:34
rp::hal::Waiter
Definition: waiter.h:17
rp::hal::Event
Definition: event.h:38
rp::hal::Event::set
void set(bool isSignal=true)
Definition: event.h:78
rp::hal::Waiter::Waiter
Waiter()
Definition: waiter.h:20
event.h
rp::hal::Waiter::waitForResult
ResultT waitForResult()
Definition: waiter.h:28
rp::hal::Waiter::~Waiter
~Waiter()
Definition: waiter.h:25
rp
Definition: rplidar_driver.h:43
rp::hal::Waiter::result
volatile ResultT result
Definition: waiter.h:40
rp::hal::Event::wait
unsigned long wait(unsigned long timeout=0xFFFFFFFF)
Definition: event.h:106


rplidar_ros
Author(s):
autogenerated on Fri Aug 2 2024 08:42:14