cppjieba/deps/limonp/Closure.hpp
yanyiwu 3c5ad24260 source code layout change:
1. src/ -> include/cppjieba/
2. src/limonp/ -> deps/limonp/
3. server/husky -> deps/husky/
4. test/unittest/gtest -> deps/gtest
2016-01-11 14:25:02 +08:00

33 lines
727 B
C++

#ifndef LIMONP_CLOSURE_HPP
#define LIMONP_CLOSURE_HPP
namespace limonp {
class ITask {
public:
virtual ~ITask() {
}
virtual void Run() = 0;
}; // class ITask
template <class TaskType>
ITask* CreateTask() {
return new TaskType();
}
template <class TaskType, class ArgType>
ITask* CreateTask(ArgType arg) {
return new TaskType(arg);
}
template <class TaskType, class ArgType0, class ArgType1>
ITask* CreateTask(ArgType0 arg0, ArgType1 arg1) {
return new TaskType(arg0, arg1);
}
template <class TaskType, class ArgType0, class ArgType1, class ArgType2>
ITask* CreateTask(ArgType0 arg0, ArgType1 arg1, ArgType2 arg2) {
return new TaskType(arg0, arg1, arg2);
}
} // namespace limonp
#endif // LIMONP_CLOSURE_HPP