VM2D  1.12
Vortex methods for 2D flows simulation
Task.h
Go to the documentation of this file.
1 /*--------------------------------*- VMlib -*----------------*---------------*\
2 | ## ## ## ## ## ## ## | | Version 1.12 |
3 | ## ## ### ### ## ## | VMlib: VM2D/VM3D Library | 2024/01/14 |
4 | ## ## ## # ## ## ## #### | Open Source Code *----------------*
5 | #### ## ## ## ## ## ## | https://www.github.com/vortexmethods/VM2D |
6 | ## ## ## #### ### #### | https://www.github.com/vortexmethods/VM3D |
7 | |
8 | Copyright (C) 2017-2024 Ilia Marchevsky |
9 *-----------------------------------------------------------------------------*
10 | File name: Task.h |
11 | Info: Source code of VMlib |
12 | |
13 | This file is part of VMlib. |
14 | VMLib is free software: you can redistribute it and/or modify it |
15 | under the terms of the GNU General Public License as published by |
16 | the Free Software Foundation, either version 3 of the License, or |
17 | (at your option) any later version. |
18 | |
19 | VMlib is distributed in the hope that it will be useful, but WITHOUT |
20 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
21 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
22 | for more details. |
23 | |
24 | You should have received a copy of the GNU General Public License |
25 | along with VMlib. If not, see <http://www.gnu.org/licenses/>. |
26 \*---------------------------------------------------------------------------*/
27 
28 
37 #ifndef TASK_H
38 #define TASK_H
39 
40 #include "PassportGen.h"
41 
42 namespace VMlib
43 {
44 
59  enum class TaskState
60  {
62  waiting = 0,
63 
65  starting = 1,
66 
68  running = 2,
69 
71  finishing = 3,
72 
74  done = 4
75  };
76 
77 
84  class Task
85  {
86  public:
87 
91  //Task(std::unique_ptr<PassportGen> _passport)
92  //{
93  // passport = std::move(_passport);
94  //};
95 
97  //~Task(){};
98 
99  //далее - данные, требуемые для обработки задачи очередью
100 
102  int nProc;
103 
105  std::vector<int> proc;
106 
109 
111  std::pair<int, int> startEndKvant;
112 
116  double wTime;
117 
119  std::shared_ptr<PassportGen> passport;
120 
121 
122  const PassportGen& getPassport() const
123  {
124  return *passport;
125  }
126  };
127 
128 }//namespace VMlib
129 
130 #endif
std::vector< int > proc
Номера процессоров, занятых решением данной задачи
Definition: Task.h:105
double wTime
Время в секундах, потраченное на решение данной задачи
Definition: Task.h:116
Заголовочный файл с описанием класса PasportGen.
задача ожидает запуска
std::pair< int, int > startEndKvant
Номера квантов времени, в которых начался и завершился счет задачи
Definition: Task.h:111
задача решена
TaskState state
Флаг состояния задачи
Definition: Task.h:108
задача решается
задача стартует
Класс, опеделяющий описание каждой задачи в смысле прохождения процесса ее решения ...
Definition: Task.h:84
int nProc
Конструктор
Definition: Task.h:102
Абстрактный класс, опеделяющий паспорт задачи
Definition: PassportGen.h:91
задача финиширует
const PassportGen & getPassport() const
Definition: Task.h:122
TaskState
Тип-перечисление, опеделяющий состояние задачи в процессе работы программы
Definition: Task.h:59
std::shared_ptr< PassportGen > passport
Паспорт задачи
Definition: Task.h:119