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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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