1 // BenchCon.cpp 2 3 #include "StdAfx.h" 4 5 #include "../Common/Bench.h" 6 7 #include "BenchCon.h" 8 #include "ConsoleClose.h" 9 10 struct CPrintBenchCallback: public IBenchPrintCallback 11 { 12 FILE *_file; 13 14 void Print(const char *s); 15 void NewLine(); 16 HRESULT CheckBreak(); 17 }; 18 Print(const char * s)19void CPrintBenchCallback::Print(const char *s) 20 { 21 fputs(s, _file); 22 } 23 NewLine()24void CPrintBenchCallback::NewLine() 25 { 26 Print("\n"); 27 } 28 CheckBreak()29HRESULT CPrintBenchCallback::CheckBreak() 30 { 31 return NConsoleClose::TestBreakSignal() ? E_ABORT: S_OK; 32 } 33 BenchCon(DECL_EXTERNAL_CODECS_LOC_VARS const CObjectVector<CProperty> & props,UInt32 numIterations,FILE * f)34HRESULT BenchCon(DECL_EXTERNAL_CODECS_LOC_VARS 35 const CObjectVector<CProperty> &props, UInt32 numIterations, FILE *f) 36 { 37 CPrintBenchCallback callback; 38 callback._file = f; 39 callback.NewLine(); 40 return Bench(EXTERNAL_CODECS_LOC_VARS 41 &callback, NULL, props, numIterations, true); 42 } 43