UsedBy() public method

Indicates that this resource is used by the given processes
public UsedBy ( ) : void
return void
Ejemplo n.º 1
0
        public void BranchingResourceResolution()
        {
            DependencyGraph g = new DependencyGraph();

            OrderedProcess a = new OrderedProcess(g, "A");
            OrderedProcess b1 = new OrderedProcess(g, "B1");
            OrderedProcess b2 = new OrderedProcess(g, "B2");
            OrderedProcess c1 = new OrderedProcess(g, "C1");
            OrderedProcess c2 = new OrderedProcess(g, "C2");
            OrderedProcess c3 = new OrderedProcess(g, "C3");
            OrderedProcess c4 = new OrderedProcess(g, "C4");
            OrderedProcess d = new OrderedProcess(g, "D");

            a.Before(b1, b2).Before(c1, c2, c3, c4).Before(d);

            Resource resource = new Resource(g, "Resource");
            resource.UsedBy(c1, c3);

            IEnumerable<IEnumerable<OrderedProcess>> s = g.CalculateSort();

            //check that A comes first
            Assert.AreEqual(1, s.Skip(0).First().Count());
            Assert.AreEqual(a, s.Skip(0).First().First());

            //check that D comes last
            Assert.AreEqual(1, s.Skip(4).First().Count());
            Assert.AreEqual(d, s.Skip(4).First().First());

            //check that no set contains both c1 and c3
            Assert.AreEqual(0, s.Where(set => set.Contains(c1) && set.Contains(c3)).Count());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Indicates that this process requires the specified resource.
        /// </summary>
        /// <param name="resource">The resource.</param>
        /// <returns>returns this process</returns>
        public void Requires(Resource resource)
        {
            DependencyGraph.CheckGraph(resource, this);

            if (_resources.Add(resource))
            {
                resource.UsedBy(this);
            }
        }
        /// <summary>
        /// Indicates that this process requires the specified resource.
        /// </summary>
        /// <param name="resource">The resource.</param>
        /// <returns>returns this process</returns>
        public void Requires(Resource resource)
        {
            DependencyGraph.CheckGraph(resource, this);

            if (resources.Add(resource))
                resource.UsedBy(this);
        }