24#if !defined(D5760AC70396FF41BBDD7DD560BDBBBC)
26#define D5760AC70396FF41BBDD7DD560BDBBBC
37#include <miktex/Core/Cfg>
38#include <miktex/Util/PathName>
40#include <miktex/Trace/TraceCallback>
41#include <miktex/Trace/TraceStream>
44#include "PackageInstaller.h"
45#include "PackageIterator.h"
46#include "RepositoryInfo.h"
50MIKTEX_PACKAGES_BEGIN_NAMESPACE;
54 bool useProxy =
false;
57 bool authenticationRequired =
false;
72 std::size_t packageCount = 0;
90 virtual std::unique_ptr<class PackageInstaller> MIKTEXTHISCALL
CreateInstaller() = 0;
94 virtual std::unique_ptr<class PackageIterator> MIKTEXTHISCALL
CreateIterator() = 0;
183 virtual std::string MIKTEXTHISCALL
GetContainerPath(
const std::string& packageId,
bool useDisplayNames) = 0;
202 traceCallback(traceCallback)
212 static MIKTEXMPMCEEAPI(std::shared_ptr<PackageManager>) Create(
const InitInfo& initInfo);
217 static std::shared_ptr<PackageManager>
Create()
228 static MIKTEXMPMCEEAPI(std::string) GetRemotePackageRepository(
RepositoryReleaseState& repositoryReleaseState);
239 return GetRemotePackageRepository(unusedRepositoryReleaseState);
248 static MIKTEXMPMCEEAPI(
bool) TryGetRemotePackageRepository(std::string& url,
RepositoryReleaseState& repositoryReleaseState);
258 return TryGetRemotePackageRepository(url, unusedRepositoryReleaseState);
289 static MIKTEXMPMCEEAPI(
RepositoryInfo) GetDefaultPackageRepository();
309 return TryGetDefaultPackageRepository(repositoryType, unusedRepositoryReleaseState, urlOrPath);
316 static MIKTEXMPMCEEAPI(
void) SetDefaultPackageRepository(
const RepositoryInfo& repository);
333 SetDefaultPackageRepository(repositoryType, RepositoryReleaseState::Unknown, urlOrPath);
347 static MIKTEXMPMCEEAPI(
void) SetRemotePackageRepository(
const std::string& url,
RepositoryReleaseState repositoryReleaseState);
355 SetRemotePackageRepository(url, RepositoryReleaseState::Unknown);
396 static MIKTEXMPMCEEAPI(
PackageInfo) GetPackageManifest(
const MiKTeX::Core::Cfg& cfg,
const std::string& packageId,
const std::string& texmfPrefix);
403 static MIKTEXMPMCEEAPI(
bool) StripTeXMFPrefix(
const std::string& str, std::string& result);
411 static MIKTEXMPMCEEAPI(
bool) TryGetProxy(
const std::string& url,
ProxySettings& proxySettings);
418 static MIKTEXMPMCEEAPI(
bool) TryGetProxy(
ProxySettings& proxySettings);
423 static MIKTEXMPMCEEAPI(
void) SetProxy(
const ProxySettings& proxySettings);
426MIKTEX_PACKAGES_END_NAMESPACE;
INI container.
Definition: Cfg.h:60
The package manager interface.
Definition: PackageManager.h:77
virtual bool TryGetPackageInfo(const std::string &packageId, PackageInfo &packageInfo)=0
virtual std::string PickRepositoryUrl()=0
virtual void SetRepositoryReleaseState(RepositoryReleaseState repositoryReleaseState)=0
static std::shared_ptr< PackageManager > Create()
Definition: PackageManager.h:217
virtual InstallationSummary GetInstallationSummary(bool userScope)=0
virtual std::unique_ptr< class PackageInstaller > CreateInstaller(const PackageInstaller::InitInfo &initInfo)=0
static bool TryGetDefaultPackageRepository(RepositoryType &repositoryType, std::string &urlOrPath)
Definition: PackageManager.h:306
virtual RepositoryInfo VerifyPackageRepository(const std::string &url)=0
static bool TryGetRemotePackageRepository(std::string &url)
Definition: PackageManager.h:255
virtual std::vector< RepositoryInfo > GetRepositories()=0
static void SetDefaultPackageRepository(RepositoryType repositoryType, const std::string &urlOrPath)
Definition: PackageManager.h:331
virtual std::unique_ptr< class PackageIterator > CreateIterator()=0
Creates a new package iterator object.
virtual void DownloadRepositoryList()=0
Downloads the repositiry list from the server.
virtual void UnloadDatabase()=0
Unloads the package database.
static void SetRemotePackageRepository(const std::string &url)
Definition: PackageManager.h:353
virtual PackageInfo GetPackageInfo(const std::string &packageId)=0
virtual void LoadDatabase(const MiKTeX::Util::PathName &path, bool isArchive)=0
virtual RepositoryInfo CheckPackageRepository(const std::string &url)=0
virtual bool TryGetRepositoryInfo(const std::string &url, RepositoryInfo &repositoryInfo)=0
virtual bool TryVerifyInstalledPackage(const std::string &packageId)=0
Verifies an installed package.
virtual std::unique_ptr< class PackageInstaller > CreateInstaller()=0
static std::string GetRemotePackageRepository()
Definition: PackageManager.h:236
virtual std::string GetContainerPath(const std::string &packageId, bool useDisplayNames)=0
virtual RepositoryReleaseState GetRepositoryReleaseState()=0
virtual void CreateMpmFndb()=0
Recreates the file name database of the package manager.
Definition: TraceCallback.h:45
Instances of this class can be used to store path names.
Definition: PathName.h:73
constexpr std::time_t InvalidTimeT
An invalid timestamp.
Definition: definitions.h:30
RepositoryReleaseState
Repository release state.
Definition: RepositoryInfo.h:174
RepositoryType
Repository type.
Definition: RepositoryInfo.h:78
Installation summary.
Definition: PackageManager.h:64
Package record.
Definition: PackageInfo.h:34
Initialization options.
Definition: PackageInstaller.h:373
Initialization options.
Definition: PackageManager.h:194
Definition: PackageManager.h:53
Package repository info struct.
Definition: RepositoryInfo.h:204