diff options
Diffstat (limited to 'LIDAR/sdk/src/hal/waiter.h')
| -rw-r--r-- | LIDAR/sdk/src/hal/waiter.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/LIDAR/sdk/src/hal/waiter.h b/LIDAR/sdk/src/hal/waiter.h new file mode 100644 index 0000000..7f83b9b --- /dev/null +++ b/LIDAR/sdk/src/hal/waiter.h @@ -0,0 +1,44 @@ +/* + * For synchronize asynchrous operations + * + * Copyright 2010 Robopeak Team + */ +#pragma once + +#ifdef _AVR_ +#error there is no implementation for waiter.h on AVR platforms +#else + +#include "hal/event.h" + +namespace rp{ namespace hal{ + + template<typename ResultT> + class Waiter : public Event + { + public: + Waiter() + : Event() + { + } + + ~Waiter() + {} + + ResultT waitForResult() + { + wait(); + return result; + } + + void setResult(ResultT result) + { + this->result = result; + set(); + } + + volatile ResultT result; + }; +}} + +#endif |
