MiKTeX 23.10-next
A scalable TeX distribution
Loading...
Searching...
No Matches
ETeXApp.h
Go to the documentation of this file.
1
14#pragma once
15
16#include <miktex/TeXAndFriends/config.h>
17
18#include <memory>
19#include <string>
20
21#include "TeXApp.h"
22
23MIKTEX_TEXMF_BEGIN_NAMESPACE;
24
25class MIKTEXMFTYPEAPI(ETeXApp) :
26 public TeXApp
27{
28
29public:
30
31 MIKTEXMFEXPORT MIKTEXTHISCALL ETeXApp();
32 ETeXApp(const ETeXApp& other) = delete;
33 ETeXApp& operator=(const ETeXApp& other) = delete;
34 ETeXApp(ETeXApp&& other) = delete;
35 ETeXApp& operator=(ETeXApp&& other) = delete;
36 virtual MIKTEXMFEXPORT MIKTEXTHISCALL ~ETeXApp() noexcept;
37
38 MIKTEXMFTHISAPI(bool) ETeXP() const;
39 MIKTEXMFTHISAPI(void) Finalize() override;
40 MIKTEXMFTHISAPI(void) OnTeXMFStartJob() override;
41
42 static ETeXApp* GetETeXApp()
43 {
44 MIKTEX_ASSERT(dynamic_cast<ETeXApp*>(Application::GetApplication()) != nullptr);
45 return (ETeXApp*)Application::GetApplication();
46 }
47
48protected:
49
50 MIKTEXMFTHISAPI(bool) ProcessOption(int c, const std::string& optArg) override;
51 MIKTEXMFTHISAPI(void) AddOptions() override;
52 MIKTEXMFTHISAPI(void) Init(std::vector<char*>& args) override;
53
54private:
55
56 class impl;
57 std::unique_ptr<impl> pimpl;
58};
59
60inline bool miktexetexp()
61{
62 return ETeXApp::GetETeXApp()->ETeXP();
63}
64
65MIKTEX_TEXMF_END_NAMESPACE;
MiKTeX TeX base implementation.
Definition: ETeXApp.h:27
void Init(std::vector< char * > &args) override
void Finalize() override
Frees application resources.
Definition: TeXApp.h:54