// BenchCon.cpp #include "StdAfx.h" #include "../Common/Bench.h" #include "BenchCon.h" #include "ConsoleClose.h" struct CPrintBenchCallback: public IBenchPrintCallback { FILE *_file; void Print(const char *s); void NewLine(); HRESULT CheckBreak(); }; void CPrintBenchCallback::Print(const char *s) { fputs(s, _file); } void CPrintBenchCallback::NewLine() { Print("\n"); } HRESULT CPrintBenchCallback::CheckBreak() { return NConsoleClose::TestBreakSignal() ? E_ABORT: S_OK; } HRESULT BenchCon(DECL_EXTERNAL_CODECS_LOC_VARS const CObjectVector<CProperty> &props, UInt32 numIterations, FILE *f) { CPrintBenchCallback callback; callback._file = f; callback.NewLine(); return Bench(EXTERNAL_CODECS_LOC_VARS &callback, NULL, props, numIterations, true); }