#pragma once // --- Namespace SystemShutdown: utilidad multiplataforma para apagar el sistema de forma segura --- namespace SystemShutdown { // --- Enums --- enum class ShutdownResult { SUCCESS = 0, // Éxito ERROR_PERMISSION, // Error de permisos insuficientes ERROR_SYSTEM_CALL, // Error en la llamada al sistema ERROR_FORK_FAILED, // Error al crear proceso hijo (Unix) ERROR_UNSUPPORTED // Sistema operativo no soportado }; // --- Estructuras --- struct ShutdownConfig { int delay_seconds{5}; // Segundos de retraso antes del apagado bool force_close_apps{true}; // Forzar cierre de aplicaciones const char* shutdown_message{"El sistema se apagará..."}; // Mensaje mostrado durante el apagado // Constructor con valores por defecto ShutdownConfig() {} }; // --- Funciones --- auto shutdownSystem() -> ShutdownResult; // Apaga el sistema con configuración por defecto auto shutdownSystem(const ShutdownConfig& config) -> ShutdownResult; // Apaga el sistema con configuración personalizada auto shutdownSystem(int delay_seconds, bool force_apps = true) -> ShutdownResult; // Apaga el sistema con parámetros simples auto resultToString(ShutdownResult result) -> const char*; // Convierte un código de resultado a string descriptivo auto isShutdownSupported() -> bool; // Verifica si el sistema actual soporta apagado programático auto getRequiredPermissions() -> const char*; // Obtiene información sobre los permisos necesarios } // namespace SystemShutdown