PageRenderTime 52ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/php/callback/example.h

#
C++ Header | 22 lines | 16 code | 5 blank | 1 comment | 1 complexity | f2aeaadad8e4d8daef380d67dd9cffc2 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /* File : example.h */
  2. #include <iostream>
  3. class Callback {
  4. public:
  5. virtual ~Callback() { std::cout << "Callback::~Callback()" << std:: endl; }
  6. virtual void run() { std::cout << "Callback::run()" << std::endl; }
  7. };
  8. class Caller {
  9. private:
  10. Callback *_callback;
  11. public:
  12. Caller(): _callback(0) {}
  13. ~Caller() { delCallback(); }
  14. void delCallback() { delete _callback; _callback = 0; }
  15. void setCallback(Callback *cb) { delCallback(); _callback = cb; }
  16. void call() { if (_callback) _callback->run(); }
  17. };