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