//  Copyright (c) 2001, Reson, Inc. All Rights Reserved.
//
//  Filename:   SensorItem.cpp
//
//  Project:    6046
//
//  Author(s):  W. Arcus
//
//  Purpose:    
//
//  Notes:      
//

#include "StdAfx.h"
#include "SensorItem.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// CSensorItem class implementation.

CSensorItem::CSensorItem( void )
            :m_iInvalidSensorIndex( -1 )
{
    Invalidate();
}

CSensorItem::CSensorItem(   CSensor * const &rpSensor,
                            const int       &riIndex )
            :m_iInvalidSensorIndex( -1 )
{
    Invalidate();

    m_pSensor = rpSensor;
    m_iIndex  = riIndex;
}

CSensorItem::CSensorItem( const CSensorItem &rRhs )
            :m_iInvalidSensorIndex( -1 )
{
    Invalidate();

    m_pSensor = rRhs.m_pSensor;
    m_iIndex  = rRhs.m_iIndex;
}

CSensorItem & CSensorItem::operator = ( const CSensorItem &rRhs )
{
    Invalidate();

    m_pSensor = rRhs.m_pSensor;
    m_iIndex  = rRhs.m_iIndex;

    return *this;
}

CSensorItem::~CSensorItem( void )
{
    Invalidate();
}

void CSensorItem::Invalidate( void )
{
    m_pSensor = NULL;
    m_iIndex  = m_iInvalidSensorIndex;
}

bool CSensorItem::IsValid( void )
{
    return ( ( m_iIndex != m_iInvalidSensorIndex ) && ( m_pSensor != NULL ) );
}

void CSensorItem::Destroy( void )
{
    if ( IsValid() )
    {
        delete m_pSensor;
        Invalidate();
    }
}

bool CSensorItem::operator < ( const CSensorItem &rRhs ) const
{
    return ( m_iIndex < rRhs.m_iIndex );
}

bool CSensorItem::operator == ( const CSensorItem &rRhs ) const
{
    return ( m_iIndex == rRhs.m_iIndex );
}

bool CSensorItem::operator == ( const int &riIndex ) const
{
    return ( m_iIndex == riIndex );
}
