LIBJXL
resizable_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 
15 
16 #ifndef JXL_RESIZABLE_PARALLEL_RUNNER_CXX_H_
17 #define JXL_RESIZABLE_PARALLEL_RUNNER_CXX_H_
18 
19 #include <memory>
20 
22 
23 #if !(defined(__cplusplus) || defined(c_plusplus))
24 #error \
25  "This a C++ only header. Use jxl/jxl_resizable_parallel_runner.h from C" \
26  "sources."
27 #endif
28 
33  void operator()(void* runner) { JxlResizableParallelRunnerDestroy(runner); }
34 };
35 
41 typedef std::unique_ptr<void, JxlResizableParallelRunnerDestroyStruct>
43 
56 static inline JxlResizableParallelRunnerPtr JxlResizableParallelRunnerMake(
57  const JxlMemoryManager* memory_manager) {
59  JxlResizableParallelRunnerCreate(memory_manager));
60 }
61 
62 #endif // JXL_RESIZABLE_PARALLEL_RUNNER_CXX_H_
63 
std::unique_ptr< void, JxlResizableParallelRunnerDestroyStruct > JxlResizableParallelRunnerPtr
Definition: resizable_parallel_runner_cxx.h:42
JXL_THREADS_EXPORT void JxlResizableParallelRunnerDestroy(void *runner_opaque)
Definition: resizable_parallel_runner_cxx.h:31
JXL_THREADS_EXPORT void * JxlResizableParallelRunnerCreate(const JxlMemoryManager *memory_manager)
Definition: memory_manager.h:51
void operator()(void *runner)
Calls JxlResizableParallelRunnerDestroy() on the passed runner.
Definition: resizable_parallel_runner_cxx.h:33
implementation using std::thread of a resizeable JxlParallelRunner.