Skip to content

Commit b2e40be

Browse files
committed
Merge pull request #106 from mpsonntag/removeCache
Remove caching from Matlab bindings LGTM
2 parents b8f2a56 + 10c3df6 commit b2e40be

22 files changed

+485
-359
lines changed

+nix/Block.m

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
handle = nix_mx('Block::createGroup', obj.nix_handle, ...
2828
name, nixtype);
2929
g = nix.Group(handle);
30-
obj.groupsCache.lastUpdate = 0;
3130
end;
3231

3332
function hasGroup = has_group(obj, id_or_name)
@@ -40,7 +39,7 @@
4039
end;
4140

4241
function delCheck = delete_group(obj, del)
43-
[delCheck, obj.groupsCache] = nix.Utils.delete_entity(obj, ...
42+
delCheck = nix.Utils.delete_entity(obj, ...
4443
del, 'nix.Group', 'Block::deleteGroup');
4544
end;
4645

@@ -59,7 +58,6 @@
5958
handle = nix_mx('Block::createDataArray', obj.nix_handle, ...
6059
name, nixtype, datatype, shape);
6160
da = nix.DataArray(handle);
62-
obj.dataArraysCache.lastUpdate = 0;
6361
end
6462

6563
function da = create_data_array_from_data(obj, name, nixtype, data)
@@ -75,26 +73,26 @@
7573
end;
7674

7775
function delCheck = delete_data_array(obj, del)
78-
[delCheck, obj.dataArraysCache] = nix.Utils.delete_entity(obj, ...
79-
del, 'nix.DataArray', 'Block::deleteDataArray', obj.dataArraysCache);
76+
delCheck = nix.Utils.delete_entity(obj, ...
77+
del, 'nix.DataArray', 'Block::deleteDataArray');
8078
end;
8179

8280
% -----------------
8381
% Sources methods
8482
% -----------------
8583

8684
function s = create_source(obj, name, type)
87-
s = nix.Source(nix_mx('Block::createSource', obj.nix_handle, name, type));
88-
obj.sourcesCache.lastUpdate = 0;
85+
s = nix.Source(nix_mx('Block::createSource', ...
86+
obj.nix_handle, name, type));
8987
end;
9088

9189
function hasSource = has_source(obj, id_or_name)
9290
hasSource = nix_mx('Block::hasSource', obj.nix_handle, id_or_name);
9391
end;
9492

9593
function delCheck = delete_source(obj, del)
96-
[delCheck, obj.sourcesCache] = nix.Utils.delete_entity(obj, ...
97-
del, 'nix.Source', 'Block::deleteSource', obj.sourcesCache);
94+
delCheck = nix.Utils.delete_entity(obj, ...
95+
del, 'nix.Source', 'Block::deleteSource');
9896
end;
9997

10098
function retObj = open_source(obj, id_or_name)
@@ -119,12 +117,11 @@
119117
th = nix_mx('Block::createTag', obj.nix_handle, ...
120118
name, type, position);
121119
tag = nix.Tag(th);
122-
obj.tagsCache.lastUpdate = 0;
123120
end;
124121

125122
function delCheck = delete_tag(obj, del)
126-
[delCheck, obj.tagsCache] = nix.Utils.delete_entity(obj, ...
127-
del, 'nix.Tag', 'Block::deleteTag', obj.tagsCache);
123+
delCheck = nix.Utils.delete_entity(obj, ...
124+
del, 'nix.Tag', 'Block::deleteTag');
128125
end;
129126

130127
% -----------------
@@ -150,12 +147,12 @@
150147

151148
multitag = nix.MultiTag(nix_mx('Block::createMultiTag', ...
152149
obj.nix_handle, name, type, addID));
153-
obj.multiTagsCache.lastUpdate = 0;
154150
end;
155151

156152
function delCheck = delete_multi_tag(obj, del)
157-
[delCheck, obj.multiTagsCache] = nix.Utils.delete_entity(obj, ...
158-
del, 'nix.MultiTag', 'Block::deleteMultiTag', obj.multiTagsCache);
153+
delCheck = nix.Utils.delete_entity(obj, ...
154+
del, 'nix.MultiTag', 'Block::deleteMultiTag');
159155
end;
160156
end;
161-
end
157+
158+
end

+nix/CacheStruct.m

Lines changed: 0 additions & 8 deletions
This file was deleted.

+nix/DataArray.m

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
properties (Hidden)
55
% namespace reference for nix-mx functions
66
alias = 'DataArray'
7-
dimsCache
8-
end
7+
end;
98

109
properties(Dependent)
1110
dimensions % should not be dynamic due to complex set operation
@@ -23,58 +22,47 @@
2322
nix.Dynamic.add_dyn_attr(obj, 'expansionOrigin', 'rw');
2423
nix.Dynamic.add_dyn_attr(obj, 'polynom_coefficients', 'rw');
2524
nix.Dynamic.add_dyn_attr(obj, 'shape', 'rw');
26-
27-
obj.dimsCache = nix.CacheStruct();
2825
end;
2926

3027
% -----------------
3128
% Dimensions
3229
% -----------------
3330

3431
function dimensions = get.dimensions(obj)
35-
if obj.dimsCache.lastUpdate ~= obj.updatedAt
36-
currList = nix_mx('DataArray::dimensions', obj.nix_handle);
37-
obj.dimsCache.data = cell(length(currList), 1);
38-
for i = 1:length(currList)
39-
40-
switch currList(i).dtype
41-
case 'set'
42-
obj.dimsCache.data{i} = nix.SetDimension(currList(i).dimension);
43-
case 'sample'
44-
obj.dimsCache.data{i} = nix.SampledDimension(currList(i).dimension);
45-
case 'range'
46-
obj.dimsCache.data{i} = nix.RangeDimension(currList(i).dimension);
47-
otherwise
48-
disp('some dimension type is unknown! skip')
49-
end
32+
dimensions = {};
33+
currList = nix_mx('DataArray::dimensions', obj.nix_handle);
34+
for i = 1:length(currList)
35+
switch currList(i).dtype
36+
case 'set'
37+
dimensions{i} = nix.SetDimension(currList(i).dimension);
38+
case 'sample'
39+
dimensions{i} = nix.SampledDimension(currList(i).dimension);
40+
case 'range'
41+
dimensions{i} = nix.RangeDimension(currList(i).dimension);
42+
otherwise
43+
disp('some dimension type is unknown! skip')
5044
end;
51-
obj.dimsCache.lastUpdate = obj.updatedAt;
5245
end;
53-
dimensions = obj.dimsCache.data;
5446
end;
5547

5648
function dim = append_set_dimension(obj)
5749
func_name = strcat(obj.alias, '::append_set_dimension');
5850
dim = nix.SetDimension(nix_mx(func_name, obj.nix_handle));
59-
obj.dimsCache.lastUpdate = 0;
6051
end
6152

6253
function dim = append_sampled_dimension(obj, interval)
6354
func_name = strcat(obj.alias, '::append_sampled_dimension');
6455
dim = nix.SampledDimension(nix_mx(func_name, obj.nix_handle, interval));
65-
obj.dimsCache.lastUpdate = 0;
6656
end
6757

6858
function dim = append_range_dimension(obj, ticks)
6959
func_name = strcat(obj.alias, '::append_range_dimension');
7060
dim = nix.RangeDimension(nix_mx(func_name, obj.nix_handle, ticks));
71-
obj.dimsCache.lastUpdate = 0;
7261
end
7362

7463
function delCheck = delete_dimension(obj, index)
7564
func_name = strcat(obj.alias, '::delete_dimension');
7665
delCheck = nix_mx(func_name, obj.nix_handle, index);
77-
obj.dimsCache.lastUpdate = 0;
7866
end;
7967

8068
% -----------------

+nix/Dynamic.m

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ function set_method(obj, val)
4343
end
4444

4545
function add_dyn_relation(obj, name, constructor)
46-
cacheAttr = strcat(name, 'Cache');
47-
cache = addprop(obj, cacheAttr);
48-
cache.Hidden = true;
49-
obj.(cacheAttr) = nix.CacheStruct();
50-
46+
dataAttr = strcat(name, 'Data');
47+
data = addprop(obj, dataAttr);
48+
data.Hidden = true;
49+
obj.(dataAttr) = {};
50+
5151
% adds a proxy property
5252
rel = addprop(obj, name);
5353
rel.GetMethod = @get_method;
@@ -58,9 +58,10 @@ function add_dyn_relation(obj, name, constructor)
5858
rel_map.Hidden = true;
5959

6060
function val = get_method(obj)
61-
[obj.(cacheAttr), val] = nix.Utils.fetchObjList(obj.updatedAt, ...
61+
obj.(dataAttr) = nix.Utils.fetchObjList(...
6262
strcat(obj.alias, '::', name), obj.nix_handle, ...
63-
obj.(cacheAttr), constructor);
63+
constructor);
64+
val = obj.(dataAttr);
6465
end
6566

6667
function val = get_as_map(obj)
@@ -73,4 +74,5 @@ function add_dyn_relation(obj, name, constructor)
7374
end
7475
end
7576
end
76-
end
77+
78+
end

+nix/File.m

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
function newBlock = createBlock(obj, name, type)
2929
newBlock = nix.Block(nix_mx('File::createBlock', obj.nix_handle, name, type));
30-
obj.blocksCache.lastUpdate = 0;
3130
end;
3231

3332
function hasBlock = hasBlock(obj, id_or_name)
@@ -40,8 +39,8 @@
4039
end
4140

4241
function delCheck = deleteBlock(obj, del)
43-
[delCheck, obj.blocksCache] = nix.Utils.delete_entity(obj, ...
44-
del, 'nix.Block', 'File::deleteBlock', obj.blocksCache);
42+
delCheck = nix.Utils.delete_entity(obj, ...
43+
del, 'nix.Block', 'File::deleteBlock');
4544
end;
4645

4746
% ----------------
@@ -50,7 +49,6 @@
5049

5150
function newSec = createSection(obj, name, type)
5251
newSec = nix.Section(nix_mx('File::createSection', obj.nix_handle, name, type));
53-
obj.sectionsCache.lastUpdate = 0;
5452
end;
5553

5654
function hasSec = hasSection(obj, id_or_name)
@@ -64,9 +62,7 @@
6462

6563
function delCheck = deleteSection(obj, del)
6664
delCheck = nix.Utils.delete_entity(obj, del, 'nix.Section', 'File::deleteSection');
67-
obj.sectionsCache.lastUpdate = 0;
6865
end;
69-
7066
end
71-
end
7267

68+
end

+nix/Group.m

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,22 @@
3131
end;
3232

3333
function [] = add_data_array(obj, add_this)
34-
obj.dataArraysCache = nix.Utils.add_entity(obj, ...
35-
add_this, 'nix.DataArray', 'Group::addDataArray', ...
36-
obj.dataArraysCache);
34+
nix.Utils.add_entity(obj, add_this, ...
35+
'nix.DataArray', 'Group::addDataArray');
3736
end;
3837

3938
function delCheck = remove_data_array(obj, del)
40-
[delCheck, obj.dataArraysCache] = nix.Utils.delete_entity(obj, ...
41-
del, 'nix.DataArray', 'Group::removeDataArray', ...
42-
obj.dataArraysCache);
39+
delCheck = nix.Utils.delete_entity(obj, del, ...
40+
'nix.DataArray', 'Group::removeDataArray');
4341
end;
4442

4543
% -----------------
4644
% Tags methods
4745
% -----------------
4846

4947
function [] = add_tag(obj, add_this)
50-
obj.tagsCache = nix.Utils.add_entity(obj, ...
51-
add_this, 'nix.Tag', 'Group::addTag', ...
52-
obj.tagsCache);
48+
nix.Utils.add_entity(obj, add_this, ...
49+
'nix.Tag', 'Group::addTag');
5350
end;
5451

5552
function hasTag = has_tag(obj, id_or_name)
@@ -62,19 +59,17 @@
6259
end;
6360

6461
function delCheck = remove_tag(obj, del)
65-
[delCheck, obj.tagsCache] = nix.Utils.delete_entity(obj, ...
66-
del, 'nix.Tag', 'Group::removeTag', ...
67-
obj.tagsCache);
62+
delCheck = nix.Utils.delete_entity(obj, del, ...
63+
'nix.Tag', 'Group::removeTag');
6864
end;
6965

7066
% -----------------
7167
% MultiTag methods
7268
% -----------------
7369

7470
function [] = add_multi_tag(obj, add_this)
75-
obj.multiTagsCache = nix.Utils.add_entity(obj, ...
76-
add_this, 'nix.MultiTag', 'Group::addMultiTag', ...
77-
obj.multiTagsCache);
71+
nix.Utils.add_entity(obj, add_this, ...
72+
'nix.MultiTag', 'Group::addMultiTag');
7873
end;
7974

8075
function hasMTag = has_multi_tag(obj, id_or_name)
@@ -88,10 +83,9 @@
8883
end;
8984

9085
function delCheck = remove_multi_tag(obj, del)
91-
[delCheck, obj.multiTagsCache] = nix.Utils.delete_entity(obj, ...
92-
del, 'nix.MultiTag', 'Group::removeMultiTag', ...
93-
obj.multiTagsCache);
86+
delCheck = nix.Utils.delete_entity(obj, del, ...
87+
'nix.MultiTag', 'Group::removeMultiTag');
9488
end;
95-
9689
end;
90+
9791
end

+nix/MetadataMixIn.m

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,22 @@
88
alias
99
end
1010

11-
properties(Hidden)
12-
metadataCache
13-
end;
14-
1511
methods
16-
function obj = MetadataMixIn()
17-
obj.metadataCache = nix.CacheStruct();
18-
end
19-
2012
function metadata = open_metadata(obj)
21-
[obj.metadataCache, metadata] = nix.Utils.fetchObj(...
22-
obj.updatedAt, ...
13+
metadata = nix.Utils.fetchObj(...
2314
strcat(obj.alias, '::openMetadataSection'), ...
24-
obj.nix_handle, obj.metadataCache, @nix.Section);
15+
obj.nix_handle, @nix.Section);
2516
end;
2617

2718
function set_metadata(obj, val)
2819
if (isempty(val))
29-
nix_mx(strcat(obj.alias, '::set_none_metadata'), obj.nix_handle, val);
20+
nix_mx(strcat(obj.alias, '::set_none_metadata'), ...
21+
obj.nix_handle, val);
3022
else
31-
obj.metadataCache = nix.Utils.add_entity(obj, val, 'nix.Section', ...
32-
strcat(obj.alias, '::set_metadata'), obj.metadataCache);
23+
nix.Utils.add_entity(obj, val, 'nix.Section', ...
24+
strcat(obj.alias, '::set_metadata'));
3325
end;
34-
obj.metadataCache.lastUpdate = 0;
3526
end;
3627
end;
3728

3829
end
39-

0 commit comments

Comments
 (0)