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;
}