public override CTAPData ImportData(string path) { var parser = new ElloumiCTAPParser(); parser.Parse(path); var instance = Load(parser); instance.Name = Path.GetFileName(path); instance.Description = "Loaded from file \"" + path + "\" on " + DateTime.Now.ToString(); return(instance); }
private CTAPData Load(ElloumiCTAPParser parser) { var instance = new CTAPData(); instance.Processors = parser.Processors; instance.Tasks = parser.Tasks; instance.ExecutionCosts = parser.ExecutionCosts; instance.CommunicationCosts = parser.CommunicationCosts; instance.MemoryRequirements = parser.MemoryRequirements; instance.MemoryCapacities = parser.MemoryCapacities; return(instance); }
public override CTAPData LoadData(IDataDescriptor id) { var descriptor = (ElloumiCTAPDataDescriptor)id; var instanceArchiveName = GetResourceName(FileName + @"\.dat\.zip"); using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) { var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier); using (var stream = entry.Open()) { var parser = new ElloumiCTAPParser(); parser.Parse(stream); var instance = Load(parser); instance.Name = id.Name; instance.Description = id.Description; if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) { var solutionsArchiveName = GetResourceName(FileName + @"\.sol\.zip"); using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) { entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier); using (var solStream = entry.Open()) { ElloumiCTAPSolutionParser slnParser = new ElloumiCTAPSolutionParser(); slnParser.Parse(solStream, instance.MemoryRequirements.Length); if (slnParser.Error != null) { throw slnParser.Error; } instance.BestKnownAssignment = slnParser.Assignment; instance.BestKnownQuality = slnParser.Quality; } } } return(instance); } } }