Upstream version 1.3.40
[profile/ivi/swig.git] / Examples / csharp / callback / example.h
1 /* File : example.h */
2
3 #include <cstdio>
4 #include <iostream>
5
6 class Callback {
7 public:
8         virtual ~Callback() { std::cout << "Callback::~Callback()" << std:: endl; }
9         virtual void run() { std::cout << "Callback::run()" << std::endl; }
10 };
11
12
13 class Caller {
14 private:
15         Callback *_callback;
16 public:
17         Caller(): _callback(0) {}
18         ~Caller() { delCallback(); }
19         void delCallback() { delete _callback; _callback = 0; }
20         void setCallback(Callback *cb) { delCallback(); _callback = cb; }
21         void resetCallback() { _callback = 0; }
22         void call() { if (_callback) _callback->run(); }
23 };
24