OpenJPH
Open-source implementation of JPEG2000 Part-15
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"
43
44namespace ojph
45{
46 namespace thds
47 { class thread_pool; }
48
49namespace stex
50{
51
53//
54//
55//
56//
57//
59
60/*****************************************************************************/
65{
66public:
71 file = NULL;
72 name_template = NULL;
73 }
77 ~j2k_frame_storer() override {}
78
79public:
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
99private:
101 const char* name_template;
102};
103
104} // !stex namespace
105} // !ojph namespace
106
107#endif // !THREADED_FRAME_PROCESSOR_H
A base object for queuing tasks in the thread_pool.
Definition: ojph_threads.h:69
Saves a j2k frame to disk without decoding.
~j2k_frame_storer() override
default destructor doing nothing
void init(stex_file *file, const char *name_template)
call this function to initialize its members
const char * name_template
a template for the target file name
stex_file * file
a j2k codestream file with other variables
void execute() override
A thread from the thread_pool call this function to execute the task.
holds in memory j2k codestream together with other info