CaptureMoment 0.1.0
Free and open-source non-destructive photo editor
Loading...
Searching...
No Matches
file_serializer_writer.h
Go to the documentation of this file.
1
9#pragma once
10
14
15#include <memory>
16#include <span>
17#include <string>
18
19namespace CaptureMoment::Core {
20
21namespace Serializer {
22
30public:
39 explicit FileSerializerWriter(
40 std::unique_ptr<IXmpProvider> xmp_provider,
41 std::unique_ptr<IXmpPathStrategy> xmp_path_strategy
42 );
43
44 ~FileSerializerWriter() override = default;
45
46 // Disable copy/move for simplicity, assuming unique_ptr dependencies
51
62 [[nodiscard]] bool saveToFile(
63 std::string_view source_image_path,
64 std::span<const Operations::OperationDescriptor> operations
65 ) const override;
66
67private:
71 std::unique_ptr<IXmpProvider> m_xmp_provider;
72
76 std::unique_ptr<IXmpPathStrategy> m_xmp_path_strategy;
77
87 [[nodiscard]] std::string serializeOperationsToXmp(
88 std::span<const Operations::OperationDescriptor> operations,
89 std::string_view source_image_path
90 ) const;
91};
92
93} // namespace Serializer
94
95} // namespace CaptureMoment::Core
Concrete implementation of IFileSerializerWriter using an IXmpProvider for XMP operations and an IXmp...
FileSerializerWriter(std::unique_ptr< IXmpProvider > xmp_provider, std::unique_ptr< IXmpPathStrategy > xmp_path_strategy)
Constructs a FileSerializerWriter.
FileSerializerWriter(FileSerializerWriter &&)=delete
FileSerializerWriter & operator=(FileSerializerWriter &&)=delete
FileSerializerWriter(const FileSerializerWriter &)=delete
bool saveToFile(std::string_view source_image_path, std::span< const Operations::OperationDescriptor > operations) const override
Saves the provided list of operations to an XMP file determined by the path strategy.
FileSerializerWriter & operator=(const FileSerializerWriter &)=delete
Interface for writing serialized operation data to a file.
Declaration of IFileSerializerWriter interface.
Declaration of IXmpPathStrategy interface.
Declaration of IXmpProvider interface.
Manages the lifecycle of a single IWorkingImage instance.
CaptureMoment — footer