• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)19 void CPrintBenchCallback::Print(const char *s)
20 {
21   fputs(s, _file);
22 }
23 
NewLine()24 void CPrintBenchCallback::NewLine()
25 {
26   fputc('\n', _file);
27 }
28 
CheckBreak()29 HRESULT 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)34 HRESULT BenchCon(DECL_EXTERNAL_CODECS_LOC_VARS
35     const CObjectVector<CProperty> &props, UInt32 numIterations, FILE *f)
36 {
37   CPrintBenchCallback callback;
38   callback._file = f;
39   return Bench(EXTERNAL_CODECS_LOC_VARS
40       &callback, NULL, props, numIterations, true);
41 }
42