MiKTeX 26.5-next
A scalable TeX distribution
Loading...
Searching...
No Matches
StringHandlerImpl.h
Go to the documentation of this file.
1
13
14#pragma once
15
16#include <miktex/TeXAndFriends/config.h>
17
18#include "TeXMFApp.h"
19
20MIKTEX_TEXMF_BEGIN_NAMESPACE;
21
22template<class PROGRAM_CLASS> class StringHandlerImpl :
23 public IStringHandler
24{
25
26public:
27
28 StringHandlerImpl(PROGRAM_CLASS& program) :
29 program(program)
30 {
31 }
32
33 char* strpool() override
34 {
35#if defined(MIKTEX_XETEX) || defined(MIKTEX_PTEX_FAMILY)
36 MIKTEX_UNEXPECTED();
37#else
38 MIKTEX_ASSERT(sizeof(program.strpool[0]) == sizeof(char));
39 return reinterpret_cast<char*>(program.strpool);
40#endif
41 }
42
43 char16_t* strpool16() override
44 {
45#if defined(MIKTEX_XETEX) || defined(MIKTEX_PTEX_FAMILY)
46 MIKTEX_ASSERT(sizeof(program.strpool[0]) == sizeof(char16_t));
47 return reinterpret_cast<char16_t*>(program.strpool);
48#else
49 MIKTEX_UNEXPECTED();
50#endif
51 }
52
53 C4P::C4P_signed32& strptr() override
54 {
55 return program.strptr;
56 }
57
58 C4P::C4P_signed32* strstart() override
59 {
60 return program.strstart;
61 }
62
63 C4P::C4P_signed32& poolsize() override
64 {
65 return program.poolsize;
66 }
67
68 C4P::C4P_signed32& poolptr() override
69 {
70 return program.poolptr;
71 }
72
73 C4P::C4P_signed32 makestring() override
74 {
75 return program.makestring();
76 }
77
78private:
79
80 PROGRAM_CLASS& program;
81};
82
83MIKTEX_TEXMF_END_NAMESPACE;
MiKTeX TeXMF base implementation.