//
//  Copyright © 2003, RESON Inc. All Rights Reserved.
//
//  No part of this file may be reproduced or transmitted in any form or by
//  any means, electronic or mechanical, including photocopy, recording, or
//  information storage or retrieval system, without permission in writing
//  from RESON Inc.
//
//  Filename:   7kPort.cpp
//
//  Project:    6046
//
//  Author(s):  W. Arcus
//
//  Purpose:    C7kPort implementation.
//
//  Notes:      
//

#include "StdAfx.h"
#include "7kPort.h"

//////////////////////////////////////////////////////////////////////
// C7kPort implementation.

C7kPort::C7kPort( void )
{
    ManageDllState_m();

    m_bEnabled    = true;

    m_ulPortId     = 0UL;
    m_ulType       = static_cast<unsigned long>( portTypeCoax );
    m_ui64Address  = 0;
    m_ulPortNumber = 0UL;

    m_ulTriggerId  = 0UL;

}

C7kPort::~C7kPort( void )
{
    ManageDllState_m();

    m_bEnabled     = false;

    m_ulPortId     = 0;
    m_ulType       = static_cast<unsigned long>( portTypeCoax );
    m_ui64Address  = 0;
    m_ulPortNumber = 0;
}

C7kPort::C7kPort( const C7kPort &rRhs )
{
    ManageDllState_m();

    if ( this != &rRhs )
    {
        m_bEnabled     = rRhs.m_bEnabled;
        m_ulPortId     = rRhs.m_ulPortId;
        m_ulType       = rRhs.m_ulType;
        m_ui64Address  = rRhs.m_ui64Address;
        m_ulPortNumber = rRhs.m_ulPortNumber;
    }
    else
    {
        ASSERT( false );
    }
}

C7kPort & C7kPort::operator = ( const C7kPort &rRhs )
{
    ManageDllState_m();

    if ( this != &rRhs )
    {
        m_bEnabled     = rRhs.m_bEnabled;
        m_ulPortId     = rRhs.m_ulPortId;
        m_ulType       = rRhs.m_ulType;
        m_ui64Address  = rRhs.m_ui64Address;
        m_ulPortNumber = rRhs.m_ulPortNumber;
    }
    else
    {
        ASSERT( false );
    }

    return *this;
}

bool C7kPort::operator == ( const unsigned long &rulPortId ) const
{
    ManageDllState_m();

    return ( m_ulPortId == rulPortId );
}

bool C7kPort::operator <  ( const C7kPort &rRhs ) const
{
    ManageDllState_m();

    return ( m_ulPortId < rRhs.m_ulPortId );
}

void C7kPort::Configure(const EPORTTYPE        &rePortType,
                         const unsigned __int64 &rui64Address )
{
    ManageDllState_m();

    m_ulType       = rePortType;
    m_ui64Address  = rui64Address;
}

void C7kPort::PortNumber( const unsigned long &rulPortNumber )
{
    ManageDllState_m();

    m_ulPortNumber = rulPortNumber;
}

bool C7kPort::IsEnabled( void ) const
{
    ManageDllState_m();

    return m_bEnabled;
}

void C7kPort::Enable( void )
{
    ManageDllState_m();

    m_bEnabled = true;
}

void C7kPort::Disable( void )
{
    ManageDllState_m();

    m_bEnabled = false;
}

unsigned long C7kPort::Id( void ) const
{
    ManageDllState_m();

    return m_ulPortId;
}

unsigned long C7kPort::TriggerId( void ) const
{
    ManageDllState_m();

    return m_ulTriggerId;
}

void C7kPort::TriggerId( const unsigned long &rulTriggerId )
{
    ManageDllState_m();

    m_ulTriggerId = rulTriggerId;
}

C7kPort::EPORTTYPE C7kPort::Type( void ) const
{
    ManageDllState_m();

    return static_cast<EPORTTYPE>( m_ulType );
}

unsigned __int64 C7kPort::Address( void )  const
{
    ManageDllState_m();

    return m_ui64Address;
}

unsigned long C7kPort::PortNumber( void ) const
{
    ManageDllState_m();

    return m_ulPortNumber;
}

C7kPort::operator const PORTINFO * ( void ) const
{
    ManageDllState_m();

    return static_cast<const PORTINFO *>( this );
}

void C7kPort::Id( const unsigned long &rulPortId )
{
    ManageDllState_m();

    m_ulPortId = rulPortId;
}

