callback.h 529 B

1234567891011121314151617181920
  1. // Copyright 2011 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. class Callback {
  5. public:
  6. virtual ~Callback() { }
  7. virtual std::string run() { return "Callback::run"; }
  8. };
  9. class Caller {
  10. private:
  11. Callback *callback_;
  12. public:
  13. Caller(): callback_(0) { }
  14. ~Caller() { delCallback(); }
  15. void delCallback() { delete callback_; callback_ = 0; }
  16. void setCallback(Callback *cb) { delCallback(); callback_ = cb; }
  17. std::string call();
  18. };