IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BenchmarkInit.h
1 // BenchmarkInit.h:
3 // ----------------
4 //
14 
15 #ifndef __BENCHMARKTOOLS_BENCHMARKINIT_H__
16 #define __BENCHMARKTOOLS_BENCHMARKINIT_H__
17 
19 #include <IPSDKUtil/BaseTypes.h>
20 #include <IPSDKCore/Config/User/LibraryUserConfiguration.h>
21 #include <boost/preprocessor/stringize.hpp>
22 
26 #define IPSDK_INIT_BENCHMARK(BenchmarkName) \
27 ipsdk::ipInt32 main(int argc, char** argv) \
28 { \
29  return ipsdk::bench::runBenchmarks(BOOST_PP_STRINGIZE(BenchmarkName), \
30  &ipsdk::bench::customizeConfiguration, \
31  argc, argv); \
32 }
33 
34 namespace ipsdk {
35 namespace bench {
36 
39 
41 typedef void (*CustomizeConfigurationFun)(ipsdk::core::LibraryUserConfiguration& libraryUserConfiguration);
42 
44 static void
45 customizeConfiguration(ipsdk::core::LibraryUserConfiguration& libraryUserConfiguration);
46 
50 runBenchmarks(const std::string& benchmarkName,
51  CustomizeConfigurationFun pCustomizeConfiguration,
52  int argc, char** argv);
53 
56 
57 } // end of namespace bench
58 } // end of namespace ipsdk
59 
60 #endif // __BENCHMARKTOOLS_BENCHMARKINIT_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
IPSDKBENCHMARKTOOLS_API ipsdk::ipInt32 runBenchmarks(const std::string &benchmarkName, CustomizeConfigurationFun pCustomizeConfiguration, int argc, char **argv)
function allowing to execute benchmark tests
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
Base types for multiplatform compatibility.
User configuration for IPSDK library.
Definition: LibraryUserConfiguration.h:33
#define IPSDKBENCHMARKTOOLS_API
Import/Export macro for library IPSDKBenchmarkTools.
Definition: IPSDKBenchmarkToolsExports.h:25
Definition of import/export macro for library.
void(* CustomizeConfigurationFun)(ipsdk::core::LibraryUserConfiguration &libraryUserConfiguration)
function type used to customize benchmark configuration
Definition: BenchmarkInit.h:41