示例#1
0
文件: PStateImpl.cs 项目: sizzles/P
        public PrtInterfaceValue CreateInterfaceOrMachine(string currMachRenameName, string interfaceOrMachineName, PrtValue payload)
        {
            //add visible action to trace
            if (visibleInterfaces.Contains(interfaceOrMachineName))
            {
                currentVisibleTrace.AddAction(interfaceOrMachineName, payload.ToString());
            }

            var renamedImpMachine = linkMap[currMachRenameName][interfaceOrMachineName];
            var impMachineName    = renameMap[renamedImpMachine];
            var machine           = createMachineMap[impMachineName](this, payload);

            machine.isSafe      = isSafeMap[renamedImpMachine];
            machine.renamedName = renamedImpMachine;
            AddImplMachineToStateImpl(machine);

            CreateMachineCallback?.Invoke(machine);

            if (interfaceMap.ContainsKey(interfaceOrMachineName))
            {
                return(new PrtInterfaceValue(machine, interfaceMap[interfaceOrMachineName]));
            }
            else
            {
                return(new PrtInterfaceValue(machine, machine.self.permissions));
            }
        }
示例#2
0
文件: PStateImpl.cs 项目: cristicmf/P
        public PrtInterfaceValue CreateInterface(PrtImplMachine currMach, string interfaceOrMachineName, PrtValue payload)
        {
            //add visible action to trace
            if (visibleInterfaces.Contains(interfaceOrMachineName))
            {
                currentVisibleTrace.AddAction(interfaceOrMachineName, payload.ToString());
            }

            var renamedImpMachine = linkMap[currMach.renamedName][interfaceOrMachineName];
            var impMachineName    = machineDefMap[renamedImpMachine];
            var machine           = createMachineMap[impMachineName](this, payload);

            machine.isSafe      = isSafeMap[renamedImpMachine];
            machine.renamedName = renamedImpMachine;
            AddImplMachineToStateImpl(machine);

            CreateMachineCallback?.Invoke(machine);

            //TraceLine("<CreateLog> Machine {0}-{1} was created by machine {2}-{3}", currMach.renamedName, currMach.instanceNumber, machine.renamedName, machine.instanceNumber);
            TraceLine("<CreateLog> Machine {0}-{1} was created by machine {2}-{3}", machine.renamedName, machine.instanceNumber, currMach.renamedName, currMach.instanceNumber);

            if (interfaceMap.ContainsKey(interfaceOrMachineName))
            {
                return(new PrtInterfaceValue(machine, interfaceMap[interfaceOrMachineName]));
            }
            else
            {
                return(new PrtInterfaceValue(machine, machine.self.permissions));
            }
        }