Mercurial > repos > public > matlab_path_manager
annotate +mpm/PersistentState.m @ 31:769d1d252a3c
Change name of todo.txt to notes.txt
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 18 Sep 2018 14:17:13 +0200 |
parents | 29da718b8e7f |
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 |