📄 parameterlist.cpp
字号:
// ParameterList.cpp: implementation of the CParameterList class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ParameterList.h"
#include <algorithm>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CParameterList::CParameterList()
{
}
CParameterList::~CParameterList()
{
}
const char* CParameterList::GetParamValueText(const char* pszName)
{
CSingleLock lck(&m_csLock,TRUE);
STD_MAP_STRING_2_STRING::iterator itr=m_ParamText.find(pszName);
if(itr==m_ParamText.end())
{
assert(false);
return "";
};
return (*itr).second.c_str();
};
LONG CParameterList::GetParamValueLONG(const char* pszName)
{
CSingleLock lck(&m_csLock,TRUE);
STD_MAP_STRING_2_LONG::iterator itr=m_ParamLONG.find(pszName);
if(itr==m_ParamLONG.end())
{
assert(false);
return 0;
};
return (*itr).second;
};
ULONG CParameterList::GetParamValueULONG(const char* pszName)
{
CSingleLock lck(&m_csLock,TRUE);
STD_MAP_STRING_2_ULONG::iterator itr=m_ParamULONG.find(pszName);
if(itr==m_ParamULONG.end())
{
assert(false);
return 0;
};
return (*itr).second;
};
void CParameterList::SetParamValueText(const char* pszName,const char*pszValue)
{
CSingleLock lck(&m_csLock,TRUE);
m_ParamText[pszName]=pszValue;
if(m_ParamNameList.end()==std::find(m_ParamNameList.begin(),m_ParamNameList.end(),pszName))
{
m_ParamNameList.push_back(pszName);
}
};
void CParameterList::SetParamValueLONG(const char* pszName,LONG lValue)
{
CSingleLock lck(&m_csLock,TRUE);
m_ParamLONG[pszName]=lValue;
if(m_ParamNameList.end()==std::find(m_ParamNameList.begin(),m_ParamNameList.end(),pszName))
{
m_ParamNameList.push_back(pszName);
}
};
void CParameterList::SetParamValueULONG(const char* pszName,ULONG ulValue)
{
CSingleLock lck(&m_csLock,TRUE);
m_ParamULONG[pszName]=ulValue;
if(m_ParamNameList.end()==std::find(m_ParamNameList.begin(),m_ParamNameList.end(),pszName))
{
m_ParamNameList.push_back(pszName);
}
};
ULONG CParameterList::GetParamCount()
{
CSingleLock lck(&m_csLock,TRUE);
return m_ParamNameList.size();
};
void CParameterList::GetAllParamAsText(
std::string& strAllTxt,
const char* pszTokenBetweenParams,
const bool bGetType
)
{
strAllTxt="";
CSingleLock lck(&m_csLock,TRUE);
std::string strName;
std::string strType;
std::string strValue;
for(long l=0;l<m_ParamNameList.size();l++)
{
if(!strAllTxt.empty())
{
strAllTxt+=pszTokenBetweenParams;
}
GetParamValueAsText(
l,
strName,
strType,
strValue
);
strAllTxt+=strName;
if(bGetType)
{
strAllTxt+="("+strType+")";
}
strAllTxt+=":";
strAllTxt+=strValue;
}
}
void CParameterList::GetParamValueAsText(
const ULONG ulIndex,
std::string& strName,
std::string& strType,
std::string& strValue
)
{
strName="";
strType="";
strValue="";
CSingleLock lck(&m_csLock,TRUE);
if(ulIndex>=GetParamCount())
{
return ;
}
strName=m_ParamNameList[ulIndex];
//
STD_MAP_STRING_2_STRING::iterator itr=m_ParamText.find(strName);
if(m_ParamText.end()!=itr)
{
strType=TYPE_TEXT;
strValue=(*itr).second;
return;
}
STD_MAP_STRING_2_ULONG::iterator itr3=m_ParamULONG.find(strName);
if(m_ParamULONG.end()!=itr3)
{
strType=TYPE_ULONG;
char szTxt[256]={0,};
_snprintf(szTxt,sizeof(szTxt),"%u",(*itr).second);
strValue=szTxt;
return;
}
STD_MAP_STRING_2_LONG::iterator itr2=m_ParamLONG.find(strName);
if(m_ParamLONG.end()!=itr2)
{
strType=TYPE_LONG;
char szTxt[256]={0,};
_snprintf(szTxt,sizeof(szTxt),"%d",(*itr).second);
strValue=szTxt;
return;
}
assert(false);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -