public void SolutionsMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\SolutionsMessage.xml"); var serializer = new ComputationSerializer <SolutionsMessage>(); Solution s = new Solution() { TaskId = 20, TaskIdSpecified = true, TimeoutOccured = true, Type = SolutionType.Final, ComputationsTime = 10, Data = new byte[] { 0, 0, 10 } }; var solutionsMessage = new SolutionsMessage() { ProblemType = "TSP", Id = 1, CommonData = new byte[] { 0, 0, 25 }, Solutions = new Solution[] { s } }; var result = serializer.Serialize(solutionsMessage); Assert.AreEqual(result, testData); }
public string SendSolveRequest(SolveRequestMessage solveRequestMessage) { try { clientSocket = communicationModule.SetupClient(); communicationModule.Connect(clientSocket); var serializer = new ComputationSerializer <SolveRequestMessage>(); var message = serializer.Serialize(solveRequestMessage); communicationModule.SendData(message, clientSocket); var response = communicationModule.ReceiveData(clientSocket); communicationModule.CloseSocket(clientSocket); return(response); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); //TODO logowanie } return(String.Empty); }
public void SolveRequestResponseMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\SolveRequestResponseMessage.xml"); var serializer = new ComputationSerializer <SolveRequestResponseMessage>(); var solveRequestResponseMessage = new SolveRequestResponseMessage() { Id = 1 }; var result = serializer.Serialize(solveRequestResponseMessage); Assert.AreEqual(result, testData); }
private void ButtonSendSolveRequest_Click(object sender, RoutedEventArgs e) { var message = this.computationalClient.SendSolveRequest(this.solveRequestMessage); this.potwierdzenie.Text += "\nReceived form CC" + message; var serializer = new ComputationSerializer <SolveRequestResponseMessage>(); SolveRequestResponseMessage srrm = serializer.Deserialize(message); this.problemId = srrm.Id; this.potwierdzenie.Text += "\n\nAssigned problem ID = " + this.problemId; }
public void RegisterResponseMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\RegisterResponseMessage.xml"); var serializer = new ComputationSerializer <RegisterResponseMessage>(); var registerResponseMessage = new RegisterResponseMessage() { Id = 1, Timeout = "01:00:00", }; var result = serializer.Serialize(registerResponseMessage); Assert.AreEqual(result, testData); }
public void RegisterMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\RegisterMessage.xml"); var serializer = new ComputationSerializer <RegisterMessage>(); var registerMessage = new RegisterMessage() { Type = RegisterType.ComputationalNode, SolvableProblems = new string[] { "ab", "ba" }, ParallelThreads = 15 }; var result = serializer.Serialize(registerMessage); Assert.AreEqual(result, testData); }
public void SolveRequestMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\SolveRequestMessage.xml"); var serializer = new ComputationSerializer <SolveRequestMessage>(); var solveRequestMessage = new SolveRequestMessage() { Data = new byte[] { 0, 0, 25 }, ProblemType = "TSP", SolvingTimeout = 15 }; var result = serializer.Serialize(solveRequestMessage); Assert.AreEqual(result, testData); }
public void DivideProblemMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\DivideProblemMessage.xml"); var serializer = new ComputationSerializer <DivideProblemMessage>(); var divideProblemMessage = new DivideProblemMessage() { ProblemType = "TSP", Id = 1, Data = new byte[] { 0, 0, 25 }, ComputationalNodes = 5 }; var result = serializer.Serialize(divideProblemMessage); Assert.AreEqual(result, testData); }
public void StatusMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\StatusMessage.xml"); var serializer = new ComputationSerializer <StatusMessage>(); StatusThread st = new StatusThread() { State = StatusThreadState.Idle, HowLong = 1, ProblemInstanceId = 1, TaskId = 5, TaskIdSpecified = true, ProblemType = "TSP" }; var statusMessage = new StatusMessage() { Id = 1, Threads = new StatusThread[] { st } }; var result = serializer.Serialize(statusMessage); Assert.AreEqual(result, testData); }
public void PartialProblemsMessageSerialization() { string testData = System.IO.File.ReadAllText(@"XMLTestData\PartialProblemsMessage.xml"); var serializer = new ComputationSerializer <PartialProblemsMessage>(); SolvePartialProblemsPartialProblem pp = new SolvePartialProblemsPartialProblem() { TaskId = 20, Data = new byte[] { 0, 0, 10 } }; var partialProblemsMessage = new PartialProblemsMessage() { ProblemType = "TSP", Id = 1, CommonData = new byte[] { 0, 0, 25 }, SolvingTimeout = 50, SolvingTimeoutSpecified = true, PartialProblems = new SolvePartialProblemsPartialProblem[] { pp } }; var result = serializer.Serialize(partialProblemsMessage); Assert.AreEqual(result, testData); }
private void ThreadBackgroundWork() { SolutionRequestMessage srm = new SolutionRequestMessage() { Id = this.problemId }; SolutionsMessage sm = null; String message = String.Empty; double len = 0; string ttt; while (sm == null) { //this.potwierdzenie.Text += "\n\nAsking for Final solution... "; string str = "\nAsking for Final solution... "; this.potwierdzenie.Dispatcher.Invoke(new UpdateTextCallback(this.UpdateText), new object[] { str }); message = this.computationalClient.SendSolutionRequest(srm); if (message != String.Empty) { switch (bn.GetMessageName(message)) { case "Solutions": var serializer = new ComputationSerializer <SolutionsMessage>(); sm = serializer.Deserialize(message); foreach (var solution in sm.Solutions) { if (solution.Type == SolutionType.Final) { //str = "\n\nFinal solution: " + System.Text.Encoding.UTF8.GetString(solution.Data); //len = DynamicVehicleRoutingProblem.DVRPPartialSolution.Parse2FinalSolLenght(System.Text.Encoding.UTF8.GetString(solution.Data)); DVRP.Solutions.FinalSolution finalSolution = (DVRP.Solutions.Solution.ToSolution(solution.Data)).ToFinalSolution(); ttt = finalSolution.ToString(); this.potwierdzenie.Dispatcher.Invoke(new UpdateTextCallback(this.UpdateText), new object[] { "\n\n Path lenght: " + ttt }); this.potwierdzenie.Dispatcher.Invoke(new UpdateTextCallback(this.UpdateText), new object[] { "\n SOLVED!!! \n SOLVED!!!" }); break; } } sm = null; break; case "Other...?": break; default: break; } if (len != 0) { break; } } else { //str = "\n\n Message empty"; //this.potwierdzenie.Dispatcher.Invoke(new UpdateTextCallback(this.UpdateText), new object[] { str }); } str = " Computing..."; this.potwierdzenie.Dispatcher.Invoke(new UpdateTextCallback(this.UpdateText), new object[] { str }); Thread.Sleep(10000); } }