本文整理汇总了C++中shared_ptr::AddItem方法的典型用法代码示例。如果您正苦于以下问题:C++ shared_ptr::AddItem方法的具体用法?C++ shared_ptr::AddItem怎么用?C++ shared_ptr::AddItem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类shared_ptr
的用法示例。
在下文中一共展示了shared_ptr::AddItem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scope
void
IMAPFolders::CreatePath(shared_ptr<IMAPFolders> pParentContainer,
const std::vector<String> &vecFolderPath,
bool bAutoSubscribe)
{
CriticalSectionScope scope(_lock);
String hierarchyDelimiter = Configuration::Instance()->GetIMAPConfiguration()->GetHierarchyDelimiter();
LOG_DEBUG("Creating IMAP folder " + StringParser::JoinVector(vecFolderPath, hierarchyDelimiter));
std::vector<String> vecTempPath = vecFolderPath;
shared_ptr<IMAPFolder> pParentFolder;
while (vecTempPath.size() > 0)
{
// Get first level.
String sTopLevel = vecTempPath[0];
shared_ptr<IMAPFolder> pParentCheck = pParentContainer->GetFolderByName(sTopLevel, false);
if (pParentCheck)
{
// This folder already exists. Create next level.
pParentContainer = pParentCheck->GetSubFolders();
pParentFolder = pParentCheck;
vecTempPath = StringParser::GetAllButFirst(vecTempPath);
continue;
}
__int64 iParentFolderID = -1;
if (pParentFolder)
iParentFolderID = pParentFolder->GetID();
shared_ptr<IMAPFolder> pFolder = shared_ptr<IMAPFolder>(new IMAPFolder(m_iAccountID, iParentFolderID));
pFolder->SetFolderName(sTopLevel);
pFolder->SetIsSubscribed(bAutoSubscribe);
PersistentIMAPFolder::SaveObject(pFolder);
// Add the folder to the collection.
pParentContainer->AddItem(pFolder);
// Go down one folder.
pParentContainer = pFolder->GetSubFolders();
vecTempPath = StringParser::GetAllButFirst(vecTempPath);
pParentFolder = pFolder;
}
}