protected IEnumerator <object> CreateTangles() { Delegate deserializer = null, serializer = null; foreach (var tf in TangleFields) { var constructor = tf.Type.GetConstructors()[0]; var subStorage = new SubStreamSource(Storage, tf.Name + "_"); Deserializers.TryGetValue(tf.Name, out deserializer); Serializers.TryGetValue(tf.Name, out serializer); var theTangle = (ITangle)constructor.Invoke(new object[] { Scheduler, subStorage, serializer, deserializer, false }); tf.Value = theTangle; Tangles.Add(theTangle); } yield return(SymbolCache.CreateIndex <string>( "ByFunction", IndexSymbolByFunction ).Bind(() => SymbolsByFunction)); /* * yield return Tracebacks.CreateIndex( * "ByFramePrefix", * IndexTracebackByFrames * ); */ }
public void IndexUpdatedWhenAddingNewValues() { var ByValue = Scheduler.WaitFor(Tangle.CreateIndex("ByValue", (ref string v) => v)); var key = new TangleKey("hello"); var value = "world"; Scheduler.WaitFor(Tangle.Set(key, value)); Assert.AreEqual(key, Scheduler.WaitFor(ByValue.FindOne(value))); Assert.AreEqual(value, Scheduler.WaitFor(ByValue.GetOne(value))); }