EmbASP-CSharp
SPDDesktopService.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 
6 {
7  using InputProgram = it.unical.mat.embasp.@base.InputProgram;
8  using OptionDescriptor = it.unical.mat.embasp.@base.OptionDescriptor;
9  using Output = it.unical.mat.embasp.@base.Output;
10  using DesktopService = it.unical.mat.embasp.platforms.desktop.DesktopService;
11 
12  public class SPDDesktopService : DesktopService
13  {
14  private readonly SPDUtility spdu;
15 
16  public SPDDesktopService() : base("") => spdu = new SPDUtilityAnonymousInnerClass(this);
17 
18  private class SPDUtilityAnonymousInnerClass : SPDUtility
19  {
20  private readonly SPDDesktopService outerInstance;
21 
22  public SPDUtilityAnonymousInnerClass(SPDDesktopService outerInstance) => this.outerInstance = outerInstance;
23 
24  protected internal override string ReadFile(string s)
25  {
26  string everything = "";
27  System.IO.StreamReader br = null;
28  try
29  {
30  br = new System.IO.StreamReader(s);
31  StringBuilder sb = new StringBuilder();
32  string line = br.ReadLine();
33 
34  while (!(line is null))
35  {
36  sb.Append(line);
37  sb.Append(Environment.NewLine);
38  line = br.ReadLine();
39  }
40  everything = sb.ToString();
41  }
42  finally
43  {
44  if (br != null)
45  br.Close();
46  }
47  return everything;
48  }
49  }
50 
51  protected internal override Output GetOutput(string output, string error) => new SPDPlan(output, error);
52 
53  public override Output StartSync(IList<InputProgram> programs, IList<OptionDescriptor> options)
54  {
55  if (programs.Count == 0)
56  return GetOutput("", "PDDLInputProgram not defined");
57 
58  try
59  {
60  return GetOutput(spdu.PostJsonToURL(spdu.CreateJson(programs).ToString()), "");
61  }
62  catch (Exception e)
63  {
64  return GetOutput("", "Error : " + e.Message);
65  }
66  }
67  }
68 }
it.unical.mat.embasp.platforms.desktop.DesktopService
Definition: DesktopService.cs:17
it.unical.mat.embasp.platforms.desktop
Definition: DesktopHandler.cs:3
base
Definition: Callback.cs:1
it.unical.mat.embasp.specializations.solver_planning_domains.desktop.SPDDesktopService
Definition: SPDDesktopService.cs:12
it.unical.mat.embasp
Definition: AnswerSet.cs:5
it.unical
Definition: AnswerSet.cs:5
it.unical.mat.embasp.specializations.solver_planning_domains.desktop
Definition: SPDDesktopService.cs:5
it.unical.mat.embasp.specializations.solver_planning_domains.SPDUtility
Definition: SPDUtility.cs:14
it
Definition: AnswerSet.cs:5
base.OptionDescriptor
Definition: OptionDescriptor.cs:3
base.Output
Definition: Output.cs:5
it.unical.mat.embasp.platforms
Definition: DesktopHandler.cs:3
base.InputProgram
Definition: InputProgram.cs:7
it.unical.mat.embasp.specializations.solver_planning_domains.SPDPlan
Definition: SPDPlan.cs:7
it.unical.mat
Definition: AnswerSet.cs:5