diff options
Diffstat (limited to 'misc/swig/callback/callback.h')
| -rw-r--r-- | misc/swig/callback/callback.h | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/misc/swig/callback/callback.h b/misc/swig/callback/callback.h new file mode 100644 index 000000000..80232a8b3 --- /dev/null +++ b/misc/swig/callback/callback.h @@ -0,0 +1,24 @@ +// Copyright 2011 The Go Authors.  All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +class Callback { +public: +	virtual ~Callback() { } +	virtual std::string run() { return "Callback::run"; } +}; + +class Caller { +private: +	Callback *callback_; +public: +	Caller(): callback_(0) { } +	~Caller() { delCallback(); } +	void delCallback() { delete callback_; callback_ = 0; } +	void setCallback(Callback *cb) { delCallback(); callback_ = cb; } +	std::string call() { +		if (callback_ != 0) +			return callback_->run(); +		return ""; +	} +}; | 
