Scheduler.h
Go to the documentation of this file.
/*
* Copyright (C) 2016-2023 Grok Image Compression Inc.
*
* This source code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This source code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
namespace grk
{
class Scheduler
{
public:
Scheduler(Tile* tile);
virtual ~Scheduler();
virtual bool schedule(uint16_t compno) = 0;
void graph(uint16_t compno);
bool run(void);
ImageComponentFlow* getImageComponentFlow(uint16_t compno);
tf::Taskflow& getCodecFlow(void);
FlowComponent* getPrePostProc(void);
protected:
std::atomic_bool success;
std::vector<T1Interface*> t1Implementations;
ImageComponentFlow** imageComponentFlows_;
tf::Taskflow codecFlow_;
Tile* tile_;
uint16_t numcomps_;
FlowComponent* prePostProc_;
};
} // namespace grk
FlowComponent
Definition FlowComponent.h:21
grk::ImageComponentFlow
Definition ImageComponentFlow.h:44
grk::Scheduler
Definition Scheduler.h:22
grk::Scheduler::tile_
Tile * tile_
Definition Scheduler.h:39
grk::Scheduler::getCodecFlow
tf::Taskflow & getCodecFlow(void)
Definition Scheduler.cpp:52
grk::Scheduler::success
std::atomic_bool success
Definition Scheduler.h:35
grk::Scheduler::codecFlow_
tf::Taskflow codecFlow_
Definition Scheduler.h:38
grk::Scheduler::numcomps_
uint16_t numcomps_
Definition Scheduler.h:40
grk::Scheduler::~Scheduler
virtual ~Scheduler()
Definition Scheduler.cpp:28
grk::Scheduler::prePostProc_
FlowComponent * prePostProc_
Definition Scheduler.h:41
grk::Scheduler::run
bool run(void)
Definition Scheduler.cpp:37
grk::Scheduler::getImageComponentFlow
ImageComponentFlow * getImageComponentFlow(uint16_t compno)
Definition Scheduler.cpp:48
grk::Scheduler::graph
void graph(uint16_t compno)
Definition Scheduler.cpp:43
grk::Scheduler::getPrePostProc
FlowComponent * getPrePostProc(void)
Definition Scheduler.cpp:57
grk::Scheduler::imageComponentFlows_
ImageComponentFlow ** imageComponentFlows_
Definition Scheduler.h:37
grk::Scheduler::t1Implementations
std::vector< T1Interface * > t1Implementations
Definition Scheduler.h:36
grk::Scheduler::schedule
virtual bool schedule(uint16_t compno)=0
grk
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
grk::grk_read
void grk_read(const uint8_t *buffer, TYPE *value, uint32_t numBytes)
Definition BufferedStream.h:239
grk::Tile
Definition TileProcessor.h:39