22#include <miktex/App/vi/Version>
23#include <miktex/Core/LibraryVersion>
24#include <miktex/Core/Session>
25#include <miktex/PackageManager/PackageManager>
26#include <miktex/Trace/TraceCallback>
30MIKTEX_APP_BEGIN_NAMESPACE;
33class MIKTEXAPPTYPEAPI(Application) :
46 virtual MIKTEXAPPEXPORT MIKTEXTHISCALL
~Application()
noexcept;
76 virtual MIKTEXAPPTHISAPI(
void)
Init(std::vector<const char*>&args);
80 virtual MIKTEXAPPTHISAPI(
void)
Init(std::vector<char*>&args);
84 virtual MIKTEXAPPTHISAPI(
void)
Init(
const std::string& programInvocationName);
89 virtual MIKTEXAPPTHISAPI(
void)
Init(
const std::string& programInvocationName,
const std::string& theNameOfTheGame);
96 virtual MIKTEXAPPTHISAPI(
void)
Finalize2(
int exitCode);
102 versions.push_back(MiKTeX::App::vi::Version::GetLibraryVersion());
103 auto deps = MiKTeX::App::vi::Runtime::GetDependencies();
104 versions.insert(std::end(versions), std::begin(deps), std::end(deps));
137 MIKTEXAPPTHISAPI(
void)
ReportLine(
const std::string& message)
override;
160 MIKTEXAPPTHISAPI(
bool)
Trace(
const TraceCallback::TraceMessage& traceMessage)
override;
168 MIKTEXNORETURN MIKTEXAPPCEEAPI(
void)
FatalError(
const std::string& message);
172 MIKTEXAPPCEEAPI(
void)
Warning(
const std::string& message);
188 MIKTEXAPPTHISAPI(
void)
Sorry(
const std::string& name,
const MiKTeX::Core::MiKTeXException& ex);
193 MIKTEXAPPTHISAPI(
void)
Sorry(
const std::string& name,
const std::exception& ex);
200 MIKTEXAPPTHISAPI(
void)
Sorry(
const std::string& name,
const std::string& description,
const std::string& remedy,
const std::string& url);
206 Sorry(name,
"",
"",
"");
221 MIKTEXAPPTHISAPI(std::shared_ptr<MiKTeX::Core::Session>)
GetSession()
const;
229 MIKTEXAPPTHISAPI(
void)
LogInfo(
const std::string& message)
const;
233 MIKTEXAPPTHISAPI(
void)
LogWarn(
const std::string& message)
const;
237 MIKTEXAPPTHISAPI(
void)
LogError(
const std::string& message)
const;
254 void FlushPendingTraceMessages();
256 void ConfigureLogging();
257 void AutoMaintenance();
261 std::unique_ptr<impl> pimpl;
264MIKTEX_APP_END_NAMESPACE;
TriState
Tri-state enum class.
Definition: TriState.h:22
An instance of this class controls the run-time behaviour of a MiKTeX application.
Definition: Application.h:37
void Warning(const std::string &message)
void LogError(const std::string &message) const
bool OnProgress(MiKTeX::Packages::Notification nf) override
Handles an installer notification.
void EnableInstaller(MiKTeX::Configuration::TriState tri)
void Sorry(const std::string &name)
Definition: Application.h:204
std::shared_ptr< MiKTeX::Core::Session > GetSession() const
void SetQuietFlag(bool b)
static Application * GetApplication()
void LogInfo(const std::string &message) const
void InvokeEditor(const MiKTeX::Util::PathName &editFileName, int editLineNumber, MiKTeX::Core::FileType editFileType, const MiKTeX::Util::PathName &transcriptFileName) const
virtual void Init(const MiKTeX::Core::Session::InitInfo &initInfo, std::vector< char * > &args)
void Sorry(const std::string &name, const MiKTeX::Core::MiKTeXException &ex)
virtual void ShowLibraryVersions() const
Prints version information of loaded libraries.
virtual void GetLibraryVersions(std::vector< MiKTeX::Core::LibraryVersion > &versions) const
Definition: Application.h:100
void ReportLine(const std::string &message) override
Prints an installer message.
virtual void Init(const std::string &programInvocationName, const std::string &theNameOfTheGame)
virtual void Finalize2(int exitCode)
bool TryCreateFile(const MiKTeX::Util::PathName &fileName, MiKTeX::Core::FileType fileType) override
Creates a file.
virtual std::string ExamineArgs(std::vector< char * > &args, MiKTeX::Core::Session::InitInfo &initInfo)
void SecurityRisk(const std::string &message)
virtual void Init(const std::string &programInvocationName)
virtual void Init(std::vector< const char * > &args)
bool Trace(const TraceCallback::TraceMessage &traceMessage) override
Logs a trace message.
void FatalError(const std::string &message)
MiKTeX::Configuration::TriState GetEnableInstaller() const
virtual void Init(std::vector< char * > &args)
virtual std::string ExamineArgs(std::vector< const char * > &args, MiKTeX::Core::Session::InitInfo &initInfo)
void Sorry(const std::string &name, const std::string &description, const std::string &remedy, const std::string &url)
virtual void Finalize()
Frees application resources.
bool OnRetryableError(const std::string &message) override
Handles an installer error.
bool GetQuietFlag() const
void CheckCancel()
Throws an exception if the application should be terminated.
void LogWarn(const std::string &message) const
void Sorry(const std::string &name, const std::exception &ex)
virtual void Init(const MiKTeX::Core::Session::InitInfo &initInfo)
virtual void Init(const MiKTeX::Core::Session::InitInfo &initInfo, std::vector< const char * > &args)
bool InstallPackage(const std::string &packageId, const MiKTeX::Util::PathName &trigger, MiKTeX::Util::PathName &installRoot) override
Install a package.
Find file callback interface.
Definition: Session.h:370
Extended initialization options.
Definition: Session.h:436
Callback interface.
Definition: PackageInstaller.h:79
Definition: TraceCallback.h:45
Instances of this class can be used to store path names.
Definition: PathName.h:73
FileType
File type enum class.
Definition: FileType.h:33
Notification
Installer notifications.
Definition: PackageInstaller.h:53
Definition: TraceCallback.h:48