public string sendOperatorInfoToPCS(Dictionary <string, string> operatorDict) { Operator _operator = new Operator(); _operator.type = operatorDict["TYPE"]; _operator.id = operatorDict["OPERATOR_ID"]; _operator.input = operatorDict["INPUT"]; _operator.repFact = Int32.Parse(operatorDict["REP_FACT"]); _operator.routing = operatorDict["ROUTING"]; _operator.loggingLevel = operatorDict["LOGGING_LEVEL"]; _operator.semantics = operatorDict["SEMANTICS"]; if (operatorDict["FIELD_NUMBER"] != "") { _operator.fieldNumber = Int32.Parse(operatorDict["FIELD_NUMBER"]); } _operator.condition = operatorDict["CONDITION"]; _operator.conditionValue = operatorDict["CONDITION_VALUE"]; _operator.status = "Stand_by"; _operator.dllCustom = operatorDict["DLL"]; _operator.classCustom = operatorDict["CLASS"]; _operator.methodCustom = operatorDict["METHOD"]; int operatorNumber = 0; foreach (string address in operatorDict["ADDRESSES"].Split('$')) { _operator.myAddress = address; _operator.repID = operatorNumber; Operator finalOperator = new Operator(); finalOperator.duplicate(_operator); PCS.operatorsDict.Add(finalOperator.id + "-" + finalOperator.repID, finalOperator); operatorNumber++; PCS.setMyPreviousAddresses(finalOperator.id, finalOperator.repID); //PCS.setMyReplicasAddresses(finalOperator.id, finalOperator.repID); } foreach (string key in PCS.operatorsDict.Keys) { Operator op = PCS.operatorsDict[key]; op.print(); Console.WriteLine("\r\n"); } PCS.startOperator(_operator.id); return(_operator.id + " recebido pelo PCS");; }
public static string startOperator(string operatorID) { foreach (string key in PCS.operatorsDict.Keys) { if (key.Contains(operatorID)) { operatorsDict[key].myReplicaAddresses = setMyReplicasAddresses(operatorID, operatorsDict[key].repID); string operatorPath = BuildPaths.getExecPath("\\Operator\\bin\\Debug\\Operator.exe"); string operatorArgs = PCS.getAllFieldsOperator(key); ProcessStartInfo operatorStartInfo = new ProcessStartInfo(); operatorStartInfo.FileName = operatorPath; operatorStartInfo.Arguments = operatorArgs; Process operatorProcess = Process.Start(operatorStartInfo); Console.WriteLine("Comecei operador com id: " + operatorID + " e repID: " + PCS.operatorsDict[key].repID); } } return("Operator " + operatorID + " launched"); }
public static void Main(string[] args) { Console.Clear(); Console.WriteLine(); Console.WriteLine("PCS"); Console.WriteLine("listening on tcp://" + PCS.GetLocalIPAddress() + ":10000/pcs"); TcpChannel channel = new TcpChannel(10000); ChannelServices.RegisterChannel(channel, false); PCS pcs = new PCS(); RemotingServices.Marshal(pcs, "pcs", typeof(IPCS)); // Dont close console Console.ReadLine(); // Close TcpChannel channel.StopListening(null); RemotingServices.Disconnect(pcs); ChannelServices.UnregisterChannel(channel); channel = null; }