1/* 2 * Copyright 2013, Stephan A��mus <superstippi@gmx.de>. 3 * Copyright 2013, Rene Gollent, <rene@gollent.com> 4 * Copyright 2020-2022, Andrew Lindesay <apl@lindesay.co.nz> 5 * 6 * All rights reserved. Distributed under the terms of the MIT License. 7 */ 8 9 10#include "AbstractPackageProcess.h" 11 12#include "Model.h" 13#include "PackageManager.h" 14#include "PackageUtils.h" 15 16 17using namespace BPackageKit; 18 19// #pragma mark - PackageAction 20 21 22AbstractPackageProcess::AbstractPackageProcess( 23 PackageInfoRef package, Model* model) 24 : 25 fPackage(package), 26 fModel(model) 27{ 28 if (package.IsSet()) 29 fInstallLocation = PackageUtils::DeriveInstallLocation(package.Get()); 30 else 31 fInstallLocation = B_PACKAGE_INSTALLATION_LOCATION_SYSTEM; 32 33 // TODO: ideally if the package is installed at multiple locations, 34 // the user should be able to pick which one to remove. 35 // TODO: allow configuring the installation location 36 fPackageManager = new(std::nothrow) PackageManager( 37 (BPackageInstallationLocation)fInstallLocation); 38} 39 40 41AbstractPackageProcess::~AbstractPackageProcess() 42{ 43 delete fPackageManager; 44} 45 46 47PackageInfoRef 48AbstractPackageProcess::FindPackageByName(const BString& name) 49{ 50 return fModel->PackageForName(name); 51} 52 53 54