//++ ------------------------------------------------------------------------------------ // Details: Get the current driver to validate executable command line arguments. // Type: Method. // Args: argc - (R) An integer that contains the count of arguments that follow in // argv. The argc parameter is always greater than or equal to 1. // argv - (R) An array of null-terminated strings representing command-line // arguments entered by the user of the program. By convention, // argv[0] is the command with which the program is invoked. // vpStdOut - (R) Point to a standard output stream. // vwbExiting - (W) True = *this want to exit, false = continue to work. // Return: MIstatus::success - Functional succeeded. // MIstatus::failure - Functional failed. // Throws: None. //-- bool CMIDriverMgr::DriverParseArgs( const int argc, const char * argv[], FILE * vpStdOut, bool & vwbExiting ) { if( m_pDriverCurrent == nullptr ) { const CMIUtilString errMsg( CMIUtilString::Format( MIRSRC( IDS_DRIVER_ERR_CURRENT_NOT_SET ) ) ); CMICmnStreamStdout::Instance().Write( errMsg, true ); return MIstatus::failure; } const lldb::SBError error( m_pDriverCurrent->DoParseArgs( argc, argv, vpStdOut, vwbExiting ) ); bool bOk = !error.Fail(); if( !bOk ) { CMIUtilString errMsg; const MIchar * pErrorCstr = error.GetCString(); if( pErrorCstr != nullptr ) errMsg = CMIUtilString::Format( MIRSRC( IDS_DRIVER_ERR_PARSE_ARGS ), m_pDriverCurrent->GetName().c_str(), pErrorCstr ); else errMsg = CMIUtilString::Format( MIRSRC( IDS_DRIVER_ERR_PARSE_ARGS_UNKNOWN ), m_pDriverCurrent->GetName().c_str() ); bOk = CMICmnStreamStdout::Instance().Write( errMsg, true ); } return bOk; }