reman3/Rayman_X/cpa/tempgrp/TIA/Src/EdIRBkLs.cpp

109 lines
2.8 KiB
C++

// EdIRDbg.cpp : implementation file
//
#include "stdafx.h"
#include "Defines.hpp"
#ifdef D_ED_IR_ACTIVE
#include "EdIRBkLs.hpp"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// class CPA_EdIR_BreakPointList
/////////////////////////////////////////////////////////////////////////////
/****************************************************************************/
CPA_EdIR_BreakPointList::CPA_EdIR_BreakPointList()
{
}
/****************************************************************************/
CPA_EdIR_BreakPointList::~CPA_EdIR_BreakPointList()
{
m_fn_vDestroyAndRemoveAllEntries();
}
/****************************************************************************/
void CPA_EdIR_BreakPointList::m_fn_vDestroyAndRemoveAllEntries()
{
POSITION pos=GetHeadPosition();
while(pos!=NULL)
delete GetNext(pos);
RemoveAll();
}
/****************************************************************************/
POSITION CPA_EdIR_BreakPointList::m_fn_posGetPositionBreakPoint(long lIndex,CString csBehaviourName)
{
POSITION pos=GetHeadPosition();
BOOL bFound=FALSE;
while(pos!=NULL && !bFound)
{
CPA_EdIR_BreakPoint *pclBreakPoint=GetAt(pos);
if((pclBreakPoint->m_fn_csGetBehaviourName()==csBehaviourName) &&
(pclBreakPoint->m_fn_lGetIndex()==lIndex))
bFound=TRUE;
else
GetNext(pos);
}
return pos;
}
/****************************************************************************/
BOOL CPA_EdIR_BreakPointList::m_fn_bIsInList(long lIndex,CString csBehaviourName)
{
return (m_fn_posGetPositionBreakPoint(lIndex,csBehaviourName)!=NULL);
}
/****************************************************************************/
void CPA_EdIR_BreakPointList::m_fn_vSetOneBreakPoint(long lIndex,CString csBehaviourName)
{
AddTail(new CPA_EdIR_BreakPoint(lIndex,csBehaviourName));
}
/****************************************************************************/
void CPA_EdIR_BreakPointList::m_fn_vRemoveOneBreakPoint(long lIndex,CString csBehaviourName)
{
POSITION pos=m_fn_posGetPositionBreakPoint(lIndex,csBehaviourName);
if(pos!=NULL)
{
CPA_EdIR_BreakPoint *pclBreakPoint=GetAt(pos);
RemoveAt(pos);
delete pclBreakPoint;
}
}
/****************************************************************************/
BOOL CPA_EdIR_BreakPointList::m_fn_bExistMoreThanOnce(CPA_EdIR_BreakPoint *pclBreakPoint)
{
POSITION pos=GetHeadPosition();
BOOL bFound=FALSE;
while(pos!=NULL && !bFound)
{
CPA_EdIR_BreakPoint *pclCurrentBreakPoint=GetNext(pos);
if((pclCurrentBreakPoint!=pclBreakPoint) &&
(pclCurrentBreakPoint->m_fn_lGetIndex()==pclBreakPoint->m_fn_lGetIndex()) &&
(pclCurrentBreakPoint->m_fn_csGetBehaviourName()==pclBreakPoint->m_fn_csGetBehaviourName()))
{
bFound=TRUE;
}
}
return bFound;
}
#endif //D_ED_IR_ACTIVE