// EdIRMacL.cpp : implementation file // #include "stdafx.h" #include "Defines.hpp" #ifdef D_ED_IR_ACTIVE #include "EdIRCsLs.hpp" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ////////////////////////////////////////////////////////////////// // class CPA_EdIR_ConstantList ////////////////////////////////////////////////////////////////// /****************************************************************************/ CPA_EdIR_ConstantList::CPA_EdIR_ConstantList() { map = new CMapStringToPtr(500); map->InitHashTable(500, TRUE); } /****************************************************************************/ CPA_EdIR_ConstantList::~CPA_EdIR_ConstantList() { m_fn_vDestroyAndRemoveAllEntries(); } /****************************************************************************/ void CPA_EdIR_ConstantList::m_fn_vDestroyAndRemoveAllEntries() { POSITION pos=GetHeadPosition(); while(pos!=NULL) delete GetNext(pos); RemoveAll(); map->RemoveAll(); } /****************************************************************************/ void CPA_EdIR_ConstantList::m_fn_vAdd(CString csType,CString csName,CString csValue) { CPA_EdIR_Constant *pclConstant=new CPA_EdIR_Constant(csType,csName,csValue); AddTail(pclConstant); csName.MakeLower(); map->SetAt(csName, (void *) pclConstant); } /****************************************************************************/ CPA_EdIR_Constant * CPA_EdIR_ConstantList::m_fn_pAdd(CString csType,CString csName,CString csValue) { CPA_EdIR_Constant *pclConstant=new CPA_EdIR_Constant(csType,csName,csValue); AddTail(pclConstant); csName.MakeLower(); map->SetAt(csName, (void *) pclConstant); return pclConstant; } /****************************************************************************/ void CPA_EdIR_ConstantList::m_fn_vRemove(CString csName) { POSITION pos=GetHeadPosition(); BOOL bFound=FALSE; while(pos!=NULL && !bFound) { bFound=(GetAt(pos)->m_fn_csGetConstantName().CompareNoCase(csName)==0); if(!bFound) GetNext(pos); } if(pos!=NULL) { csName.MakeLower(); if(map->RemoveKey(csName)) delete GetAt(pos); RemoveAt(pos); } } /****************************************************************************/ BOOL CPA_EdIR_ConstantList::m_fn_bIsAConstant(CString &csConstant) { void *p; return map->Lookup(csConstant, p); } /****************************************************************************/ CString CPA_EdIR_ConstantList::m_fn_csGetValueOfAConstant(CString &csConstant) { void *p; map->Lookup(csConstant, p); return ((CPA_EdIR_Constant *) p)->m_csValue; } /****************************************************************************/ CString CPA_EdIR_ConstantList::m_fn_csGetTypeOfAConstant(CString &csConstant) { void *p; map->Lookup(csConstant, p); return ((CPA_EdIR_Constant *) p)->m_csType; } #endif //D_ED_IR_ACTIVE