CaptureMoment 0.1.0
Free and open-source non-destructive photo editor
Loading...
Searching...
No Matches
i_single_operation.h
Go to the documentation of this file.
1
8#pragma once
9
13#include <expected>
15
16namespace CaptureMoment::Core {
17
18namespace Operations {
19
37public:
38 virtual ~ISingleOperation() = default;
39
52 [[nodiscard]] virtual std::expected<void, ErrorHandling::CoreError> execute(
54 const OperationDescriptor& params
55 ) = 0;
56
61 [[nodiscard]] virtual bool canRunOnGPU() const { return false; }
62
68 [[nodiscard]] virtual bool isThreadSafe() const { return true; }
69};
70
71} // namespace Operations
72
73} // namespace CaptureMoment::Core
Abstract interface representing an image used as a working buffer.
Abstract base class for all single image processing algorithms.
virtual std::expected< void, ErrorHandling::CoreError > execute(ImageProcessing::IWorkingImageHardware &working_image, const OperationDescriptor &params)=0
Executes the operation on a hardware-agnostic working image.
virtual bool isThreadSafe() const
Indicates if this operation is thread-safe. If true, multiple threads can call execute() on different...
virtual bool canRunOnGPU() const
Indicates if this operation supports GPU acceleration (e.g., via Halide).
Central error handling system for CaptureMoment Core library.
Abstract interface representing an image used as a working buffer, abstracting hardware location.
Manages the lifecycle of a single IWorkingImage instance.
Descriptor of an operation with its parameters and unique identifier.
Enumeration of image processing operation types.
A universal container for operation settings with unique identifier.
CaptureMoment — footer