@@ -8,9 +8,9 @@ namespace FireSharp.Core.EventStreaming
8
8
{
9
9
internal sealed class TemporaryCache : IDisposable
10
10
{
11
- private readonly LinkedList < SimpleCacheItem > _pathFromRootList = new LinkedList < SimpleCacheItem > ( ) ;
12
- private readonly char [ ] _seperator = { '/' } ;
13
- private readonly object _treeLock = new object ( ) ;
11
+ private readonly LinkedList < SimpleCacheItem > pathFromRootList = new ( ) ;
12
+ private readonly char [ ] separator = { '/' } ;
13
+ private readonly object treeLock = new ( ) ;
14
14
15
15
public object Context = null ;
16
16
@@ -27,42 +27,40 @@ public TemporaryCache()
27
27
Dispose ( false ) ;
28
28
}
29
29
30
- internal SimpleCacheItem Root { get ; } = new SimpleCacheItem ( ) ;
30
+ internal SimpleCacheItem Root { get ; } = new ( ) ;
31
31
32
32
public void Replace ( string path , JsonReader data )
33
33
{
34
- lock ( _treeLock )
34
+ lock ( treeLock )
35
35
{
36
- var root = FindRoot ( path ) ;
36
+ SimpleCacheItem root = FindRoot ( path ) ;
37
37
Replace ( root , data ) ;
38
38
}
39
39
}
40
40
41
41
public void Update ( string path , JsonReader data )
42
42
{
43
- lock ( _treeLock )
43
+ lock ( treeLock )
44
44
{
45
- var root = FindRoot ( path ) ;
45
+ SimpleCacheItem root = FindRoot ( path ) ;
46
46
UpdateChildren ( root , data ) ;
47
47
}
48
48
}
49
49
50
50
private SimpleCacheItem FindRoot ( string path )
51
51
{
52
- var segments = path . Split ( _seperator , StringSplitOptions . RemoveEmptyEntries ) ;
52
+ string [ ] segments = path . Split ( separator , StringSplitOptions . RemoveEmptyEntries ) ;
53
53
54
54
return segments . Aggregate ( Root , GetNamedChild ) ;
55
55
}
56
56
57
57
private static SimpleCacheItem GetNamedChild ( SimpleCacheItem root , string segment )
58
58
{
59
- var newRoot = root . Children . FirstOrDefault ( c => c . Name == segment ) ;
59
+ SimpleCacheItem newRoot = root . Children . FirstOrDefault ( c => c . Name == segment ) ;
60
60
61
- if ( newRoot == null )
62
- {
63
- newRoot = new SimpleCacheItem { Name = segment , Parent = root , Created = true } ;
64
- root . Children . Add ( newRoot ) ;
65
- }
61
+ if ( newRoot != null ) return newRoot ;
62
+ newRoot = new SimpleCacheItem { Name = segment , Parent = root , Created = true } ;
63
+ root . Children . Add ( newRoot ) ;
66
64
67
65
return newRoot ;
68
66
}
@@ -86,7 +84,7 @@ private void UpdateChildren(SimpleCacheItem root, JsonReader reader, bool replac
86
84
switch ( reader . TokenType )
87
85
{
88
86
case JsonToken . PropertyName :
89
- UpdateChildren ( GetNamedChild ( root , reader . Value . ToString ( ) ) , reader ) ;
87
+ if ( reader . Value != null ) UpdateChildren ( GetNamedChild ( root , reader . Value . ToString ( ) ) , reader ) ;
90
88
break ;
91
89
case JsonToken . Boolean :
92
90
case JsonToken . Bytes :
@@ -96,14 +94,18 @@ private void UpdateChildren(SimpleCacheItem root, JsonReader reader, bool replac
96
94
case JsonToken . String :
97
95
if ( root . Created )
98
96
{
99
- root . Value = reader . Value . ToString ( ) ;
100
- OnAdded ( new ValueAddedEventArgs ( PathFromRoot ( root ) , reader . Value . ToString ( ) ) ) ;
97
+ if ( reader . Value != null )
98
+ {
99
+ root . Value = reader . Value . ToString ( ) ;
100
+ OnAdded ( new ValueAddedEventArgs ( PathFromRoot ( root ) , reader . Value . ToString ( ) ) ) ;
101
+ }
102
+
101
103
root . Created = false ;
102
104
}
103
105
else
104
106
{
105
- var oldData = root . Value ;
106
- root . Value = reader . Value . ToString ( ) ;
107
+ string oldData = root . Value ;
108
+ if ( reader . Value != null ) root . Value = reader . Value . ToString ( ) ;
107
109
OnUpdated ( new ValueChangedEventArgs ( PathFromRoot ( root ) , root . Value , oldData ) ) ;
108
110
}
109
111
@@ -127,7 +129,7 @@ private void DeleteChild(SimpleCacheItem root)
127
129
}
128
130
else
129
131
{
130
- foreach ( var child in root . Children . ToArray ( ) )
132
+ foreach ( SimpleCacheItem child in root . Children . ToArray ( ) )
131
133
{
132
134
RemoveChildFromParent ( child ) ;
133
135
OnRemoved ( new ValueRemovedEventArgs ( PathFromRoot ( child ) ) ) ;
@@ -147,27 +149,27 @@ private bool RemoveChildFromParent(SimpleCacheItem child)
147
149
148
150
private string PathFromRoot ( SimpleCacheItem root )
149
151
{
150
- var size = 1 ;
152
+ int size = 1 ;
151
153
152
154
while ( root . Name != null )
153
155
{
154
156
size += root . Name . Length + 1 ;
155
- _pathFromRootList . AddFirst ( root ) ;
157
+ pathFromRootList . AddFirst ( root ) ;
156
158
root = root . Parent ;
157
159
}
158
160
159
- if ( _pathFromRootList . Count == 0 )
161
+ if ( pathFromRootList . Count == 0 )
160
162
{
161
163
return "/" ;
162
164
}
163
165
164
- var sb = new StringBuilder ( size ) ;
165
- foreach ( var d in _pathFromRootList )
166
+ StringBuilder sb = new ( size ) ;
167
+ foreach ( SimpleCacheItem d in pathFromRootList )
166
168
{
167
169
sb . Append ( $ "/{ d . Name } ") ;
168
170
}
169
171
170
- _pathFromRootList . Clear ( ) ;
172
+ pathFromRootList . Clear ( ) ;
171
173
172
174
return sb . ToString ( ) ;
173
175
}
0 commit comments