本文整理汇总了C++中usercore::item::ItemInfoI::getInsPrimary方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemInfoI::getInsPrimary方法的具体用法?C++ ItemInfoI::getInsPrimary怎么用?C++ ItemInfoI::getInsPrimary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类usercore::item::ItemInfoI
的用法示例。
在下文中一共展示了ItemInfoI::getInsPrimary方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: validate
uint32 GatherInfoTask::validate()
{
UserCore::Item::ItemInfoI* pItemInfo = getItemHandle()->getItemInfo();
uint32 isValid = 0;
if (!pItemInfo)
return UserCore::Item::Helper::V_BADINFO;
DesuraId par = pItemInfo->getParentId();
UserCore::Item::ItemInfoI *parInfo = nullptr;
if (par.isOk())
{
parInfo = getUserCore()->getItemManager()->findItemInfo(par);
if (!parInfo || !(parInfo->getStatus() & UserCore::Item::ItemInfoI::STATUS_INSTALLED))
isValid |= UserCore::Item::Helper::V_PARENT;
}
const char* path = pItemInfo->getPath(getMcfBranch());
if (!path)
{
isValid |= UserCore::Item::Helper::V_BADPATH;
}
else
{
const char *comAppPath = getUserCore()->getAppDataPath();
uint64 inFreeSpace = UTIL::OS::getFreeSpace(path);
uint64 dlFreeSpace = UTIL::OS::getFreeSpace(comAppPath);
//if they are on the same drive:
if (strncmp(comAppPath, path, 3) == 0)
{
if ((inFreeSpace+dlFreeSpace) < (pItemInfo->getDownloadSize()+pItemInfo->getInstallSize()))
{
isValid |= (UserCore::Item::Helper::V_FREESPACE|UserCore::Item::Helper::V_FREESPACE_DL|UserCore::Item::Helper::V_FREESPACE_INS);
}
}
else
{
if (dlFreeSpace < pItemInfo->getDownloadSize())
isValid |= UserCore::Item::Helper::V_FREESPACE|UserCore::Item::Helper::V_FREESPACE_DL;
if (inFreeSpace < pItemInfo->getInstallSize())
isValid |= UserCore::Item::Helper::V_FREESPACE|UserCore::Item::Helper::V_FREESPACE_INS;
}
if (pItemInfo->getStatus() & UserCore::Item::ItemInfoI::STATUS_INSTALLCOMPLEX)
{
const char* primPath = pItemInfo->getInsPrimary();
if (primPath && strcmp(primPath, "") != 0 && UTIL::FS::isValidFolder(primPath) && !UTIL::FS::isFolderEmpty(primPath))
isValid |= UserCore::Item::Helper::V_NONEMPTY;
}
else if (pItemInfo->getStatus() & UserCore::Item::ItemInfoI::STATUS_DLC)
{
if (!parInfo || gcString(path) != gcString(parInfo->getPath()))
{
if (!UTIL::FS::isFolderEmpty(path))
isValid |= UserCore::Item::Helper::V_NONEMPTY;
}
}
else if (!UTIL::FS::isFolderEmpty(path))
{
isValid |= UserCore::Item::Helper::V_NONEMPTY;
}
}
#ifdef NIX
UserCore::Item::BranchInfoI* bi = pItemInfo->getBranchById(getMcfBranch());
std::vector<DesuraId> toolList;
bi->getToolList(toolList);
uint32 res = getUserCore()->getToolManager()->hasNonInstallableTool(toolList);
switch (res)
{
case 0:
isValid |= UserCore::Item::Helper::V_JAVA_SUN;
break;
case 1:
isValid |= UserCore::Item::Helper::V_JAVA;
break;
case 2:
isValid |= UserCore::Item::Helper::V_MONO;
break;
case 3:
isValid |= UserCore::Item::Helper::V_AIR;
break;
};
#endif
return isValid;
}