本文整理汇总了C++中CommandLine::GetPurgeFiles方法的典型用法代码示例。如果您正苦于以下问题:C++ CommandLine::GetPurgeFiles方法的具体用法?C++ CommandLine::GetPurgeFiles怎么用?C++ CommandLine::GetPurgeFiles使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CommandLine
的用法示例。
在下文中一共展示了CommandLine::GetPurgeFiles方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
Result Par1Repairer::Process(const CommandLine &commandline, bool dorepair) {
// How noisy should we be
noiselevel = commandline.GetNoiseLevel();
// Do we want to purge par files on success ?
bool purgefiles = commandline.GetPurgeFiles();
// Get filesnames from the command line
string par1filename = commandline.GetParFilename();
const list<CommandLine::ExtraFile> &extrafiles = commandline.GetExtraFiles();
// Determine the searchpath from the location of the main PAR file
string name;
DiskFile::SplitFilename(par1filename, searchpath, name);
// Load the main PAR file
if (!LoadRecoveryFile(searchpath + name))
return eLogicError;
// Load other PAR files related to the main PAR file
if (!LoadOtherRecoveryFiles(par1filename))
return eLogicError;
// Load any extra PAR files specified on the command line
if (!LoadExtraRecoveryFiles(extrafiles))
return eLogicError;
if (noiselevel > CommandLine::nlQuiet)
cout << endl << "Verifying source files:" << endl << endl;
// Check for the existence of and verify each of the source files
if (!VerifySourceFiles())
return eFileIOError;
if (completefilecount<sourcefiles.size()) {
if (noiselevel > CommandLine::nlQuiet)
cout << endl << "Scanning extra files:" << endl << endl;
// Check any other files specified on the command line to see if they are
// actually copies of the source files that have the wrong filename
if (!VerifyExtraFiles(extrafiles))
return eLogicError;
}
// Find out how much data we have found
UpdateVerificationResults();
if (noiselevel > CommandLine::nlSilent)
cout << endl;
// Check the verification results and report the details
if (!CheckVerificationResults())
return eRepairNotPossible;
// Are any of the files incomplete
if (completefilecount<sourcefiles.size()) {
// Do we want to carry out a repair
if (dorepair) {
if (noiselevel > CommandLine::nlSilent)
cout << endl;
// Rename any damaged or missnamed target files.
if (!RenameTargetFiles())
return eFileIOError;
// Are we still missing any files
if (completefilecount<sourcefiles.size()) {
// Work out which files are being repaired, create them, and allocate
// target DataBlocks to them, and remember them for later verification.
if (!CreateTargetFiles())
return eFileIOError;
// Work out which data blocks are available, which need to be recreated,
// and compute the appropriate Reed Solomon matrix.
if (!ComputeRSmatrix()) {
// Delete all of the partly reconstructed files
DeleteIncompleteTargetFiles();
return eFileIOError;
}
// Allocate memory buffers for reading and writing data to disk.
if (!AllocateBuffers(commandline.GetMemoryLimit())) {
// Delete all of the partly reconstructed files
DeleteIncompleteTargetFiles();
return eMemoryError;
}
if (noiselevel > CommandLine::nlSilent)
cout << endl;
// Set the total amount of data to be processed.
progress = 0;
totaldata = blocksize * sourcefiles.size() * verifylist.size();
// Start at an offset of 0 within a block.
u64 blockoffset = 0;
while (blockoffset < blocksize) { // Continue until the end of the block.
// Work out how much data to process this time.
size_t blocklength = (size_t)min((u64)chunksize, blocksize-blockoffset);
// Read source data, process it through the RS matrix and write it to disk.
//.........这里部分代码省略.........