示例#1
0
        private void extendInput(ProgramPointBase point)
        {
            var inputs = GetInputPoints(point);

            if (!inputs.Any())
            {
                return;
            }

            point.SetMode(SnapshotMode.InfoLevel);

            var inSet = GetInSet(point);

            switch (Direction)
            {
            case AnalysisDirection.Forward:
                forwardExtend(point, inputs, inSet);
                break;

            case AnalysisDirection.Backward:
                standardExtend(inputs, inSet);
                break;

            default:
                throwUnknownDirection();
                break;
            }
        }
示例#2
0
        private void commit(ProgramPointBase point)
        {
            point.SetMode(SnapshotMode.InfoLevel);

            var outSet = GetOutSet(point);

            outSet.CommitTransaction();
        }
示例#3
0
        private void prepare(ProgramPointBase point)
        {
            point.SetMode(SnapshotMode.InfoLevel);

            var outSet = GetOutSet(point);
            var inSet  = GetInSet(point);

            outSet.StartTransaction();
            //default extending
            outSet.Extend(inSet);
        }
示例#4
0
 internal void SetServices(ProgramPointBase point)
 {
     point.SetServices(this);
     point.SetMode(SnapshotMode.MemoryLevel);
 }