unify TDNFList()/TDNFInfo()

This commit is contained in:
Oliver Kurth 2021-06-30 11:22:22 -07:00
parent ba7f76201d
commit 4d61db48e8
2 changed files with 33 additions and 74 deletions

View File

@ -514,79 +514,11 @@ TDNFInfo(
uint32_t* pdwCount
)
{
uint32_t dwError = 0;
uint32_t dwCount = 0;
PSolvQuery pQuery = NULL;
PTDNF_PKG_INFO pPkgInfo = NULL;
PSolvPackageList pPkgList = NULL;
if(!pTdnf || !pTdnf->pSack ||!pdwCount || !ppPkgInfo ||
!ppszPackageNameSpecs)
{
dwError = ERROR_TDNF_INVALID_PARAMETER;
BAIL_ON_TDNF_ERROR(dwError);
}
dwError = TDNFRefresh(pTdnf);
BAIL_ON_TDNF_ERROR(dwError);
dwError = SolvCreateQuery(pTdnf->pSack, &pQuery);
BAIL_ON_TDNF_ERROR(dwError);
dwError = TDNFApplyScopeFilter(pQuery, nScope);
BAIL_ON_TDNF_ERROR(dwError);
dwError = SolvApplyPackageFilter(pQuery, ppszPackageNameSpecs);
BAIL_ON_TDNF_ERROR(dwError);
dwError = SolvApplyListQuery(pQuery);
BAIL_ON_TDNF_ERROR(dwError);
dwError = SolvGetQueryResult(pQuery, &pPkgList);
BAIL_ON_TDNF_ERROR(dwError);
dwError = TDNFPopulatePkgInfoArray(
pTdnf->pSack,
pPkgList,
DETAIL_INFO,
&pPkgInfo,
&dwCount);
if (dwError == ERROR_TDNF_NO_MATCH && !*ppszPackageNameSpecs)
{
dwError = 0;
}
BAIL_ON_TDNF_ERROR(dwError);
*ppPkgInfo = pPkgInfo;
*pdwCount = dwCount;
cleanup:
if(pQuery)
{
SolvFreeQuery(pQuery);
}
if(pPkgList)
{
SolvFreePackageList(pPkgList);
}
return dwError;
error:
if(ppPkgInfo)
{
*ppPkgInfo = NULL;
}
if(pdwCount)
{
*pdwCount = 0;
}
if(pPkgInfo)
{
TDNFFreePackageInfoArray(pPkgInfo, dwCount);
}
goto cleanup;
return TDNFListInternal(pTdnf, nScope,
ppszPackageNameSpecs,
ppPkgInfo, pdwCount,
DETAIL_INFO
);
}
uint32_t
@ -597,6 +529,22 @@ TDNFList(
PTDNF_PKG_INFO* ppPkgInfo,
uint32_t* pdwCount
)
{
return TDNFListInternal(pTdnf, nScope,
ppszPackageNameSpecs,
ppPkgInfo, pdwCount,
DETAIL_LIST);
}
uint32_t
TDNFListInternal(
PTDNF pTdnf,
TDNF_SCOPE nScope,
char** ppszPackageNameSpecs,
PTDNF_PKG_INFO* ppPkgInfo,
uint32_t* pdwCount,
TDNF_PKG_DETAIL nDetail
)
{
uint32_t dwError = 0;
uint32_t dwCount = 0;
@ -636,7 +584,7 @@ TDNFList(
dwError = TDNFPopulatePkgInfoArray(
pTdnf->pSack,
pPkgList,
DETAIL_LIST,
nDetail,
&pPkgInfo,
&dwCount);
}

View File

@ -1094,4 +1094,15 @@ TDNFFreeEventData(
PTDNF_EVENT_DATA pData
);
/* api.c */
uint32_t
TDNFListInternal(
PTDNF pTdnf,
TDNF_SCOPE nScope,
char** ppszPackageNameSpecs,
PTDNF_PKG_INFO* ppPkgInfo,
uint32_t* pdwCount,
TDNF_PKG_DETAIL nDetail
);
#endif /* __CLIENT_PROTOTYPES_H__ */