Secured statemachine
This commit is contained in:
parent
4ab6ffd890
commit
188d8f48e3
@ -81,20 +81,24 @@ public class StateMachine
|
|||||||
|
|
||||||
public IEnumerable<string> GetIds()
|
public IEnumerable<string> GetIds()
|
||||||
{
|
{
|
||||||
if (!Populated)
|
|
||||||
PopulateWithHistory().Wait();
|
|
||||||
|
|
||||||
lock (Mutex)
|
lock (Mutex)
|
||||||
foreach (var kv in Implementation)
|
|
||||||
yield return kv.Key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<Triplet> Get()
|
|
||||||
{
|
{
|
||||||
if (!Populated)
|
if (!Populated)
|
||||||
PopulateWithHistory().Wait();
|
PopulateWithHistory().Wait();
|
||||||
|
|
||||||
|
foreach (var kv in Implementation)
|
||||||
|
yield return kv.Key;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Triplet> Get()
|
||||||
|
{
|
||||||
lock (Mutex)
|
lock (Mutex)
|
||||||
|
{
|
||||||
|
if (!Populated)
|
||||||
|
PopulateWithHistory().Wait();
|
||||||
|
|
||||||
foreach (var kv in Implementation)
|
foreach (var kv in Implementation)
|
||||||
foreach (var kvv in kv.Value)
|
foreach (var kvv in kv.Value)
|
||||||
yield return new Triplet
|
yield return new Triplet
|
||||||
@ -106,15 +110,22 @@ public class StateMachine
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<Triplet> Get(string key)
|
public IEnumerable<Triplet> Get(string key)
|
||||||
|
{
|
||||||
|
Dictionary<string, ImplValue> dic;
|
||||||
|
|
||||||
|
|
||||||
|
lock (Mutex)
|
||||||
{
|
{
|
||||||
if (!Populated)
|
if (!Populated)
|
||||||
PopulateWithHistory().Wait();
|
PopulateWithHistory().Wait();
|
||||||
|
|
||||||
Dictionary<string, ImplValue> dic;
|
|
||||||
lock (Mutex)
|
|
||||||
if (!Implementation.TryGetValue(key, out dic))
|
if (!Implementation.TryGetValue(key, out dic))
|
||||||
yield break;
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach(var kv in dic)
|
foreach(var kv in dic)
|
||||||
yield return new Triplet
|
yield return new Triplet
|
||||||
@ -127,14 +138,20 @@ public class StateMachine
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DateTime? GetLastUpdate(string key)
|
public DateTime? GetLastUpdate(string key)
|
||||||
|
{
|
||||||
|
Dictionary<string, ImplValue> dic;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
lock (Mutex)
|
||||||
{
|
{
|
||||||
if (!Populated)
|
if (!Populated)
|
||||||
PopulateWithHistory().Wait();
|
PopulateWithHistory().Wait();
|
||||||
|
|
||||||
Dictionary<string, ImplValue> dic;
|
|
||||||
lock (Mutex)
|
|
||||||
if (!Implementation.TryGetValue(key, out dic))
|
if (!Implementation.TryGetValue(key, out dic))
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
DateTime mostrecent = DateTime.MinValue;
|
DateTime mostrecent = DateTime.MinValue;
|
||||||
foreach (var kv in dic)
|
foreach (var kv in dic)
|
||||||
@ -148,14 +165,17 @@ public class StateMachine
|
|||||||
}
|
}
|
||||||
|
|
||||||
public object? Get(string key, string predicate)
|
public object? Get(string key, string predicate)
|
||||||
|
{
|
||||||
|
lock (Mutex)
|
||||||
{
|
{
|
||||||
if (!Populated)
|
if (!Populated)
|
||||||
PopulateWithHistory().Wait();
|
PopulateWithHistory().Wait();
|
||||||
|
|
||||||
lock (Mutex)
|
|
||||||
if (Implementation.TryGetValue(key, out var value))
|
if (Implementation.TryGetValue(key, out var value))
|
||||||
if (value.TryGetValue(predicate, out var ret))
|
if (value.TryGetValue(predicate, out var ret))
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user