OpenJPH Open-source implementation of JPEG2000 Part-15

Loading...
Searching...
No Matches
threaded_frame_processors.h
Go to the documentation of this file.
1//***************************************************************************/
2// This software is released under the 2-Clause BSD license, included
3// below.
4//
5// Copyright (c) 2024, Aous Naman
6// Copyright (c) 2024, Kakadu Software Pty Ltd, Australia
7// Copyright (c) 2024, The University of New South Wales, Australia
8//
9// Redistribution and use in source and binary forms, with or without
10// modification, are permitted provided that the following conditions are
11// met:
12//
13// 1. Redistributions of source code must retain the above copyright
14// notice, this list of conditions and the following disclaimer.
15//
16// 2. Redistributions in binary form must reproduce the above copyright
17// notice, this list of conditions and the following disclaimer in the
18// documentation and/or other materials provided with the distribution.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
26// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31//***************************************************************************/
32// This file is part of the OpenJPH software implementation.
33// File: threaded_frame_processors.h
34// Author: Aous Naman
35// Date: 23 April 2024
36//***************************************************************************/
37
38#ifndef THREADED_FRAME_PROCESSOR_H
39#define THREADED_FRAME_PROCESSOR_H
40
41#include "ojph_threads.h"
42#include "stream_expand_support.h"
43
44 namespace ojph
45{
46 namespace thds
47 { class thread_pool; }
48
49 namespace stex
50{
51
53//
54//
55//
56//
57//
59
60/*****************************************************************************/
64 struct j2k_frame_storer : public thds::worker_thread_base
65{
66 public:
70 j2k_frame_storer() {
71 file = NULL;
72 name_template = NULL;
73 }
74
77 ~j2k_frame_storer() override {}
78
79 public:
87 void init(stex_file* file, const char* name_template)
88 {
89 this->file = file;
90 this->name_template = name_template;
91 }
92
97 void execute() override;
98
99 private:
100 stex_file* file;
101 const char* name_template;
102};
103
104} // !stex namespace
105} // !ojph namespace
106
107#endif // !THREADED_FRAME_PROCESSOR_H
ojph::thds::thread_pool
Implements a pool of threads, and can queue tasks.
Definition ojph_threads.h:98
ojph::thds::worker_thread_base
A base object for queuing tasks in the thread_pool.
Definition ojph_threads.h:69
ojph::stex
Definition stream_expand_support.cpp:47
ojph::thds
Definition ojph_threads.h:51
ojph
Definition ojph_img_io.h:52
ojph_threads.h
stream_expand_support.h
ojph::stex::j2k_frame_storer::j2k_frame_storer
j2k_frame_storer()
default construction
Definition threaded_frame_processors.h:70
ojph::stex::j2k_frame_storer::~j2k_frame_storer
~j2k_frame_storer() override
default destructor doing nothing
Definition threaded_frame_processors.h:77
ojph::stex::j2k_frame_storer::init
void init(stex_file *file, const char *name_template)
call this function to initialize its members
Definition threaded_frame_processors.h:87
ojph::stex::j2k_frame_storer::name_template
const char * name_template
a template for the target file name
Definition threaded_frame_processors.h:101
ojph::stex::j2k_frame_storer::file
stex_file * file
a j2k codestream file with other variables
Definition threaded_frame_processors.h:100
ojph::stex::j2k_frame_storer::execute
void execute() override
A thread from the thread_pool call this function to execute the task.
Definition threaded_frame_processors.cpp:53
ojph::stex::stex_file
holds in memory j2k codestream together with other info
Definition stream_expand_support.h:353