16 #include <basic/options/option.hh>
18 #include <utility/file/FileName.hh>
19 #include <utility/file/file_sys_util.hh>
20 #include <utility/string_util.hh>
28 #include <basic/options/keys/out.OptionKeys.gen.hh>
29 #include <basic/options/keys/run.OptionKeys.gen.hh>
31 #include <utility/vector1.hh>
45 using basic::options::option;
46 using namespace basic::options::OptionKeys;
49 int nstruct_width = 0;
50 for(
int i = 1; i <=
nstruct_ || nstruct_width < 4; i *= 10) nstruct_width += 1;
56 if( option[ run::shuffle ].user() ) out_name =
"S_shuffle";
57 std::ostringstream oss;
60 if ( basic::options::option[ basic::options::OptionKeys::out::user_tag ].user() ) {
61 user_tag =
"_" + basic::options::option[ basic::options::OptionKeys::out::user_tag ];
65 oss << option[ out::prefix ]() << out_name.base() << option[ out::suffix ]()
66 << user_tag <<
'_' << std::setfill(
'0') << std::setw(nstruct_width) << (struct_n);
68 oss << option[ out::prefix ]() << out_name << option[ out::suffix ]()
69 << user_tag <<
'_' << std::setfill(
'0') << std::setw(nstruct_width) << (struct_n);
71 out_name.base( oss.str() );
72 return out_name.base();