Exemplo n.º 1
0
int applypatch(int argc, char * argv[]){
    if (argc!=4) {
        std::cout<<"patch command parameter:\n oldFileName diffFileName outNewFileName\n";
        return 0;
    }
    const char* oldFileName=argv[1];
    const char* diffFileName=argv[2];
    const char* outNewFileName=argv[3];
    std::cout<<"old :\"" <<oldFileName<< "\"\ndiff:\""<<diffFileName<<"\"\nout :\""<<outNewFileName<<"\"\n";
    clock_t time0=clock();
    {
        TFileStreamInput oldData(oldFileName);
        TFileStreamInput diffData(diffFileName);
        const hpatch_StreamPos_t newDataSize=readNewDataSize(diffData);
        TFileStreamOutput newData(outNewFileName,newDataSize);

        clock_t time1=clock();
        if (!patch_stream(&newData, &oldData, &diffData)){
            std::cout<<"  patch_stream run error!!!\n";
            exit(3);
        }
        clock_t time2=clock();
        std::cout<<"  patch_stream ok!\n";
        std::cout<<"oldDataSize : "<<oldData.streamSize<<"\ndiffDataSize: "<<diffData.streamSize<<"\nnewDataSize : "<<newDataSize<<"\n";
        std::cout<<"\npatch   time:"<<(time2-time1)*(1000.0/CLOCKS_PER_SEC)<<" ms\n";
    }
    clock_t time3=clock();
    std::cout<<"all run time:"<<(time3-time0)*(1000.0/CLOCKS_PER_SEC)<<" ms\n";
    return 0;
}
int
affx::TsvFileDiff::diff(affx::TsvFile& tsv1, affx::TsvFile& tsv2)
{
  int start_diff_cnt=m_diff_cnt;
  //
  if (m_opt_do_headers) {
    diffHeaders(tsv1,tsv2);
  }
  if (m_opt_do_data) {
    diffData(tsv1,tsv2);
  }
  //
  return m_diff_cnt-start_diff_cnt;
}
Exemplo n.º 3
0
static hpatch_StreamPos_t readNewDataSize(TFileStreamInput& diffFileData){
    TUInt readLength=9;
    if (readLength>diffFileData.streamSize)
        readLength=(TUInt)diffFileData.streamSize;

    std::vector<TByte> diffData(readLength);
    TByte* diffData_begin=0; if (!diffData.empty()) diffData_begin=&diffData[0];
    assert(diffFileData.m_offset==0);
    diffFileData.read(diffFileData.streamHandle,0,diffData_begin,diffData_begin+readLength);

    TUInt kNewDataSizeSavedSize=-1;
    const hpatch_StreamPos_t newDataSize=readSavedSize(diffData,&kNewDataSizeSavedSize);
    diffFileData.setHeadSize(kNewDataSizeSavedSize);//4 or 9 byte
    return newDataSize;
}