diff options
Diffstat (limited to 'Examples/csharp/callback/example.h')
-rw-r--r-- | Examples/csharp/callback/example.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Examples/csharp/callback/example.h b/Examples/csharp/callback/example.h new file mode 100644 index 0000000..38d25a0 --- /dev/null +++ b/Examples/csharp/callback/example.h @@ -0,0 +1,24 @@ +/* File : example.h */ + +#include <cstdio> +#include <iostream> + +class Callback { +public: + virtual ~Callback() { std::cout << "Callback::~Callback()" << std:: endl; } + virtual void run() { std::cout << "Callback::run()" << std::endl; } +}; + + +class Caller { +private: + Callback *_callback; +public: + Caller(): _callback(0) {} + ~Caller() { delCallback(); } + void delCallback() { delete _callback; _callback = 0; } + void setCallback(Callback *cb) { delCallback(); _callback = cb; } + void resetCallback() { _callback = 0; } + void call() { if (_callback) _callback->run(); } +}; + |