CaptureMoment 0.1.0
Free and open-source non-destructive photo editor
Loading...
Searching...
No Matches
file_serializer_reader.h
Go to the documentation of this file.
1
9#pragma once
10
14
15#include <memory>
16#include <string>
17#include <vector>
18
19namespace CaptureMoment::Core {
20
21namespace Serializer {
22
30public:
39 explicit FileSerializerReader(
40 std::unique_ptr<IXmpProvider> xmp_provider,
41 std::unique_ptr<IXmpPathStrategy> xmp_path_strategy
42 );
43
44 ~FileSerializerReader() override = default;
45
46 // Disable copy/move for simplicity, assuming unique_ptr dependencies
51
61 [[nodiscard]] std::vector<Operations::OperationDescriptor> loadFromFile(std::string_view source_image_path) const override;
62
63private:
67 std::unique_ptr<IXmpProvider> m_xmp_provider;
68
72 std::unique_ptr<IXmpPathStrategy> m_xmp_path_strategy;
73
82 [[nodiscard]] std::vector<Operations::OperationDescriptor> parseXmpPacket(const std::string& xmp_packet, std::string& source_image_path_from_xmp) const;
83};
84
85} // namespace Serializer
86
87} // namespace CaptureMoment::Core
Concrete implementation of IFileSerializerReader using an IXmpProvider for XMP operations and an IXmp...
FileSerializerReader(FileSerializerReader &&)=delete
std::vector< Operations::OperationDescriptor > loadFromFile(std::string_view source_image_path) const override
Loads a list of operations from an XMP file determined by the path strategy.
FileSerializerReader(std::unique_ptr< IXmpProvider > xmp_provider, std::unique_ptr< IXmpPathStrategy > xmp_path_strategy)
Constructs a FileSerializerReader.
FileSerializerReader & operator=(FileSerializerReader &&)=delete
FileSerializerReader & operator=(const FileSerializerReader &)=delete
FileSerializerReader(const FileSerializerReader &)=delete
Interface for reading serialized operation data from a file.
Declaration of IFileSerializerReader interface.
Declaration of IXmpPathStrategy interface.
Declaration of IXmpProvider interface.
Manages the lifecycle of a single IWorkingImage instance.
CaptureMoment — footer