Программное сохранение и восстановление состояния модели
Вы можете сохранять и восстанавливать состояние модели программно с помощью методов класса Presentation (каждому из этих методов в качестве аргумента нужно передать имя файла состояния модели):
- saveSnapshot
– приостанавливает выполнение эксперимента (если он выполняется в
текущий момент), сохраняет состояние модели в указанный файл состояния
и продолжает выполнение эксперимента (если на момент вызова метода он
выполнялся).
- loadSnapshot – останавливает выполнение эксперимента и загружает состояние
из файла состояния (в его “незапущенном” состоянии),
не продолжает выполнение загруженного из файла эксперимента. При
возникновении какой бы то ни было ошибки отменяет все выполненные
операции, производит откат к ранее выполнявшемуся эксперименту и
продолжает его выполнение (если на момент вызова метода он выполнялся).
Когда загружается состояние, презентация забывает все о ранее
выполнявшейся модели
(в том числе, удаляется вся информация об исполняющем модуле,
эксперименте и активных объектах), поэтому рекомендуется не ссылаться
на эти объекты после вызова этого метода.
Оба эти метода возвращают
управление модели мгновенно
(их операции выполняются в отдельном потоке). То, что метод вернул
управление, еще не означает, что он закончил выполнение всех своих
операций – они все еще могут выполняться. Отслеживать события
действительного восстановления/сохранения состояния модели (и выполнять
при этом какие-то действия) можно реализовав методы обработчиков
этих событий (см. методы addSnapshotEventListener
и removeSnapshotEventListener класса Presentation).