test
Dependents: mbed-os-example-blinky-1stDevDemo
BlockExecuter.h@0:79ce2b184a43, 2018-05-23 (annotated)
- Committer:
- karen801
- Date:
- Wed May 23 14:37:10 2018 +0000
- Revision:
- 0:79ce2b184a43
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
karen801 | 0:79ce2b184a43 | 1 | #ifndef BLOCK_EXEC_H |
karen801 | 0:79ce2b184a43 | 2 | #define BLOCK_EXEC_H |
karen801 | 0:79ce2b184a43 | 3 | |
karen801 | 0:79ce2b184a43 | 4 | #include "mbed.h" |
karen801 | 0:79ce2b184a43 | 5 | |
karen801 | 0:79ce2b184a43 | 6 | /* Helper class to execute something whenever entering/leaving a basic block */ |
karen801 | 0:79ce2b184a43 | 7 | class BlockExecuter { |
karen801 | 0:79ce2b184a43 | 8 | public: |
karen801 | 0:79ce2b184a43 | 9 | BlockExecuter(Callback<void()> exit_cb, Callback<void()> enter_cb = Callback<void()>()) : |
karen801 | 0:79ce2b184a43 | 10 | _exit_cb(exit_cb) { |
karen801 | 0:79ce2b184a43 | 11 | if((bool)enter_cb) enter_cb(); |
karen801 | 0:79ce2b184a43 | 12 | } |
karen801 | 0:79ce2b184a43 | 13 | |
karen801 | 0:79ce2b184a43 | 14 | ~BlockExecuter(void) { |
karen801 | 0:79ce2b184a43 | 15 | _exit_cb(); |
karen801 | 0:79ce2b184a43 | 16 | } |
karen801 | 0:79ce2b184a43 | 17 | |
karen801 | 0:79ce2b184a43 | 18 | private: |
karen801 | 0:79ce2b184a43 | 19 | Callback<void()> _exit_cb; |
karen801 | 0:79ce2b184a43 | 20 | }; |
karen801 | 0:79ce2b184a43 | 21 | |
karen801 | 0:79ce2b184a43 | 22 | #endif //BLOCK_EXEC_H |