本文整理汇总了C++中std::tr1::shared_ptr::getPath方法的典型用法代码示例。如果您正苦于以下问题:C++ shared_ptr::getPath方法的具体用法?C++ shared_ptr::getPath怎么用?C++ shared_ptr::getPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::tr1::shared_ptr
的用法示例。
在下文中一共展示了shared_ptr::getPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QString
int thp::LayerLRUCache::add(std::tr1::shared_ptr<Bundle> sp)
{
lockForWrite();
// 检查资源已经存在
QString qsName = sp->getName();
QHash<QString,int>::iterator it = m_hmapResources.find(qsName);
if(it != m_hmapResources.end())
{
unlock(false);
return 0;
}
if(m_unUsedKBCount < m_unMaxKBCount)
{
// 加入资源到lru头部
m_hmapResources.insert(qsName, 0);
m_listHotColdResources.push_front(sp);
#ifdef _THP_TJ
unsigned int nbKb = sp->getMaxKB();
QString qsInfo = QString( "%0,%1,%2" ).arg( GB("LRU") ).arg( GB(sp->getPath()) ).arg( nbKb );
m_pLogWriter->debugLog(qsInfo);
#endif
m_unUsedKBCount += sp->getMaxKB();
unlock(false);
return 0;
}
while(m_unUsedKBCount > m_unMaxKBCount)
{
sPtr sp = m_listHotColdResources.back();
while( sp->getTemperature() > 2)
{
sp->setTemperature(0);
m_listHotColdResources.move_head_forward();
continue;
}
if( m_unUsedKBCount < sp->getMaxKB() )
{
m_pLogWriter->errorLog("LRU错误");
break;
}
m_unUsedKBCount -= sp->getMaxKB();
m_listHotColdResources.pop_back();
m_hmapResources.remove(qsName);
}
// 加入资源
m_listHotColdResources.insert_n(m_listHotColdResources.size()/2, sp);
m_hmapResources.insert(qsName, 0);
// 维护占用值
m_unUsedKBCount += sp->getMaxKB();
#ifdef _THP_TJ
// CLASS, MAX, CURRENT, BUNDLE个数
QString qsInfo = QString( GB("%0,%1,%2,%3") ).arg( GB("LRUSTATUS") ).arg( m_unMaxKBCount ).arg( m_unUsedKBCount ).arg( m_listHotColdResources.size() );
m_pLogWriter->debugLog(qsInfo);
#endif
unlock(false);
return 0;
}