feat(service-menu): pobla SISTEMA amb reinici, eixir i confirmacions
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// relaunch.hpp - Reinici en calent del proces (execv)
|
||||
// © 2026 JailDesigner
|
||||
//
|
||||
// Helper desacoblat per a permetre que el menu de servei demani un reinici
|
||||
// sense conèixer Director ni main.cpp. Patro:
|
||||
//
|
||||
// main() → Relaunch::setArgv(argc, argv) (a l'arrencada)
|
||||
// ServiceMenu → Relaunch::request() (en activar REINICIAR)
|
||||
// main() → Relaunch::execIfRequested() (a SDL_AppQuit)
|
||||
//
|
||||
// L'execv() reemplaca el proces actual: si torna, ha fallat. A EMSCRIPTEN
|
||||
// no es pot reiniciar; isRequested() seguira dient true pero execIfRequested
|
||||
// sera no-op.
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace System::Relaunch {
|
||||
|
||||
// Emmagatzema l'argv original. Cal cridar-ho una vegada des de main.
|
||||
void setArgv(int argc, char** argv);
|
||||
|
||||
// Demana un reinici (no actua immediatament; nomes marca el flag).
|
||||
void request();
|
||||
|
||||
// Consulta del flag.
|
||||
[[nodiscard]] auto isRequested() -> bool;
|
||||
|
||||
// Si hi ha reinici demanat i tenim argv valid, fa execv. En cas d'exit
|
||||
// no torna. Si execv falla, registra l'error i torna; el caller hauria
|
||||
// de sortir normalment.
|
||||
void execIfRequested();
|
||||
|
||||
} // namespace System::Relaunch
|
||||
Reference in New Issue
Block a user