public override int logic(CertifierOrchestrationElement element) { int max = -1, ret = CertifierConstants.NORMAL_SIGNAL; if (typeof(RepeatOper).IsInstanceOfType(element.getElement())) { RepeatOper iterate_oper = (RepeatOper)element.getElement(); // every children must run MAX max = iterate_oper.getMax(); } children: for (int i = 0; i < max; i++) { // inside children for (int j = element.getChildren().Count - 1; j >= 0; j--) { CertifierOrchestrationElement child = element.getChildren()[j]; /*if(child.getOperation().Equals(CertifierOrchestrationOperation.BREAKOPER)){ * break children; * }else if(child.getOperation().Equals(CertifierOrchestrationOperation.CONTINUEOPER)){ * continue children; * }*/ ret = child.run(); if (ret == CertifierConstants.BREAK_SIGNAL) { CertifierConsoleLogger.write("BREAK Operation was found. Breaking inner iterate."); goto _break; } if (ret == CertifierConstants.CONTINUE_SIGNAL) { CertifierConsoleLogger.write("CONTINUE Operation was found. Going back to the beginning of iterate."); goto children; } /*if( ret == CertifierConstants.RETURN_CERTIFIED_SIGNAL || ret == CertifierConstants.RETURN_NOT_CERTIFIED_SIGNAL){ * CertifierConsoleLogger.write("RETURN Operation was found. Stopping certification process and returning."); * * return ret; * * * }*/ } } _break : return(CertifierConstants.NORMAL_SIGNAL); }
public override int logic(CertifierOrchestrationElement element) { ParallelJob[] threads = new ParallelJob[element.getChildren().Count]; //creating threads for (int i = element.getChildren().Count - 1, j = 0; i >= 0; i--, j++) { CertifierOrchestrationElement child = element.getChildren()[i]; ParallelJob pj = new ParallelJob(child); threads[j] = pj; } //starting threads CertifierConsoleLogger.write("STARTING PARALLEL TASK"); foreach (ParallelJob job in threads) { job.run(); } //join threads foreach (ParallelJob job in threads) { if (!hasBreakOrContinue) { job._thread.Join(); ret = job.ret; Console.WriteLine(" parallel job. return of job " + ret); if (ret > CertifierConstants.NORMAL_SIGNAL) //== CertifierConstants.BREAK_SIGNAL || ret == CertifierConstants.CONTINUE_SIGNAL || ret == CertifierConstants.RETURN_CERTIFIED||ret == CertifierConstants.RETURN_NOT_CERTIFIED ){ { hasBreakOrContinue = true; //break; } } else { CertifierConsoleLogger.write("Signal found in parallel tasks: " + ret + ". Interrupting all the remaining threads."); job._thread.Interrupt(); } } CertifierConsoleLogger.write("ENDED PARALLEL TASK"); return(ret); }
public override int logic(CertifierOrchestrationElement element) { String handle_id = null; String port_id = null; String action_id = null; String comp_id = null; //action_id or component_id String action_oper = null; if (typeof(XMLCertifierPrimOper).IsInstanceOfType(element.getElement())) { XMLCertifierPrimOper start_oper = (XMLCertifierPrimOper)element.getElement(); handle_id = start_oper.handle_id; } for (int i = element.getChildren().Count - 1; i >= 0; i--) { CertifierOrchestrationElement child = element.getChildren()[i]; if (typeof(XMLCertifierAction).IsInstanceOfType(child.getElement())) { XMLCertifierAction certifier_action = (XMLCertifierAction)child.getElement(); comp_id = certifier_action.comp_id; port_id = certifier_action.port_id; action_id = certifier_action.action_id; //action_oper = certifier_action..value(); action_oper = certifier_action.action.ToString(); } } if (action_oper.Equals("instantiate")) { this.instantiateOper(comp_id, handle_id); } else if (action_oper.Equals("compute")) { this.computeOper(comp_id, port_id, action_id, handle_id); } /*else if(action_oper.Equals("compute")){ * this.computeOper(subject_id); * }*/ return(CertifierConstants.NORMAL_SIGNAL); }
public override int logic(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("STARTING SEQUENCE TASKS"); for (int i = element.getChildren().Count - 1; i >= 0; i--) { CertifierOrchestrationElement child = element.getChildren()[i]; ret = child.run(); if (ret > CertifierConstants.NORMAL_SIGNAL) /*=CertifierConstants.BREAK_SIGNAL || * ret==CertifierConstants.CONTINUE_SIGNAL ||ret==CertifierConstants.RETURN_CERTIFIED ||ret==CertifierConstants.RETURN_NOT_CERTIFIED){ */ { CertifierConsoleLogger.write("Signal found: " + ret + ". Stopping sequence execution."); break; } } CertifierConsoleLogger.write("ENDED SEQUENCE TASKS"); return(ret); }
public override int logic(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("STARTING SELECT TASK"); selectoperComplexType select_oper = (selectoperComplexType)element.getElement(); String chosen = select_oper.chosen; for (int i = element.getChildren().Count - 1; i >= 0; i--) { CertifierOrchestrationElement select = element.getChildren()[i]; selectoperComplexTypeChoice choice_oper = (selectoperComplexTypeChoice)select.getElement(); String port_id = choice_oper.port_id; String action_id = choice_oper.action_id; //navegar no select if (string.Equals(action_id, chosen, StringComparison.OrdinalIgnoreCase)) { foreach (CertifierOrchestrationElement child in select.getChildren()) { ret = child.run(); if (ret > CertifierConstants.NORMAL_SIGNAL) /*=CertifierConstants.BREAK_SIGNAL || * ret==CertifierConstants.CONTINUE_SIGNAL ||ret==CertifierConstants.RETURN_CERTIFIED ||ret==CertifierConstants.RETURN_NOT_CERTIFIED){ */ { CertifierConsoleLogger.write("Signal found: " + ret + ". Stopping sequence execution."); break; } } } } CertifierConsoleLogger.write("ENDED SELECT TASK"); return(ret); }
public int visit(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("Enter visit for " + element.getOperationStr()); CertifierConsoleLogger.write("operation " + element.getOperation()); //this.operation = (CertifierOrchestrationOperation)Enum.Parse(typeof(CertifierOrchestrationOperation), oper); //first case, the workflow element. Justo go on... if (element.getOperationStr() == "orchestration") { CertifierConsoleLogger.write("operation entrei " + element.getOperation()); foreach (CertifierOrchestrationElement child in element.getChildren()) { /* if(child.run()==CertifierConstants.BREAK_SIGNAL) * hasBreak=true;*/ ret = child.run(); } } else { //calling logic for this type of operation via reflection String logicFullClassName = this.logicPkg + ".Logic" + element.getOperationStr(); Console.WriteLine("logicfullclassname " + logicFullClassName); //Type c = Type.GetType(logicFullClassName); /*Class c = * Class.forName(logicFullClassName);*/ var c = Activator.CreateInstance(null, logicFullClassName); AbstractCertifierElementLogic logicClass = (AbstractCertifierElementLogic)c.Unwrap(); //AbstractCertifierElementLogic logicClass = (AbstractCertifierElementLogic)Activator.CreateInstance(null, logicFullClassName); ret = logicClass.logic(element); CertifierConsoleLogger.write("Element " + element.getOperationStr() + " returned: " + ret); } //System.out.println("certif vis impl" + hasBreak); return(ret); }
public override int logic(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("STARTING SWITCH TASK"); //ChoiceOperComplexType choice_oper = (ChoiceOperComplexType)element.getElement(); for (int i = element.getChildren().Count - 1; i >= 0; i--) { CertifierOrchestrationElement select = element.getChildren()[i]; //System.out.println("Size " + element.getChildren().Count); switchoperComplexTypeChoice choice_oper = (switchoperComplexTypeChoice)select.getElement(); String condition = choice_oper.condition; CertifierConsoleLogger.write("Condition: " + condition); //navegar no select //Integer x = 0; //String teste = "x == 0"; //Certifier.variablesTryAdd(x,x); // System.out.println(x.toString()); condition.Replace("<", "<"); condition.Replace(">", ">"); condition.Replace(""", "\""); condition.Replace("&", "&"); condition.Replace("'", "\'"); /*if (Certifier.formal_properties.get ("mProjExecMPI1", "no deadlock")) { * * Console.WriteLine ("no deadlock true"); * }*/ //reg.Add.RegisterType ("C4Impl", C4Impl); var p = new CompiledExpression(condition) { TypeRegistry = Certifier.variables }; //p.Parse(); p.Compile(); //Console.WriteLine("Result: {0}", p.Eval()); CertifierConsoleLogger.write("Condition evaluated: " + p.Eval()); //System.out.println(cond.booleanValue()); //System.out.println("Proved vc percent: " + Certifier.provedVCPercent); if ((bool)p.Eval()) { //if(true)){ CertifierOrchestrationElement child = select.getChildren()[0]; ret = child.run(); //System.out.println("select" + ret); break; } } CertifierConsoleLogger.write("ENDED SWITCH TASK"); return(ret); }