// 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); | |
} |