|
limal
|
00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | _ _ _ _ __ _ | 00004 | | | | | | \_/ | / \ | | | 00005 | | | | | | |_| | / /\ \ | | | 00006 | | |__ | | | | | | / ____ \ | |__ | 00007 | |____||_| |_| |_|/ / \ \|____| | 00008 | | 00009 | core library | 00010 | | 00011 | (C) SUSE Linux Products GmbH | 00012 \----------------------------------------------------------------------/ 00013 00014 File: CallbackBase.hpp 00015 00016 Author: Marius Tomaschewski 00017 Maintainer: Marius Tomaschewski 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 } // End of LIMAL_NAMESPACE 00208 #endif // LIMAL_CALLBACK_BASE_HPP 00209 // vim: set ts=8 sts=8 sw=8 ai noet:
1.7.5.1