private void PublishFiles(List <Uri> resourceFileUris) { foreach (Uri resourceFilePath in resourceFileUris) { string newPackagePath = GetNewPackagePath(resourceFilePath); if (FilesBeingProcessed.ContainsKey(newPackagePath)) { continue; } string absolutePath = Path.Combine(assetRootFolder, resourceFilePath.ToString().Substring("package://".Length)); if (IsColladaFile(resourceFilePath)) { List <Uri> colladaTextureFiles = ReadDaeTextureUris(resourceFilePath, XDocument.Load(absolutePath)); PublishFiles(colladaTextureFiles); } try { byte[] fileContents = File.ReadAllBytes(absolutePath); SendFileToRos(newPackagePath, fileContents); } catch (IOException) { } } }
private List <ServiceReceiver <file_server.GetBinaryFileRequest, file_server.GetBinaryFileResponse> > RequestResourceFiles(List <Uri> resourceFileUris) { var serviceReceivers = new List <ServiceReceiver <file_server.GetBinaryFileRequest, file_server.GetBinaryFileResponse> >(); foreach (Uri resourceFilePath in resourceFileUris) { if (!FilesBeingProcessed.ContainsKey(resourceFilePath.ToString())) { FilesBeingProcessed.Add(resourceFilePath.ToString(), false); serviceReceivers.Add( new ServiceReceiver <file_server.GetBinaryFileRequest, file_server.GetBinaryFileResponse>( RosSocket, "/file_server/get_file", new file_server.GetBinaryFileRequest(resourceFilePath.ToString()), GetLocalFilename(resourceFilePath))); } } return(serviceReceivers); }