int main (int /*argc*/, char */*argv*/ []) { // we should init capd logger to debug ConfigFileReader // INIT_CAPD_LOGGER; // We construct ini reader capd::auxil::ConfigFileReader reader; // We preapare stream of data (a file, memory etc) and parse it using reader std::istringstream file(fileContents); file >> reader; std::string command; reader.getValue("command", command); std::string sourceDir, destinationDir; reader.getValue("source.directory", sourceDir); reader.getValue("destination.directory", destinationDir); int numberOfFiles = reader.get<int>("source.size", 10); // or //reader.getValue("source.size",numberOfFiles); reader.getValue("source.number of files", numberOfFiles); // it will not change the value because this key does not exist std::vector<std::string> fileNames(numberOfFiles); reader.getValues("source.files", fileNames.begin(), fileNames.end()); std::cout << command << " from '" << sourceDir << "' to '" << destinationDir << "'\n files :"; for(int i=0; i<numberOfFiles; ++i) std::cout << "\n - " << fileNames[i]; std::cout << "\n--\n"; return 0; } /* main */
void HeatMapSaver::saveHeatMaps(const std::vector<Array<float>>& heatMaps, const std::string& fileName) const { try { // Record cv::mat if (!heatMaps.empty()) { // File path (no extension) const auto fileNameNoExtension = getNextFileName(fileName) + "_heatmaps"; // Get names for each heatMap std::vector<std::string> fileNames(heatMaps.size()); for (auto i = 0; i < fileNames.size(); i++) fileNames[i] = {fileNameNoExtension + (i != 0 ? "_" + std::to_string(i) : "") + "." + mImageFormat}; // heatMaps -> cvOutputDatas std::vector<cv::Mat> cvOutputDatas(heatMaps.size()); for (auto i = 0; i < cvOutputDatas.size(); i++) unrollArrayToUCharCvMat(cvOutputDatas[i], heatMaps[i]); // Save each heatMap for (auto i = 0; i < cvOutputDatas.size(); i++) saveImage(cvOutputDatas[i], fileNames[i]); } } catch (const std::exception& e) { error(e.what(), __LINE__, __FUNCTION__, __FILE__); } }
QList<HistoryItem> HistoryEngine::loadHistoryMessage(const TreeModelItem &item, int n, const QDateTime &date_last) { int num=0; QVector<HistoryItem> vector(n); QDir dir = accountDir(item); QStringList files = fileNames(item); if (files.size()<1) return QList<HistoryItem>(); for (int month=files.size()==1?1:2;month>0;month--) { QFile file(dir.filePath(files[files.size()-month])); if (file.open(QIODevice::ReadOnly)) { QDataStream in(&file); HistoryItem history; while (!file.atEnd()) { in >> history.m_time >> history.m_type >> history.m_in >> history.m_message; if (history.m_time < date_last) { vector[num%n] = history; num++; } } } }
void runDiffractiveTTreeAnalysis(){ gROOT->ProcessLine(".L diffractiveTTreeAnalysis.C+"); //run_range_t runRange = Data900GeV; //run_range_t runRange = Data2360GeV; //run_range_t runRange = Data7TeV; run_range_t runRange = Data8TeV; std::vector<std::string> fileNames(0); //setFileNamesMinimumBias(fileNames); //setFileNamesMinimumBiasRun132605(fileNames); //setFileNamesMinimumBiasRun135528(fileNames); //setFileNamesZeroBiasRun135528(fileNames); setFileNamesMinimumBiasVeryLowPU2012(fileNames); std::string outDir = "root/8TeV/Data/VeryLowPU2012/diffractiveAnalysis-v3"; bool verbose = false; std::vector<std::string> selections; /*selections.push_back("eventSelectionBPTX"); selections.push_back("eventSelectionL1Tech4"); selections.push_back("eventSelectionL1Tech4BeamHaloVeto"); selections.push_back("eventSelectionL1Tech4BscOr"); selections.push_back("eventSelectionL1Tech4HLTBscMinBiasOR");*/ /*selections.push_back("eventSelectionBscMinBiasOR"); selections.push_back("eventSelectionBscMinBiasOREtaMaxFilter"); selections.push_back("eventSelectionBscMinBiasOREtaMinFilter"); selections.push_back("eventSelectionBscMinBiasOREtaMinFilterCastorVeto"); selections.push_back("eventSelectionBscMinBiasOREtaMinFilterCastorTag");*/ /*selections.push_back("eventSelectionMinBias"); selections.push_back("eventSelectionMinBiasEtaMaxFilter"); selections.push_back("eventSelectionMinBiasEtaMinFilter");*/ selections.push_back("eventSelectionMinBiasNoVertex"); selections.push_back("eventSelectionMinBiasEtaMaxFilterNoVertex"); selections.push_back("eventSelectionMinBiasEtaMinFilterNoVertex"); for(size_t k = 0; k < selections.size(); ++k){ //std::string treeName = "minimumBiasTTreeAnalysis_" + selections[k] + "/data"; std::string treeName = "diffractiveAnalysisTTree_" + selections[k] + "/ProcessedTree"; std::string histosFileName = outDir + "/"; histosFileName += getHistosFileName(runRange,selections[k]); TChain* chain = new TChain(treeName.c_str()); for(size_t ifile = 0; ifile < fileNames.size(); ++ifile) chain->Add(fileNames[ifile].c_str()); //minimumBiasTTreeAnalysis(fileName,treeName,histosFileName,false,false,-1,-1,-1,verbose); //minimumBiasTTreeAnalysis(chain,histosFileName,false,false,-1,-1,-1,verbose); diffractiveTTreeAnalysis(chain,histosFileName,false,false,-1,-1,-1,verbose); //std::cout << fileName << " " << treeName << " " << histosFileName << std::endl; } }
bool FileTransferRequestHandler::getDirectorySize(const TCHAR *pathname, UINT64 *dirSize) { UINT64 currentDirSize = 0; UINT32 filesCount = 0; UINT32 dataSize = 0; File folder(pathname); // // Get files count // if (!folder.list(NULL, &filesCount)) { return false; } if (filesCount != 0) { std::vector<StringStorage> fileNames(filesCount); // // Get file names // folder.list(&fileNames.front(), NULL); for (UINT32 i = 0; i < filesCount; i++) { File subfile(pathname, fileNames[i].getString()); if (subfile.isDirectory()) { UINT64 subDirSize = 0; StringStorage subDirPath; subfile.getPath(&subDirPath); if (getDirectorySize(subDirPath.getString(), &subDirSize)) { currentDirSize += subDirSize; } // if it got sub directory size } else { currentDirSize += subfile.length(); } // if subfile is normal file } // for every subfile in file list } *dirSize = currentDirSize; return true; }
// see bsa.h bool BSA::open() { QMutexLocker lock( & bsaMutex ); try { if ( ! bsa.open( QIODevice::ReadOnly ) ) throw QString( "file open" ); quint32 magic, version; bsa.read( (char*) &magic, sizeof( magic ) ); if ( magic == OB_BSAHEADER_FILEID ) { bsa.read( (char*) &version, sizeof( version ) ); if ( version != OB_BSAHEADER_VERSION && version != F3_BSAHEADER_VERSION ) throw QString( "file version" ); OBBSAHeader header; if ( bsa.read( (char *) & header, sizeof( header ) ) != sizeof( header ) ) throw QString( "header size" ); //qWarning() << bsaName << header; if ( ( header.ArchiveFlags & OB_BSAARCHIVE_PATHNAMES ) == 0 || ( header.ArchiveFlags & OB_BSAARCHIVE_FILENAMES ) == 0 ) throw QString( "header flags" ); compressToggle = header.ArchiveFlags & OB_BSAARCHIVE_COMPRESSFILES; if (version == F3_BSAHEADER_VERSION) { namePrefix = header.ArchiveFlags & F3_BSAARCHIVE_PREFIXFULLFILENAMES; } else { namePrefix = false; } if ( ! bsa.seek( header.FolderRecordOffset + header.FolderNameLength + header.FolderCount * ( 1 + sizeof( OBBSAFolderInfo ) ) + header.FileCount * sizeof( OBBSAFileInfo ) ) ) throw QString( "file name seek" ); QByteArray fileNames( header.FileNameLength, char(0) ); if ( bsa.read( fileNames.data(), header.FileNameLength ) != header.FileNameLength ) throw QString( "file name read" ); quint32 fileNameIndex = 0; // qDebug() << file.pos() - header.FileNameLength << fileNames; if ( ! bsa.seek( header.FolderRecordOffset ) ) throw QString( "folder info seek" ); QVector<OBBSAFolderInfo> folderInfos( header.FolderCount ); if ( bsa.read( (char *) folderInfos.data(), header.FolderCount * sizeof( OBBSAFolderInfo ) ) != header.FolderCount * sizeof( OBBSAFolderInfo ) ) throw QString( "folder info read" ); quint32 totalFileCount = 0; foreach ( OBBSAFolderInfo folderInfo, folderInfos ) { // useless? /* qDebug() << __LINE__ << "position" << bsa.pos() << "offset" << folderInfo.offset; if ( folderInfo.offset < header.FileNameLength || ! bsa.seek( folderInfo.offset - header.FileNameLength ) ) throw QString( "folder content seek" ); */ QString folderName; if ( ! BSAReadSizedString( bsa, folderName ) || folderName.isEmpty() ) { //qDebug() << "folderName" << folderName; throw QString( "folder name read" ); } // qDebug() << folderName; BSAFolder * folder = insertFolder( folderName ); quint32 fcnt = folderInfo.fileCount; totalFileCount += fcnt; QVector<OBBSAFileInfo> fileInfos( fcnt ); if ( bsa.read( (char *) fileInfos.data(), fcnt * sizeof( OBBSAFileInfo ) ) != fcnt * sizeof( OBBSAFileInfo ) ) throw QString( "file info read" ); foreach ( OBBSAFileInfo fileInfo, fileInfos ) { if ( fileNameIndex >= header.FileNameLength ) throw QString( "file name size" ); QString fileName = ( fileNames.data() + fileNameIndex ); fileNameIndex += fileName.length() + 1; insertFile( folder, fileName, fileInfo.sizeFlags, fileInfo.offset ); } } if ( totalFileCount != header.FileCount ) throw QString( "file count" ); }