Grok 10.0.5
Scheduler.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2023 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17#pragma once
18
19namespace grk
20{
21class Scheduler
22{
23 public:
24 Scheduler(Tile* tile);
25 virtual ~Scheduler();
26
27 virtual bool schedule(uint16_t compno) = 0;
28 void graph(uint16_t compno);
29 bool run(void);
30 ImageComponentFlow* getImageComponentFlow(uint16_t compno);
31 tf::Taskflow& getCodecFlow(void);
32 FlowComponent* getPrePostProc(void);
33
34 protected:
35 std::atomic_bool success;
36 std::vector<T1Interface*> t1Implementations;
37 ImageComponentFlow** imageComponentFlows_;
38 tf::Taskflow codecFlow_;
39 Tile* tile_;
40 uint16_t numcomps_;
42};
43
44} // namespace grk
uint16_t numcomps_
Definition DecompressScheduler.h:54
FlowComponent * prePostProc_
Definition ImageComponentFlow.h:59
ImageComponentFlow ** imageComponentFlows_
Definition Scheduler.h:37
std::vector< T1Interface * > t1Implementations
Definition Scheduler.h:36
std::atomic_bool success
Definition Scheduler.h:35
tf::Taskflow codecFlow_
Definition Scheduler.h:38
Definition FlowComponent.h:21
Tile * tile_
Definition mct.h:129
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
grk_plugin_tile * tile
Definition plugin_interface.h:64
uint16_t compno
Definition plugin_interface.h:43