15 std::unique_ptr<IFileSerializerWriter> writer,
16 std::unique_ptr<IFileSerializerReader> reader)
17 : m_writer(std::move(writer))
18 , m_reader(std::move(reader))
20 if (!m_writer || !m_reader) {
21 spdlog::error(
"FileSerializerManager: Constructor received a null IFileSerializerWriter or IFileSerializerReader.");
22 throw std::invalid_argument(
"FileSerializerManager: Writer and Reader cannot be null.");
24 spdlog::debug(
"FileSerializerManager: Constructed with IFileSerializerWriter and IFileSerializerReader.");
29 if (source_image_path.empty()) {
30 spdlog::error(
"FileSerializerManager::saveToFile: Source image path is empty.");
34 if (operations.empty()) {
35 spdlog::info(
"FileSerializerManager::saveToFile: Operations list is empty. Saving empty list to XMP.");
39 spdlog::debug(
"FileSerializerManager::saveToFile: Attempting to save {} operations for image: {}", operations.size(), source_image_path);
43 bool success = m_writer->saveToFile(source_image_path, operations);
46 spdlog::info(
"FileSerializerManager::saveToFile: Successfully saved {} operations to file for image: {}", operations.size(), source_image_path);
48 spdlog::error(
"FileSerializerManager::saveToFile: Failed to save operations to file for image: {}", source_image_path);
56 if (source_image_path.empty()) {
57 spdlog::error(
"FileSerializerManager::loadFromFile: Source image path is empty.");
61 spdlog::debug(
"FileSerializerManager::loadFromFile: Attempting to load operations for image: {}", source_image_path);
65 std::vector<Operations::OperationDescriptor> operations = m_reader->loadFromFile(source_image_path);
67 if (operations.empty()) {
68 spdlog::info(
"FileSerializerManager::loadFromFile: No operations loaded from file for image: {} (file might not exist or be empty)", source_image_path);
70 spdlog::info(
"FileSerializerManager::loadFromFile: Successfully loaded {} operations from file for image: {}", operations.size(), source_image_path);