Grok 20.3.2
grk::Codec Class Reference

#include <Codec.h>

Classes

struct  TileTask

Public Member Functions

 Codec (grk::IStream *stream)
 ~Codec ()
 Codec (const Codec &)=delete
Codecoperator= (const Codec &)=delete
std::future< bool > queueDecompressTile (uint16_t tile_index)

Static Public Member Functions

static CodecgetImpl (grk_object *codec)

Public Attributes

grk_object obj
ICompressorcompressor_
IDecompressordecompressor_
std::unique_ptr< grk::IStreamstream_

Private Member Functions

void startWorkerThreadIfNeeded ()
void stopWorkerThread ()
void workerThread ()

Private Attributes

std::thread worker_
std::queue< TileTasktask_queue_
std::mutex queue_mutex_
std::condition_variable queue_cv_
std::atomic< bool > stop_worker_
std::mutex thread_start_mutex_
bool thread_started_

Constructor & Destructor Documentation

◆ Codec() [1/2]

grk::Codec::Codec ( grk::IStream * stream)
inlineexplicit

◆ ~Codec()

grk::Codec::~Codec ( )
inline

◆ Codec() [2/2]

grk::Codec::Codec ( const Codec & )
delete

References Codec().

Member Function Documentation

◆ getImpl()

◆ operator=()

Codec & grk::Codec::operator= ( const Codec & )
delete

References Codec().

◆ queueDecompressTile()

std::future< bool > grk::Codec::queueDecompressTile ( uint16_t tile_index)
inline

◆ startWorkerThreadIfNeeded()

void grk::Codec::startWorkerThreadIfNeeded ( )
inlineprivate

◆ stopWorkerThread()

void grk::Codec::stopWorkerThread ( )
inlineprivate

References queue_cv_, queue_mutex_, stop_worker_, and worker_.

Referenced by ~Codec().

◆ workerThread()

Member Data Documentation

◆ compressor_

ICompressor* grk::Codec::compressor_

Referenced by Codec(), grk_compress_create(), and ~Codec().

◆ decompressor_

IDecompressor* grk::Codec::decompressor_

◆ obj

grk_object grk::Codec::obj

◆ queue_cv_

std::condition_variable grk::Codec::queue_cv_
private

◆ queue_mutex_

std::mutex grk::Codec::queue_mutex_
private

◆ stop_worker_

std::atomic<bool> grk::Codec::stop_worker_
private

◆ stream_

std::unique_ptr<grk::IStream> grk::Codec::stream_

Referenced by Codec().

◆ task_queue_

std::queue<TileTask> grk::Codec::task_queue_
private

◆ thread_start_mutex_

std::mutex grk::Codec::thread_start_mutex_
private

◆ thread_started_

bool grk::Codec::thread_started_
private

Referenced by Codec(), and startWorkerThreadIfNeeded().

◆ worker_

std::thread grk::Codec::worker_
private

The documentation for this class was generated from the following file: