76 lines
1.7 KiB
C++
76 lines
1.7 KiB
C++
#include "COpResultOpt.h"
|
|
#include "pub_utility_api/I18N.h"
|
|
|
|
COpResultOpt::COpResultOpt()
|
|
{
|
|
}
|
|
|
|
COpResultOpt::~COpResultOpt()
|
|
{
|
|
}
|
|
|
|
void COpResultOpt::resetResult(const std::string& keyTag)
|
|
{
|
|
boost::mutex::scoped_lock lock(m_muWait);
|
|
m_objResult.keyTag = keyTag;
|
|
m_objResult.resultCode = OPT_RESPONSE_TYPE_INIT;
|
|
m_objResult.resultDesc = "";
|
|
}
|
|
|
|
SOptResult COpResultOpt::getResult(int waitTime)
|
|
{
|
|
SOptResult result;
|
|
boost::mutex::scoped_lock lock(m_muWait);
|
|
using namespace boost::posix_time;
|
|
if (m_condWait.timed_wait(lock, seconds(waitTime)))
|
|
{
|
|
result.keyTag = m_objResult.keyTag;
|
|
result.resultCode = m_objResult.resultCode;
|
|
result.resultDesc = m_objResult.resultDesc;
|
|
return result;
|
|
}
|
|
|
|
result.keyTag = m_objResult.keyTag;
|
|
result.resultCode = OPT_RESPONSE_TYPE_INIT;
|
|
result.resultDesc = "";
|
|
return result;
|
|
}
|
|
|
|
bool COpResultOpt::setResult(
|
|
const SOptResult& info)
|
|
{
|
|
boost::mutex::scoped_lock lock(m_muWait);
|
|
if (info.keyTag != m_objResult.keyTag)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
m_objResult.resultCode = info.resultCode;
|
|
m_objResult.resultDesc = info.resultDesc;
|
|
m_condWait.notify_one();
|
|
|
|
return true;
|
|
}
|
|
|
|
std::string COpResultOpt::OptOpTypeStr(OPT_RESPONSE_TYPE type)
|
|
{
|
|
std::string strRet;
|
|
switch (type)
|
|
{
|
|
case OPT_RESPONSE_TYPE_INIT:
|
|
strRet = I18N("初始化状态");
|
|
break;
|
|
case OPT_RESPONSE_TYPE_FAILED:
|
|
strRet = I18N("失败");
|
|
break;
|
|
case OPT_RESPONSE_TYPE_SUCCESS:
|
|
strRet = I18N("成功");
|
|
break;
|
|
default:
|
|
strRet = I18N("未知的应答类型");
|
|
break;
|
|
}
|
|
|
|
return strRet;
|
|
}
|