24#if !defined(E22949C2ACEF4F1DB1F4008919909456)
25#define E22949C2ACEF4F1DB1F4008919909456
35#include <miktex/Util/OptionSet>
36#include <miktex/Util/PathName>
38#include "RepositoryInfo.h"
39#include "definitions.h"
41MIKTEX_PACKAGES_BEGIN_NAMESPACE;
84 virtual void MIKTEXTHISCALL
ReportLine(
const std::string& str) = 0;
115 virtual void MIKTEXTHISCALL
SetRepository(
const std::string& repository) = 0;
182 virtual std::vector<UpdateInfo> MIKTEXTHISCALL
GetUpdates() = 0;
209 virtual std::vector<UpgradeInfo> MIKTEXTHISCALL
GetUpgrades() = 0;
265 unsigned long cFilesRemoveCompleted = 0;
268 unsigned long cFilesRemoveTotal = 0;
271 unsigned long cPackagesRemoveCompleted = 0;
274 unsigned long cPackagesRemoveTotal = 0;
277 std::size_t cbPackageDownloadCompleted = 0;
280 std::size_t cbPackageDownloadTotal = 0;
283 std::size_t cbDownloadCompleted = 0;
286 std::size_t cbDownloadTotal = 0;
289 std::size_t cFilesPackageInstallCompleted = 0;
292 unsigned long cFilesPackageInstallTotal = 0;
295 unsigned long cFilesInstallCompleted = 0;
298 unsigned long cFilesInstallTotal = 0;
301 unsigned long cPackagesInstallCompleted = 0;
304 unsigned long cPackagesInstallTotal = 0;
307 std::size_t cbPackageInstallCompleted = 0;
310 std::size_t cbPackageInstallTotal = 0;
313 std::size_t cbInstallCompleted = 0;
316 std::size_t cbInstallTotal = 0;
319 unsigned long bytesPerSecond = 0;
322 unsigned long timeRemaining = 0;
328 unsigned numErrors = 0;
331 bool cancelled =
false;
348 virtual void MIKTEXTHISCALL
SetFileLists(
const std::vector<std::string>& toBeInstalled,
const std::vector<std::string>& toBeRemoved) = 0;
358 virtual void MIKTEXTHISCALL
SetFileList(
const std::vector<std::string>& toBeInstalled) = 0;
385 bool unattended =
false;
387 bool enablePostProcessing =
true;
391MIKTEX_PACKAGES_END_NAMESPACE;
Callback interface.
Definition: PackageInstaller.h:79
virtual bool OnRetryableError(const std::string &message)=0
virtual void ReportLine(const std::string &str)=0
virtual bool OnProgress(Notification nf)=0
Definition: PackageInstaller.h:103
virtual void InstallRemoveAsync(Role role)=0
virtual void SetDownloadDirectory(const MiKTeX::Util::PathName &directory)=0
virtual void UpdateDb(UpdateDbOptionSet options)=0
Synchronizes the package database.
virtual void Dispose()=0
Releases all resources used by this package installer object.
virtual void FindUpgrades(PackageLevel packageLevel)=0
virtual void FindUpdatesAsync()=0
virtual void SetRepository(const std::string &repository)=0
virtual void UpdateDbAsync()=0
virtual void SetPackageLevel(PackageLevel packageLevel)=0
virtual void RegisterComponents(bool postInstall)=0
virtual void SetCallback(PackageInstallerCallback *callback)=0
virtual void WaitForCompletion()=0
Waits for the started thread to complete.
virtual void FindUpgradesAsync(PackageLevel packageLevel)=0
virtual bool IsRunning() const =0
virtual std::vector< UpgradeInfo > GetUpgrades()=0
virtual void DownloadAsync()=0
virtual ProgressInfo GetProgressInfo()=0
virtual void FindUpdates()=0
Checks for updates.
virtual void Download()=0
virtual std::vector< UpdateInfo > GetUpdates()=0
virtual void SetFileLists(const std::vector< std::string > &toBeInstalled, const std::vector< std::string > &toBeRemoved)=0
virtual void SetFileList(const std::vector< std::string > &toBeInstalled)=0
Role
Installation role.
Definition: PackageInstaller.h:214
virtual void InstallRemove(Role role)=0
Definition: OptionSet.h:37
Instances of this class can be used to store path names.
Definition: PathName.h:73
Notification
Installer notifications.
Definition: PackageInstaller.h:53
@ RemoveFileStart
File removal is about to start.
@ InstallFileStart
File installation is about to start.
@ DownloadPackageEnd
Package download has finished.
@ RemoveFileEnd
File removal has finished.
@ DownloadPackageStart
Package download is about to start.
@ RemovePackageEnd
Package removal has finished.
@ InstallPackageStart
Package installation is about to start.
@ RemovePackageStart
Package removal is about to start.
@ InstallPackageEnd
Package installation has finished.
@ InstallFileEnd
File installation has finished.
constexpr std::time_t InvalidTimeT
An invalid timestamp.
Definition: definitions.h:30
UpdateDbOption
UpdateDb options.
Definition: PackageInstaller.h:45
PackageLevel
Package level.
Definition: RepositoryInfo.h:40
Initialization options.
Definition: PackageInstaller.h:373
Progress information.
Definition: PackageInstaller.h:254
std::string packageId
ID of the current package.
Definition: PackageInstaller.h:256
MiKTeX::Util::PathName fileName
Path name of current file.
Definition: PackageInstaller.h:262
std::string displayName
Display name of package.
Definition: PackageInstaller.h:259
Update information record.
Definition: PackageInstaller.h:143
Action
Update actions.
Definition: PackageInstaller.h:154
@ KeepAdmin
No permission to remove.
Definition: PackageInstaller.h:160
@ Update
Optional update.
Definition: PackageInstaller.h:164
@ Repair
Package has been tampered with.
Definition: PackageInstaller.h:170
@ KeepObsolete
Should be removed.
Definition: PackageInstaller.h:162
@ Keep
Definition: PackageInstaller.h:158
@ ForceRemove
Required deletion.
Definition: PackageInstaller.h:168
@ ForceUpdate
Required update.
Definition: PackageInstaller.h:166
std::string packageId
Package ID.
Definition: PackageInstaller.h:145
std::string version
Informal version informtion.
Definition: PackageInstaller.h:151
Upgrade information record.
Definition: PackageInstaller.h:197
std::string packageId
ID of an upgradaeble package.
Definition: PackageInstaller.h:199
std::string version
Informal version information.
Definition: PackageInstaller.h:203