LIBJXL_DOC
thread_parallel_runner_cxx.h
Go to the documentation of this file.
1 // Copyright (c) the JPEG XL Project Authors. All rights reserved.
2 //
3 // Use of this source code is governed by a BSD-style
4 // license that can be found in the LICENSE file.
5 
14 
15 #ifndef JXL_THREAD_PARALLEL_RUNNER_CXX_H_
16 #define JXL_THREAD_PARALLEL_RUNNER_CXX_H_
17 
18 #include <jxl/memory_manager.h>
20 
21 #include <cstddef>
22 #include <memory>
23 
24 #ifndef __cplusplus
25 #error \
26  "This a C++ only header. Use jxl/jxl_thread_parallel_runner.h from C" \
27  "sources."
28 #endif
29 
34  void operator()(void* runner) { JxlThreadParallelRunnerDestroy(runner); }
35 };
36 
42 typedef std::unique_ptr<void, JxlThreadParallelRunnerDestroyStruct>
44 
58 static inline JxlThreadParallelRunnerPtr JxlThreadParallelRunnerMake(
59  const JxlMemoryManager* memory_manager, size_t num_worker_threads) {
61  JxlThreadParallelRunnerCreate(memory_manager, num_worker_threads));
62 }
63 
64 #endif // JXL_THREAD_PARALLEL_RUNNER_CXX_H_
65 
Definition: thread_parallel_runner_cxx.h:32
implementation using std::thread of a JxlParallelRunner.
Abstraction functions used by JPEG XL to allocate memory.
JXL_THREADS_EXPORT void JxlThreadParallelRunnerDestroy(void *runner_opaque)
Definition: memory_manager.h:51
std::unique_ptr< void, JxlThreadParallelRunnerDestroyStruct > JxlThreadParallelRunnerPtr
Definition: thread_parallel_runner_cxx.h:43
JXL_THREADS_EXPORT void * JxlThreadParallelRunnerCreate(const JxlMemoryManager *memory_manager, size_t num_worker_threads)
void operator()(void *runner)
Calls JxlThreadParallelRunnerDestroy() on the passed runner.
Definition: thread_parallel_runner_cxx.h:34