1#ifndef YAZE_APP_EDITOR_SYSTEM_ROM_LIFECYCLE_MANAGER_H_
2#define YAZE_APP_EDITOR_SYSTEM_ROM_LIFECYCLE_MANAGER_H_
7#include "absl/status/status.h"
15class SessionCoordinator;
143 bool enabled,
const std::string& folder,
int retention_count,
144 bool keep_daily,
int keep_daily_days);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Handles all ROM file I/O operations.
Manages ROM and project persistence state.
void UpdateCurrentRomHash(Rom *rom)
Recompute the hash of the current ROM.
void BypassWriteConflictOnce()
bool ShouldBypassWriteConflict() const
std::vector< RomFileManager::BackupEntry > GetRomBackups(Rom *rom) const
void SetPotItemConfirmPending(int unloaded_rooms, int total_rooms)
Set pot-item confirmation pending (called by SaveRom when needed).
bool pending_rom_write_confirm_
int pending_pot_item_total_rooms_
bool ShouldSuppressPotItemSave() const
bool pending_pot_item_save_confirm_
bool IsRomHashMismatch() const
Check whether the ROM hash mismatches the project's expected hash.
std::string current_rom_hash_
bool HasPendingPotItemSaveConfirmation() const
RomFileManager * rom_file_manager_
PopupManager * popup_manager_
void CancelRomWriteConfirm()
bool suppress_pot_item_save_once_
void ClearPotItemBypass()
PotItemSaveDecision ResolvePotItemSaveConfirmation(PotItemSaveDecision decision)
RomLifecycleManager()=default
int pending_pot_item_unloaded_rooms() const
int pending_pot_item_unloaded_rooms_
const std::string & current_rom_hash() const
Get the cached ROM hash string.
void ClearPendingWriteConflicts()
void ConsumeWriteConflictBypass()
bool ShouldBypassPotItemConfirm() const
bool bypass_rom_write_confirm_once_
std::vector< core::WriteConflict > pending_write_conflicts_
const std::vector< core::WriteConflict > & pending_write_conflicts() const
void SetPendingWriteConflicts(std::vector< core::WriteConflict > conflicts)
int pending_pot_item_total_rooms() const
absl::Status CheckRomWritePolicy(Rom *rom)
Enforce project write policy; may set pending_rom_write_confirm.
absl::Status CheckOracleRomSafetyPreSave(Rom *rom)
Run Oracle-specific ROM safety preflight before saving.
bool bypass_pot_item_confirm_once_
void Initialize(Dependencies deps)
absl::Status PruneRomBackups(Rom *rom)
ToastManager * toast_manager_
~RomLifecycleManager()=default
project::YazeProject * project_
bool IsRomWriteConfirmPending() const
void ApplyDefaultBackupPolicy(bool enabled, const std::string &folder, int retention_count, bool keep_daily, int keep_daily_days)
Apply default backup policy from user settings.
bool bypass_write_conflict_once_
SessionCoordinator * session_coordinator_
High-level orchestrator for multi-session UI.
Editors are the view controllers for the application.
SessionCoordinator * session_coordinator
RomFileManager * rom_file_manager
project::YazeProject * project
PopupManager * popup_manager
ToastManager * toast_manager
Modern project structure with comprehensive settings consolidation.