SHOGUN
v3.2.0
|
00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 2013 Soumyajit De 00008 */ 00009 00010 #ifndef INDEPENDENT_COMPUTATION_ENGINE_H_ 00011 #define INDEPENDENT_COMPUTATION_ENGINE_H_ 00012 00013 #include <shogun/lib/config.h> 00014 #include <shogun/base/SGObject.h> 00015 00016 namespace shogun 00017 { 00018 class CIndependentJob; 00019 00027 class CIndependentComputationEngine : public CSGObject 00028 { 00029 public: 00031 CIndependentComputationEngine() 00032 : CSGObject() 00033 { 00034 SG_GCDEBUG("%s created (%p)\n", this->get_name(), this) 00035 } 00036 00038 virtual ~CIndependentComputationEngine() 00039 { 00040 SG_GCDEBUG("%s destroyed (%p)\n", this->get_name(), this) 00041 } 00042 00048 virtual void submit_job(CIndependentJob* job) = 0; 00049 00051 virtual void wait_for_all() = 0; 00052 00054 virtual const char* get_name() const 00055 { 00056 return "IndependentComputationEngine"; 00057 } 00058 }; 00059 00060 } 00061 00062 #endif // INDEPENDENT_COMPUTATION_ENGINE_H_