22#if !defined(A5D4990A62304F209D9688619234D364)
23#define A5D4990A62304F209D9688619234D364
29#include <miktex/Core/Session>
31#include <miktex/PackageManager/PackageManager>
33#include "RemoteService.h"
36MPM_INTERNAL_BEGIN_NAMESPACE;
38class NoRemoteService :
42 std::vector<MiKTeX::Packages::RepositoryInfo> repositories;
45 NoRemoteService(
const std::vector<std::string>& wellKnownBaseUrls)
47 for (
const std::string& url : wellKnownBaseUrls)
50 rep.
url = url +
"systems/win32/miktex/tm/packages/";
54 repositories.push_back(rep);
57 repositories.push_back(rep);
64 std::vector<MiKTeX::Packages::RepositoryInfo> result;
67 if (rep.releaseState == repositoryReleaseState)
69 result.push_back(rep);
80 if (rep.releaseState == repositoryReleaseState)
85 MIKTEX_FATAL_ERROR(T_(
"No package repository available."));
89 std::pair<bool, MiKTeX::Packages::RepositoryInfo> TryGetRepositoryInfo(
const std::string& repositoryUrl)
override
93 if (rep.url == repositoryUrl)
95 return std::make_pair(
true, rep);
104 std::pair<bool, MiKTeX::Packages::RepositoryInfo> p = TryGetRepositoryInfo(repositoryUrl);
107 MIKTEX_FATAL_ERROR_2(T_(
"The remote package repository is not registered. You have to choose another repository."),
"url", repositoryUrl);
113MPM_INTERNAL_END_NAMESPACE;
Definition RemoteService.h:35
@ Online
Repository is known to be online.
Definition RepositoryInfo.h:117
@ Complete
Complete package set.
Definition RepositoryInfo.h:49
RepositoryReleaseState
Repository release state.
Definition RepositoryInfo.h:174
@ Next
Experimental channel.
Definition RepositoryInfo.h:179
@ Stable
Stable channel.
Definition RepositoryInfo.h:177
Package repository info struct.
Definition RepositoryInfo.h:204
std::string url
URL of (or path to) the repository.
Definition RepositoryInfo.h:208
RepositoryReleaseState releaseState
Repository release State.
Definition RepositoryInfo.h:230
RepositoryStatus status
Status of the repository.
Definition RepositoryInfo.h:222
PackageLevel packageLevel
Package level.
Definition RepositoryInfo.h:216