// // SuspensionManager.h // Deklaration der SuspensionManager-Klasse // #pragma once namespace $safeprojectname$ { namespace Common { /// /// SuspensionManager erfasst den globalen Sitzungszustand, um die Verwaltung der Prozesslebensdauer /// für eine Anwendung zu vereinfachen. Beachten, dass der Sitzungszustand bei einer Vielzahl von Bedingungen /// automatisch gelöscht wird und niemals zum Speichern von Informationen verwendet werden sollte, die zwischen Sitzungen zwar bequem übertragen werden können, /// jedoch beim Absturz der Anwendung gelöscht werden sollen oder /// aktualisiert werden. /// class SuspensionManager sealed { public: static void RegisterFrame(Windows::UI::Xaml::Controls::Frame^ frame, Platform::String^ sessionStateKey, Platform::String^ sessionBaseKey = nullptr); static void UnregisterFrame(Windows::UI::Xaml::Controls::Frame^ frame); static concurrency::task SaveAsync(); static concurrency::task RestoreAsync(Platform::String^ sessionBaseKey = nullptr); static Windows::Foundation::Collections::IMap^ SessionState(); static Windows::Foundation::Collections::IMap^ SessionStateForFrame( Windows::UI::Xaml::Controls::Frame^ frame); static void RegisterDependencyProperties(); private: static void RestoreFrameNavigationState(Windows::UI::Xaml::Controls::Frame^ frame); static void SaveFrameNavigationState(Windows::UI::Xaml::Controls::Frame^ frame); static Platform::Collections::Map^ _sessionState; static const wchar_t* sessionStateFilename; static std::vector _registeredFrames; static Windows::UI::Xaml::DependencyProperty^ FrameSessionStateKeyProperty; static Windows::UI::Xaml::DependencyProperty^ FrameSessionBaseKeyProperty; static Windows::UI::Xaml::DependencyProperty^ FrameSessionStateProperty; }; } }