184 lines
5.7 KiB
C++
184 lines
5.7 KiB
C++
//===========================================================================//
|
|
// Purpose : Method definitions for the (regexp) TC_Bit class.
|
|
//
|
|
// Public methods include:
|
|
// - TC_Bit, ~TC_Bit
|
|
// - operator=
|
|
// - operator==, operator!=
|
|
// - Print
|
|
// - ExtractString
|
|
// - GetValue
|
|
// - SetValue
|
|
//
|
|
//===========================================================================//
|
|
|
|
#include "TIO_PrintHandler.h"
|
|
|
|
#include "TC_StringUtils.h"
|
|
#include "TC_Bit.h"
|
|
|
|
//===========================================================================//
|
|
// Method : TC_Bit_c
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
TC_Bit_c::TC_Bit_c(
|
|
TC_BitMode_t value )
|
|
{
|
|
this->SetValue( value );
|
|
}
|
|
|
|
//===========================================================================//
|
|
TC_Bit_c::TC_Bit_c(
|
|
char value )
|
|
{
|
|
this->SetValue( value );
|
|
}
|
|
|
|
//===========================================================================//
|
|
TC_Bit_c::TC_Bit_c(
|
|
const TC_Bit_c& bit )
|
|
:
|
|
value_( bit.value_ )
|
|
{
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : ~TC_Bit_c
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
TC_Bit_c::~TC_Bit_c(
|
|
void )
|
|
{
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : operator=
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
TC_Bit_c& TC_Bit_c::operator=(
|
|
const TC_Bit_c& bit )
|
|
{
|
|
if ( &bit != this )
|
|
{
|
|
this->value_ = bit.value_;
|
|
}
|
|
return( *this );
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : operator==
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
bool TC_Bit_c::operator==(
|
|
const TC_Bit_c& bit ) const
|
|
{
|
|
return( this->value_ == bit.value_ ? true : false );
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : operator!=
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
bool TC_Bit_c::operator!=(
|
|
const TC_Bit_c& bit ) const
|
|
{
|
|
return(( !this->operator==( bit )) ?
|
|
true : false );
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : Print
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
void TC_Bit_c::Print(
|
|
FILE* pfile,
|
|
size_t spaceLen ) const
|
|
{
|
|
string srValue;
|
|
this->ExtractString( &srValue );
|
|
|
|
TIO_PrintHandler_c& printHandler = TIO_PrintHandler_c::GetInstance( );
|
|
printHandler.Write( pfile, spaceLen, "%s\n", TIO_SR_STR( srValue ));
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : ExtractString
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
void TC_Bit_c::ExtractString(
|
|
string* psrValue ) const
|
|
{
|
|
if ( psrValue )
|
|
{
|
|
*psrValue = "";
|
|
|
|
switch( this->value_ )
|
|
{
|
|
case TC_BIT_TRUE: *psrValue = "1"; break;
|
|
case TC_BIT_FALSE: *psrValue = "0"; break;
|
|
case TC_BIT_DONT_CARE: *psrValue = "-"; break;
|
|
default: *psrValue = "?"; break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : GetValue
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
TC_BitMode_t TC_Bit_c::GetValue(
|
|
void ) const
|
|
{
|
|
return( static_cast< TC_BitMode_t >( this->value_ ));
|
|
}
|
|
|
|
//===========================================================================//
|
|
// Method : SetValue
|
|
// Author : Jeff Rudolph
|
|
//---------------------------------------------------------------------------//
|
|
// Version history
|
|
// 05/15/12 jeffr : Original
|
|
//===========================================================================//
|
|
void TC_Bit_c::SetValue(
|
|
TC_BitMode_t value )
|
|
{
|
|
this->value_ = static_cast< char >( value );
|
|
}
|
|
|
|
//===========================================================================//
|
|
void TC_Bit_c::SetValue(
|
|
char value )
|
|
{
|
|
switch( value )
|
|
{
|
|
case '1': this->value_ = TC_BIT_TRUE; break;
|
|
case '0': this->value_ = TC_BIT_FALSE; break;
|
|
case '-': this->value_ = TC_BIT_DONT_CARE; break;
|
|
default: this->value_ = TC_BIT_UNDEFINED; break;
|
|
}
|
|
}
|