test

Dependents:   mbed-os-example-blinky-1stDevDemo

Committer:
karen801
Date:
Wed May 23 14:37:10 2018 +0000
Revision:
0:79ce2b184a43
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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