bool ExperimentUnpackager::unpackageExperiment(Datum payload) { namespace bf = boost::filesystem; if(payload.getDataType() != M_DICTIONARY) { merror(M_NETWORK_MESSAGE_DOMAIN, "Invalid payload type for experiment package"); return false; } Datum experimentFilePackage = payload.getElement(M_PACKAGER_EXPERIMENT_STRING); if(experimentFilePackage.getNElements() != M_EXPERIMENT_PACKAGE_NUMBER_ELEMENTS_PER_UNIT || experimentFilePackage.getDataType() != M_DICTIONARY) return false; Datum experimentFileName = experimentFilePackage.getElement(M_PACKAGER_FILENAME_STRING); if(experimentFileName.getDataType() != M_STRING || experimentFileName.getString().empty()) return false; bf::path experimentName(experimentFileName.getString()); loadedExperimentFilename = prependExperimentInstallPath(removeFileExtension(experimentName.string()), experimentName.string()); bf::path experimentPath = loadedExperimentFilename.branch_path(); createExperimentInstallDirectoryStructure(experimentName.string()); // create the XML file Datum experimentFileBuffer = experimentFilePackage.getElement(M_PACKAGER_CONTENTS_STRING); if(experimentFileBuffer.getDataType() != M_STRING || experimentFileBuffer.getString().empty()) return false; if(!(createFile(Datum(loadedExperimentFilename.string().c_str()), experimentFileBuffer))) { // failed to create experiment file merror(M_FILE_MESSAGE_DOMAIN, "Failed to create server side experiment file %s", loadedExperimentFilename.string().c_str()); return false; } // create all of the other media files Datum mediaFileList = payload.getElement(M_PACKAGER_MEDIA_BUFFERS_STRING); if(mediaFileList.isList()) { for(int i=0; i<mediaFileList.getNElements(); ++i) { Datum mediaFilePackage = mediaFileList.getElement(i); if(mediaFilePackage.getDataType() != M_DICTIONARY | mediaFilePackage.getNElements() != 2) { merror(M_FILE_MESSAGE_DOMAIN, "incorrectly packaged media files"); return false; } Datum mediaFileName = mediaFilePackage.getElement(M_PACKAGER_FILENAME_STRING); Datum mediaFileBuffer = mediaFilePackage.getElement(M_PACKAGER_CONTENTS_STRING); if(mediaFileName.getDataType() != M_STRING || mediaFileName.getString().empty() || mediaFileBuffer.getDataType() != M_STRING) return false; std::string filename(mediaFileName.getString()); std::string filenameWPath = experimentPath.string() + "/" + filename; if(!(createFile(Datum(filenameWPath.c_str()), mediaFileBuffer))) { // failed to create experiment file merror(M_FILE_MESSAGE_DOMAIN, "Failed to create server side experiment file %s", filenameWPath.c_str()); return false; } } } expandRangeReplicatorItems(loadedExperimentFilename); modifyExperimentMediaPaths(loadedExperimentFilename); return true; }
void SetLastActiveConfig(const char *filename) { extractFileName(filename, last_active_config); removeFileExtension(last_active_config); }
/*! * \fn void exportCsu() * Export a csu file into a csv or pdf file */ void exportCsu() { csuStruct *ptr_csu_struct; char filename[SIZE_MAX_FILE_NAME]; char export_filename[SIZE_MAX_FILE_NAME]; FileType type; clearScreen(); // Get the filename menuFileName(filename); #ifndef PORTABLE if(readSystemPath(filename)==false) return; #endif // PORTABLE ptr_csu_struct=readCsuFile(filename); // Read the file if (ptr_csu_struct == NULL) { systemPause(); return; } // Prepare the exportation strcpy(export_filename,filename); removeFileExtension(export_filename); type = menuChooseExportFileType(); if (type == pdf_file) { addFilePdfExtension(export_filename); if (exportToPdf(ptr_csu_struct,export_filename)) printf(_("The file was well export to %s\n"),export_filename); else printf(_("There is an error when exporting the file %s into a pdf file.\n"),filename); } else if (type == gnuplot_file) { if (exportToGnuplotFile(ptr_csu_struct,export_filename)) printf(_("The file was well export to %s\n"),export_filename); else printf(_("There is an error when exporting the file %s into gnuplot files.\n"),filename); } else if (type == csv_file) { addFileCsvExtension(export_filename); if (exportToCsv(ptr_csu_struct,export_filename)) printf(_("The file was well export to %s\n"),export_filename); else printf(_("There is an error when exporting the file %s into a csv file.\n"),filename); } else { addFileExtension(export_filename,"m"); if (exportToM(ptr_csu_struct,export_filename)) printf(_("The file was well export to %s\n"),export_filename); else printf(_("There is an error when exporting the file %s into a m file.\n"),filename); } closeCsuStruct(ptr_csu_struct); systemPause(); }