/** \file
 *
 *  Contains the FailureMode class implementation.
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 *
 */

#include "FailureMode.h"

const Str FailureMode::NONE_STR( "No Fault" );
const Str FailureMode::COMMUNICATIONS_STR( "Communications Fault" );
const Str FailureMode::DATA_STR( "Data Fault" );
const Str FailureMode::HARDWARE_STR( "Hardware Fault" );
const Str FailureMode::HEURISTIC_STR( "Heuristic Fault" );
const Str FailureMode::OVERCURRENT_STR( "Over Current Fault" );
const Str FailureMode::PERFORMANCE_STR( "Performance Fault" );
const Str FailureMode::SOFTWARE_STR( "Software Fault" );

const Str& FailureMode::ToString( FailureMode::FailType failType )
{
    switch( failType )
    {
    case FailureMode::NONE:
        return NONE_STR;
    case FailureMode::COMMUNICATIONS:
        return COMMUNICATIONS_STR;
    case FailureMode::DATA:
        return DATA_STR;
    case FailureMode::HARDWARE:
        return HARDWARE_STR;
    case FailureMode::HEURISTIC:
        return HEURISTIC_STR;
    case FailureMode::OVERCURRENT:
        return OVERCURRENT_STR;
    case FailureMode::PERFORMANCE:
        return PERFORMANCE_STR;
    case FailureMode::SOFTWARE:
        return SOFTWARE_STR;
    }
    return Str::EMPTY_STR;
}

