00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00027 #ifndef LIMAL_CALLBACK_BASE_HPP
00028 #define LIMAL_CALLBACK_BASE_HPP
00029
00030 #include <limal/config.h>
00031
00032
00033 namespace LIMAL_NAMESPACE
00034 {
00035
00036
00143 template <class Request, class Result>
00144 class CallbackBase
00145 {
00146 public:
00150 CallbackBase()
00151 {}
00152
00156 virtual ~CallbackBase()
00157 {}
00158
00170 virtual Result *
00171 call(const Request *request)
00172 {
00173 return callback(request);
00174 }
00175
00176 protected:
00177
00190 virtual Result *
00191 callback(const Request *request) = 0;
00192
00193 private:
00197 CallbackBase(const CallbackBase &);
00198
00202 CallbackBase & operator = (const CallbackBase &);
00203 };
00204
00205
00206
00207 }
00208 #endif // LIMAL_CALLBACK_BASE_HPP
00209