Changes between Version 2 and Version 3 of Session2
- Timestamp:
- Oct 1, 2015, 12:21:42 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Session2
v2 v3 11 11 == The Problem == 12 12 13 Ideally, when restoring a session, all data that is referenced by some other data has already been restored. So the all of dependencies need to be known by the saving code and there can be no circular dependencies. This avoids two-phase initialization, which is especially important for C++ objects.13 Ideally, when restoring a session, all data that is referenced by some other data has already been restored. Therefore all of dependencies need to be known by the saving code and there can be no circular dependencies. This avoids two-phase initialization, which is especially important for C++ objects. 14 14 15 15 === Where is Session State? === … … 42 42 43 43 * How to give dependencies for ordering session data? 44 * naive data with back references are circular 45 * may need to give before and after dependencies 44 46 * What is the granularity? 45 47 * Can we guarantee non-circular references? 48 * Can we provide a "simple" API for tools? 49 50 == Part of the Solution == 51 52 Saving protocol: 53 1. visit all session state and record: 54 * what tool is responsible for the state 55 * what data it refers to and 56 * only referred to data needs to be named 57 1. save the list of used tools 58 1. serialize state 59 * keep track of named data that was saved 60 1. confirm that all referred to data was saved 61 62 Restoring protocol: 63 1. Read the list of used tools 64 * if installed tools are insufficient, then give user option to cancel or load tools 65 1. deserialze state inside block/unblock of triggers 66