109 lines
2.8 KiB
C++
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
|