int doMain(int argc, char *argv[])
{
    Option opt;
    if (!opt.parse(argc, argv)) return 1;
    cybozu::util::File inFile, outFile;
    setupFiles(inFile, outFile, opt);
    VirtualFullScanner virt;
    virt.init(std::move(inFile), opt.inputWdiffs);
    virt.readAndWriteTo(outFile.fd(), opt.bufferSize);
    if (opt.doStat) {
        std::cerr << "mergeIn  " << virt.statIn()  << std::endl
                  << "mergeOut " << virt.statOut() << std::endl
                  << "mergeMemUsage " << virt.memUsageStr() << std::endl;
    }
    outFile.close();
    return 0;
}
Beispiel #2
0
int doMain(int argc, char *argv[])
{
    Option opt;
    if (!opt.parse(argc, argv)) return 1;
    DiffMerger merger;
    for (std::string &path : opt.inputWdiffs) {
        merger.addWdiff(path);
    }
    cybozu::util::File file(opt.outputWdiff, O_WRONLY | O_CREAT | O_TRUNC, 0644);
    merger.setMaxIoBlocks(opt.maxIoBlocks());
    merger.setShouldValidateUuid(false);
    merger.mergeToFd(file.fd());
    file.close();
    if (opt.doStat) {
        std::cerr << "mergeIn  " << merger.statIn() << std::endl
                  << "mergeOut " << merger.statOut() << std::endl
                  << "mergeMemUsage " << merger.memUsageStr() << std::endl;
    }
    return 0;
}