int __cdecl wmain ( IN int argc, IN wchar_t* args[] ) { time_t start = time( NULL ); CModelData modelData; if( !ParseArgs( argc, args, modelData ) ) { return( ErrorCode_BadOption ); } if( !modelData.ReadModel( wstring( args[ 1 ] ))) { return( ErrorCode_BadModel ); } if( !modelData.ReadRowSeedFile( modelData.RowSeedsFile )) { return( ErrorCode_BadRowSeedFile ); } GcdRunner gcdRunner( modelData ); ErrorCode err = gcdRunner.Generate(); if( err != ErrorCode_Success ) { return err; } time_t end = time( NULL ); // if r has been provided then print out the seed // TODO: change to not use SWITCH_RANDOMIZE const if( modelData.ProvidedArguments.find( SWITCH_RANDOMIZE ) != modelData.ProvidedArguments.end() ) { wcerr << L"Used seed: " << static_cast<int>( modelData.RandSeed ) << endl; } CResult result = gcdRunner.GetResult(); if( modelData.Statistics ) { modelData.PrintStatistics(); result.PrintStatistics(); PrintStatisticsCaption( wstring( L"Generation time" )); printTimeDifference( start, end ); } else { result.PrintConstraintWarnings(); result.PrintOutput( modelData ); } return( ErrorCode_Success ); }