14 #ifndef INCLUDED_apps_benchmark_init_util_hh
15 #define INCLUDED_apps_benchmark_init_util_hh
32 vector< int > string_start;
33 vector< int > string_length;
34 bool in_the_middle_of_a_string =
false;
35 for (
unsigned int ii = 0;
ii < cmdin.size(); ++
ii ) {
36 if ( cmdin[
ii ] !=
' ' ) {
37 if ( in_the_middle_of_a_string ) {
38 ++string_length[ pseudo_argc - 1 ];
40 string_start.push_back(
ii );
41 string_length.push_back( 1 );
42 in_the_middle_of_a_string =
true;
46 in_the_middle_of_a_string =
false;
50 vector< string > cmdline;
51 cmdline.reserve( pseudo_argc );
52 for (
int ii = 0;
ii < pseudo_argc; ++
ii ) {
53 cmdline.push_back( cmdin.substr( string_start[
ii ], string_length[ ii ] ));
56 char** pseudo_argv =
new char * [ pseudo_argc ];
57 for (
int ii = 0;
ii < pseudo_argc; ++
ii ) {
58 pseudo_argv[
ii ] =
new char[ cmdline[
ii ].size() + 1 ];
59 strncpy(pseudo_argv[
ii], cmdline[ii].c_str(), cmdline[ii].
size());
60 pseudo_argv[
ii][ cmdline[
ii].size() ] =
'\0';
72 for (
int ii = 0;
ii < pseudo_argc; ++
ii ) {
73 delete [] pseudo_argv[
ii ];
75 delete [] pseudo_argv;
88 + commandline, pseudo_argc );
99 std::string commandline(
" ");
101 commandline = commandline + command_line_argv[i] +
" ";
103 commandline = commandline + commandline_in;
void core_init_from_string(std::string const &commandline)
For unit tests only. Creates an argc/argv pair, calls init() and deletes argv. can be used to init op...
void init(int argc, char *argv[])
Command line init() version.
void core_init_with_additional_options(std::string const &commandline_in)
For unit tests only. Re-init option system. Command line will be = old command line + function argume...
void destroy_pseudo_commandline(int pseudo_argc, char **pseudo_argv)
char ** create_pseudo_commandline(std::string const &cmdin, int &pseudo_argc)