Mercurial > repos > public > matlab_path_manager
annotate +mpm/PersistentState.m @ 22:29da718b8e7f
Add class for managing state file
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Tue, 18 Sep 2018 11:41:39 +0200 |
| parents | |
| children | 16d56bf04117 |
| rev | line source |
|---|---|
|
22
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 classdef PersistentState < handle |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 properties |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 filepath |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 subpaths |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 end |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 methods |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 function obj = PersistentState(filepath) |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 obj.filepath = filepath; |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 try |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 % Read state from file |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 s = load(filepath); |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 obj.subpaths = s.subpaths; |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 catch |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 % If reading the file failed, create an empty state |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 obj.subpaths = containers.Map(); |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 end |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 end |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 function s = saveState(obj) |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 s = struct(); |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 s.subpaths = obj.subpaths; |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 save(obj.filepath, '-struct', 's'); |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 end |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 end |
|
29da718b8e7f
Add class for managing state file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 end |
