SHOGUN  5.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
IndependentComputationEngine.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Written (W) 2013 Soumyajit De
8  */
9 
10 #ifndef INDEPENDENT_COMPUTATION_ENGINE_H_
11 #define INDEPENDENT_COMPUTATION_ENGINE_H_
12 
13 #include <shogun/lib/config.h>
14 #include <shogun/base/SGObject.h>
15 
16 namespace shogun
17 {
18 class CIndependentJob;
19 
28 {
29 public:
32  : CSGObject()
33  {
34  SG_GCDEBUG("%s created (%p)\n", this->get_name(), this)
35  }
36 
39  {
40  SG_GCDEBUG("%s destroyed (%p)\n", this->get_name(), this)
41  }
42 
48  virtual void submit_job(CIndependentJob* job) = 0;
49 
51  virtual void wait_for_all() = 0;
52 
54  virtual const char* get_name() const
55  {
56  return "IndependentComputationEngine";
57  }
58 };
59 
60 }
61 
62 #endif // INDEPENDENT_COMPUTATION_ENGINE_H_
#define SG_GCDEBUG(...)
Definition: SGIO.h:102
Class SGObject is the base class of all shogun objects.
Definition: SGObject.h:115
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:18
Abstract base for general computation jobs to be registered in CIndependentComputationEngine. compute method produces a job result and submits it to the internal JobResultAggregator. Each set of jobs that form a result will share the same job result aggregator.
Abstract base class for solving multiple independent instances of CIndependentJob. It has one method, submit_job, which may add the job to an internal queue and might block if there is yet not space in the queue. After jobs are submitted, it might not yet be ready. wait_for_all waits until all jobs are completed, which *must be* called to guarantee that all jobs are finished.
virtual void submit_job(CIndependentJob *job)=0

SHOGUN Machine Learning Toolbox - Documentation