public MemoryIndexTest() { Snapshot snapshot = new Snapshot(); snapshot.StartTransaction(); ObjectValue object1 = snapshot.CreateObject(null); ObjectValue object2 = snapshot.CreateObject(null); snapshot.CommitTransaction(); variableA = VariableIndex.Create("a", 0); variableA2 = VariableIndex.Create("a", 0); variableB = VariableIndex.Create("b", 0); undefinedVariable = VariableIndex.CreateUnknown(0); fieldA = ObjectIndex.Create(object1, "a"); fieldA2 = ObjectIndex.Create(object1, "a"); fieldB = ObjectIndex.Create(object1, "b"); fieldInDifferentTree = ObjectIndex.Create(object2, "a"); undefinedField = ObjectIndex.CreateUnknown(object1); indexA = variableA.CreateIndex("a"); indexA2 = variableA.CreateIndex("a"); indexB = variableA.CreateIndex("b"); indexInDifferentTree = variableB.CreateIndex("a"); undefinedIndex = variableA.CreateUnknownIndex(); doubleIndex = indexA.CreateIndex("1"); indexInField = fieldA.CreateIndex("1"); }
public void Try_LoadDefaultEcoSpace() { ObjectIndex.Clear(); var res = DomainSerializer <EcoSpaceDocument> .LoadFromJsonFile(@"c:\temp\ecospace\broobu.json"); WriteEcoSpace(res, true); }
/// <summary> /// Tests the and create implicit object. /// </summary> /// <param name="node">The node.</param> /// <param name="values">The values.</param> private void testAndCreateImplicitObject(MemoryCollectorNode node, HashSet <Value> values) { if (node.HasNewImplicitObject) { ObjectValue value = Snapshot.MemoryAssistant.CreateImplicitObject(); values.Add(value); IObjectValueContainerBuilder objectValues = Structure.GetObjects(node.TargetIndex).Builder(Structure); objectValues.Add(value); Structure.SetObjects(node.TargetIndex, objectValues.Build(Structure)); IObjectDescriptor oldDescriptor = Structure.GetDescriptor(value); IObjectDescriptorBuilder builder = oldDescriptor.Builder(Structure); foreach (var newChild in node.ImplicitObjectNode.UndefinedChildren) { string childName = newChild.Item1; MemoryCollectorNode childNode = newChild.Item2; MemoryIndex index = ObjectIndex.Create(value, childName); childNode.TargetIndex = index; builder.AddIndex(childName, index); } IObjectDescriptor newDescriptor = builder.Build(Structure); Structure.SetDescriptor(value, newDescriptor); enqueueChildNodes(node.ImplicitObjectNode); } }
public void Try_SaveDefaultEcoSpace() { ObjectIndex.Clear(); var res = EcoSpaceFactory.MasterEcoSpace; DomainSerializer <IEcoSpaceDocument> .SaveToJsonFile(@"c:\temp\ecospace\broobu.json", res); WriteEcoSpace(res, true); }
public void VisitObjectIndex(ObjectIndex index) { currentNode = rootNode.GetOrCreateObjectNode(collector, index.Object); processIndexName(index); processIndexPath(index); processAlias(index); }
public void Try_SaveDefaultEcoSpaceToBigD() { ObjectIndex.Clear(); var res = EcoSpaceFactory.MasterEcoSpace; res = Provider <EcoSpaceDocument> .Save(res); WriteEcoSpace(res); }
public bool Equals(Pickup other) { if (other == null) { return(false); } return(Type.Equals(other.Type) && HasBeenPickedUp.Equals(other.HasBeenPickedUp) && Value.Equals(other.Value) && ObjectIndex.Equals(other.ObjectIndex) && RegenerationTime.Equals(other.RegenerationTime) && ModelIndex.Equals(other.ModelIndex) && PoolIndex.Equals(other.PoolIndex) && Position.Equals(other.Position)); }
public async Task TestLoadFromGit() { ObjectIndex index = new ObjectIndex(); string[] urls = new string[] { "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/TrustFrameworkExtensions.xml", "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/TrustFrameworkBase.xml", "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/SignUpOrSignin.xml", "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/ChangeSignInName.xml" }; var policies = await PolicyLoader.LoadFromUrls(index, urls); Assert.IsTrue(policies.Count > 0); Assert.IsNotNull(index.GetPolicyReference("B2C_1A_ChangeSignInName")); Assert.IsNotNull(index.GetPolicyReference("B2C_1A_ChangeSignInName").RelyingParty); Assert.IsNotNull(index.GetPolicyReference("B2C_1A_ChangeSignInName").RelyingParty.DefaultUserJourney); }
/// <inheritdoc /> public void VisitObjectIndex(ObjectIndex index) { MemoryIndexTreeNode root = null; if (!objectTreeRoots.TryGetValue(index.Object, out root)) { root = new MemoryIndexTreeNode(); objectTreeRoots[index.Object] = root; } if (index.MemoryRoot.IsAny) { addToRoot(index, root.GetOrCreateAny()); } else { addToRoot(index, root.GetOrCreateChild(index.MemoryRoot.Name)); } }
/// <summary> /// Processes the object. /// </summary> /// <param name="objectValue">The object value.</param> /// <param name="node">The node.</param> private void processObject(ObjectValue objectValue, ContainerCollectorNode node) { if (node.HasUndefinedChildren) { IObjectDescriptor oldDescriptor = Structure.GetDescriptor(objectValue); IObjectDescriptorBuilder builder = oldDescriptor.Builder(Structure); foreach (var newChild in node.UndefinedChildren) { string childName = newChild.Item1; MemoryCollectorNode childNode = newChild.Item2; MemoryIndex index = ObjectIndex.Create(objectValue, childName); childNode.TargetIndex = index; builder.AddIndex(childName, index); } IObjectDescriptor newDescriptor = builder.Build(Structure); Structure.SetDescriptor(objectValue, newDescriptor); } enqueueChildNodes(node); }
/// <summary> /// Initializes a new instance of the <see cref="EcoSpaceDocument" /> class. /// </summary> public EcoSpaceDocument() { Icon = Resources.EcoSpace; ObjectIndex.Clear(); }
private void Awake() { instance = this; }
/// <inheritdoc /> public MemoryIndex createMemoryIndex(string name) { return(ObjectIndex.Create(objectDescriptor.ObjectValue, name)); }
public int Count(string objectFullName, ObjectFindOptions options, ObjectIndex[] indexes) { int returnValue = 0; if (null != _cache) { var parameters = new object[3 + ((null == indexes) ? 0 : indexes.Length)]; parameters[0] = objectFullName; parameters[1] = options; parameters[2] = "C"; if (null != indexes) { for (int i = 0; indexes.Length > i; i++) { parameters[i + 3] = indexes[i]; } } int[] cacheValue = _cache.Get(parameters); if (cacheValue != null && cacheValue.Length == 1) { returnValue = cacheValue[0]; } else { returnValue = _indexer.Count(objectFullName, options, indexes); _cache.Set(new int[] { returnValue }, parameters); } } else { returnValue = _indexer.Count(objectFullName, options, indexes); } return returnValue; }
public void IndexObject(string objectFullName, int objectId, ObjectIndex[] indexes) { _indexer.UpsertIndexValues(objectFullName, objectId, indexes); }
internal int[] Find(string objectFullName, ObjectFindOptions options, ObjectIndex[] indexes) { int[] returnValue = null; if (null != _cache) { var parameters = new object[3 + ((null == indexes) ? 0 : indexes.Length)]; parameters[0] = objectFullName; parameters[1] = options; parameters[2] = "F"; if (null != indexes) { for (int i = 0; indexes.Length > i; i++) { parameters[i + 3] = indexes[i]; } } returnValue = _cache.Get(parameters); if (null == returnValue) { var order = options.Order; if (null != order && null != order.Indexes) { if (!_ValidateIndexNames(null, order.Indexes)) { throw new ArgumentException("Invalid index name supplied in OrderOptions."); } } returnValue = _indexer.Find(objectFullName, options, indexes); _cache.Set(returnValue, parameters); } } else { returnValue = _indexer.Find(objectFullName, options, indexes); } return returnValue; }
/// <summary> /// Creates the merge operation for all fields of specified object. /// </summary> /// <param name="objectValue">The object value.</param> private void mergeObject(ObjectValue objectValue) { IObjectDescriptorBuilder builder = Factories.StructuralContainersFactories.ObjectDescriptorFactory.CreateObjectDescriptor(writeableStrucure, objectValue, null, ObjectIndex.CreateUnknown(objectValue)) .Builder(writeableStrucure); ContainerOperations collectVariables = new ContainerOperations(this, builder, builder.UnknownIndex, builder.UnknownIndex); foreach (Snapshot snapshot in sourceSnapshots) { IObjectDescriptor descriptor; if (snapshot.Structure.Readonly.TryGetDescriptor(objectValue, out descriptor)) { collectVariables.CollectIndexes(snapshot, builder.UnknownIndex, descriptor); builder.SetType(descriptor.Type); } else { collectVariables.SetUndefined(); } } collectVariables.MergeContainers(); writeableStrucure.SetDescriptor(objectValue, builder.Build(writeableStrucure)); }