MythTV  master
BaseClasses.h
Go to the documentation of this file.
1 /* BaseClasses.h
2 
3  Copyright (C) David C. J. Matthews 2004 dm at prolingua.co.uk
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public License
7  as published by the Free Software Foundation; either version 2
8  of the License, or (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
18  Or, point your browser to http://www.gnu.org/copyleft/gpl.html
19 
20 */
21 
22 #if !defined(BASECLASSES_H)
23 #define BASECLASSES_H
24 
25 #include "config.h"
26 #if HAVE_MALLOC_H
27 #include <malloc.h>
28 #endif
29 
30 #include <array>
31 #include <QString>
32 #include <vector>
33 
34 using MHPointVec = std::vector<int>; // Duplicated in freemheg.h
35 
36 #include "Logging.h" // For MHASSERT
37 
38 class MHEngine;
39 
40 // These templates should really be obtained from a library. They are defined here to
41 // allow easy porting to a variety of libraries.
42 
43 // Simple sequence class.
44 template <class BASE> class MHSequence {
45  public:
46  MHSequence() = default;
47  // The destructor frees the vector but not the elements.
48  ~MHSequence() { free(m_values); }
49  // Get the current size.
50  int Size() const { return m_vecSize; }
51  // Get an element at a particular index.
52  BASE GetAt(int i) const { MHASSERT(i >= 0 && i < m_vecSize); return m_values[i]; }
53  BASE operator[](int i) const { return GetAt(i); }
54  // Add a new element at position n and move the existing element at that position
55  // and anything above it up one place.
56  void InsertAt(BASE b, int n) {
57  MHASSERT(n >= 0 && n <= m_vecSize);
58  // NOLINTNEXTLINE(bugprone-sizeof-expression)
59  BASE *ptr = (BASE*)realloc(m_values, (m_vecSize+1) * sizeof(BASE));
60  if (ptr == nullptr) throw "Out of Memory";
61  m_values = ptr;
62  for (int i = m_vecSize; i > n; i--) m_values[i] = m_values[i-1];
63  m_values[n] = b;
64  m_vecSize++;
65  }
66  // Add an element to the end of the sequence.
67  void Append(BASE b) { InsertAt(b, m_vecSize); }
68  // Remove an element and shift all the others down.
69  void RemoveAt(int i) {
70  MHASSERT(i >= 0 && i < m_vecSize);
71  for (int j = i+1; j < m_vecSize; j++) m_values[j-1] = m_values[j];
72  m_vecSize--;
73  }
74  protected:
75  int m_vecSize {0};
76  BASE *m_values {nullptr};
77 };
78 
79 // As above, but it deletes the pointers when the sequence is destroyed.
80 template <class BASE> class MHOwnPtrSequence: public MHSequence<BASE*> {
81  public:
82  ~MHOwnPtrSequence() { for(int i = 0; i < MHSequence<BASE*>::m_vecSize; i++) delete(MHSequence<BASE*>::GetAt(i)); }
83 };
84 
85 
86 // Simple stack.
87 template <class BASE> class MHStack: protected MHSequence<BASE> {
88  public:
89  // Test for empty
90  bool Empty() const { return Size() == 0; }
91  // Pop an item from the stack.
92  BASE Pop() {
95  }
96  // Push an element on the stack.
97  void Push(BASE b) { this->Append(b); }
98  // Return the top of the stack.
99  BASE Top() {
102  }
103  int Size() const { return MHSequence<BASE>::Size(); }
104 };
105 
106 class MHParseNode;
107 
108 // An MHEG octet string is a sequence of bytes which can include nulls. MHEG, or at least UK MHEG, indexes
109 // strings from 1. We use 0 indexing in calls to these functions.
111 {
112  public:
113  MHOctetString();
114  MHOctetString(const char *str, int nLen = -1); // From character string
115  MHOctetString(const unsigned char *str, int nLen); // From byte vector
116  MHOctetString(const MHOctetString &str, int nOffset=0, int nLen=-1); // Substring
117  MHOctetString(const MHOctetString& o) { Copy(o); }
118  virtual ~MHOctetString();
119 
120  void Copy(const MHOctetString &str);
122  { if (this==&o) return *this; Copy(o); return *this; }
123  int Size() const { return m_nLength; }
124  // Comparison - returns <0, =0, >0 depending on the ordering.
125  int Compare(const MHOctetString &str) const;
126  bool Equal(const MHOctetString &str) const { return Compare(str) == 0; }
127  unsigned char GetAt(int i) const { MHASSERT(i >= 0 && i < Size()); return m_pChars[i]; }
128  const unsigned char *Bytes() const { return m_pChars; } // Read-only pointer to the buffer.
129  void Append(const MHOctetString &str); // Add text to the end of the string.
130 
131  QString Printable() const { return QString::fromLatin1((const char*)m_pChars, m_nLength); }
132 
133  void PrintMe(FILE *fd, int nTabs) const;
134 
135 protected:
136  int m_nLength {0};
137  unsigned char *m_pChars {nullptr};
138 };
139 
140 // A colour is encoded as a string or the index into a palette.
141 // Palettes aren't defined in UK MHEG so the palette index isn't really relevant.
142 class MHColour {
143  public:
144  MHColour() = default;
145  void Initialise(MHParseNode *p, MHEngine *engine);
146  void PrintMe(FILE *fd, int nTabs) const;
147  bool IsSet() const { return m_nColIndex >= 0 || m_colStr.Size() != 0; }
148  void SetFromString(const char *str, int nLen);
149  void Copy(const MHColour &col);
151  int m_nColIndex {-1};
152 };
153 
154 // An object reference is used to identify and refer to an object.
155 // Internal objects have the m_pGroupId field empty.
157 {
158  public:
159  MHObjectRef() = default;
160  void Initialise(MHParseNode *p, MHEngine *engine);
161  void Copy(const MHObjectRef &objr);
163 
164  MHObjectRef& operator=(const MHObjectRef&) = default;
165 
166  // Sometimes the object reference is optional. This tests if it has been set
167  bool IsSet() const { return (m_nObjectNo != 0 || m_groupId.Size() != 0); }
168  void PrintMe(FILE *fd, int nTabs) const;
169  bool Equal(const MHObjectRef &objr, MHEngine *engine) const;
170  QString Printable() const;
171 
172  int m_nObjectNo {0};
174 };
175 
176 // A content reference gives the location (e.g. file name) to find the content.
178 {
179  public:
180  MHContentRef() = default;
181 
182  MHContentRef& operator=(const MHContentRef&) = default;
183 
184  void Initialise(MHParseNode *p, MHEngine *engine);
185  void PrintMe(FILE *fd, int nTabs) const { m_contentRef.PrintMe(fd, nTabs); }
186  void Copy(const MHContentRef &cr) { m_contentRef.Copy(cr.m_contentRef); }
187  bool IsSet() const { return m_contentRef.Size() != 0; }
188  bool Equal(const MHContentRef &cr, MHEngine *engine) const;
190  QString Printable() const { return m_contentRef.Printable(); }
191 
193 };
194 
195 // "Generic" versions of int, bool etc can be either the value or an indirect reference.
197 {
198  public:
199  MHObjectRef *GetReference(); // Return the indirect reference or fail if it's direct
200  bool m_fIsDirect {false};
201 protected:
203 };
204 
206 {
207  public:
208  MHGenericBoolean() = default;
209  void Initialise(MHParseNode *p, MHEngine *engine);
210  void PrintMe(FILE *fd, int nTabs) const;
211  bool GetValue(MHEngine *engine) const; // Return the value, looking up any indirect ref.
212 protected:
213  bool m_fDirect {false};
214 };
215 
217 {
218  public:
219  MHGenericInteger() = default;
220  void Initialise(MHParseNode *p, MHEngine *engine);
221  void PrintMe(FILE *fd, int nTabs) const;
222  int GetValue(MHEngine *engine) const; // Return the value, looking up any indirect ref.
223 protected:
224  int m_nDirect {-1};
225 };
226 
228 {
229  public:
230  MHGenericOctetString() = default;
231  void Initialise(MHParseNode *p, MHEngine *engine);
232  void PrintMe(FILE *fd, int nTabs) const;
233  void GetValue(MHOctetString &str, MHEngine *engine) const; // Return the value, looking up any indirect ref.
234 protected:
236 };
237 
239 {
240  public:
241  MHGenericObjectRef() = default;
242  void Initialise(MHParseNode *p, MHEngine *engine);
243  void PrintMe(FILE *fd, int nTabs) const;
244  void GetValue(MHObjectRef &ref, MHEngine *engine) const; // Return the value, looking up any indirect ref.
245 protected:
247 };
248 
250 {
251  public:
252  MHGenericContentRef() = default;
253  void Initialise(MHParseNode *p, MHEngine *engine);
254  void PrintMe(FILE *fd, int nTabs) const;
255  void GetValue(MHContentRef &ref, MHEngine *engine) const; // Return the value, looking up any indirect ref.
256 protected:
258 };
259 
260 // In certain cases (e.g. parameters to Call) we have values which are the union of the base types.
262 {
263  public:
264  MHParameter() = default;
265  void Initialise(MHParseNode *p, MHEngine *engine);
266  void PrintMe(FILE *fd, int nTabs) const;
267  MHObjectRef *GetReference(); // Get an indirect reference.
268 
269  enum ParamTypes {
275  P_Null
276  } m_Type { P_Null }; // Null is used when this is optional
277 
283 };
284 
285 // A union type. Returned when a parameter is evaluated.
286 class MHUnion
287 {
288  public:
289  MHUnion() = default;
290  MHUnion(int nVal) : m_Type(U_Int), m_nIntVal(nVal) {}
291  MHUnion(bool fVal) : m_Type(U_Bool), m_fBoolVal(fVal) {}
292  MHUnion(const MHOctetString &strVal) : m_Type(U_String) { m_strVal.Copy(strVal); }
293  MHUnion(const MHObjectRef &objVal) : m_Type(U_ObjRef) { m_objRefVal.Copy(objVal); };
294  MHUnion(const MHContentRef &cnVal) : m_Type(U_ContentRef) { m_contentRefVal.Copy(cnVal); }
295 
296  MHUnion& operator=(const MHUnion&) = default;
297 
298  void GetValueFrom(const MHParameter &value, MHEngine *engine); // Copies the argument, getting the value of an indirect args.
299  QString Printable() const;
300 
302  void CheckType (enum UnionTypes t) const; // Check a type and fail if it doesn't match.
303  static const char *GetAsString(enum UnionTypes t);
304 
305  int m_nIntVal {0};
306  bool m_fBoolVal {false};
310 };
311 
312 class MHFontBody {
313  // A font body can either be a string or an object reference
314  public:
315  MHFontBody() = default;
316  void Initialise(MHParseNode *p, MHEngine *engine);
317  void PrintMe(FILE *fd, int nTabs) const;
318  bool IsSet() const { return m_dirFont.Size() != 0 || m_indirFont.IsSet(); }
319  void Copy(const MHFontBody &fb);
320 protected:
323 };
324 
325 // This is used only in DynamicLineArt
326 class MHPointArg {
327  public:
328  MHPointArg() = default;
329  void Initialise(MHParseNode *p, MHEngine *engine);
330  void PrintMe(FILE *fd, int nTabs) const;
332 };
333 
334 #endif
MHGenericObjectRef::m_objRef
MHObjectRef m_objRef
Definition: BaseClasses.h:246
MHPointArg::m_x
MHGenericInteger m_x
Definition: BaseClasses.h:331
MHGenericBase::m_indirect
MHObjectRef m_indirect
Definition: BaseClasses.h:202
MHObjectRef
Definition: BaseClasses.h:157
MHObjectRef::operator=
MHObjectRef & operator=(const MHObjectRef &)=default
MHUnion::GetAsString
static const char * GetAsString(enum UnionTypes t)
Definition: BaseClasses.cpp:660
MHSequence::operator[]
BASE operator[](int i) const
Definition: BaseClasses.h:53
MHObjectRef::Copy
void Copy(const MHObjectRef &objr)
Definition: BaseClasses.cpp:323
MHGenericOctetString
Definition: BaseClasses.h:228
MHGenericContentRef
Definition: BaseClasses.h:250
MHGenericBoolean::MHGenericBoolean
MHGenericBoolean()=default
MHContentRef::operator=
MHContentRef & operator=(const MHContentRef &)=default
MHObjectRef::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:278
MHStack::Push
void Push(BASE b)
Definition: BaseClasses.h:97
MHParameter::P_ObjRef
@ P_ObjRef
Definition: BaseClasses.h:273
MHParameter
Definition: BaseClasses.h:262
MHParameter::m_contentRefVal
MHGenericContentRef m_contentRefVal
Definition: BaseClasses.h:282
MHParameter::m_objRefVal
MHGenericObjectRef m_objRefVal
Definition: BaseClasses.h:281
MHUnion::MHUnion
MHUnion(const MHObjectRef &objVal)
Definition: BaseClasses.h:293
MHColour::m_nColIndex
int m_nColIndex
Definition: BaseClasses.h:151
MHGenericBoolean
Definition: BaseClasses.h:206
MHGenericOctetString::MHGenericOctetString
MHGenericOctetString()=default
MHParameter::GetReference
MHObjectRef * GetReference()
Definition: BaseClasses.cpp:768
MHUnion::CheckType
void CheckType(enum UnionTypes t) const
Definition: BaseClasses.cpp:681
MHParameter::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:733
MHEngine
Definition: Engine.h:72
MHObjectRef::m_groupId
MHOctetString m_groupId
Definition: BaseClasses.h:173
MHParameter::P_ContentRef
@ P_ContentRef
Definition: BaseClasses.h:274
MHObjectRef::m_nObjectNo
int m_nObjectNo
Definition: BaseClasses.h:172
MHUnion::m_nIntVal
int m_nIntVal
Definition: BaseClasses.h:305
MHOctetString::GetAt
unsigned char GetAt(int i) const
Definition: BaseClasses.h:127
MHOctetString::Bytes
const unsigned char * Bytes() const
Definition: BaseClasses.h:128
MHGenericContentRef::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:599
MHGenericInteger::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:397
MHOctetString::operator=
MHOctetString & operator=(const MHOctetString &o)
Definition: BaseClasses.h:121
MHParameter::P_String
@ P_String
Definition: BaseClasses.h:272
MHGenericInteger
Definition: BaseClasses.h:217
MHUnion::U_ObjRef
@ U_ObjRef
Definition: BaseClasses.h:301
MHObjectRef::Null
static MHObjectRef Null
Definition: BaseClasses.h:162
MHOctetString::Compare
int Compare(const MHOctetString &str) const
Definition: BaseClasses.cpp:177
MHUnion::U_Int
@ U_Int
Definition: BaseClasses.h:301
MHParameter::P_Int
@ P_Int
Definition: BaseClasses.h:270
MHStack::Size
int Size() const
Definition: BaseClasses.h:103
MHStack::Top
BASE Top()
Definition: BaseClasses.h:99
MHStack
Definition: BaseClasses.h:87
MHPointArg::MHPointArg
MHPointArg()=default
MHSequence
Definition: BaseClasses.h:44
MHGenericBoolean::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:343
MHGenericContentRef::m_direct
MHContentRef m_direct
Definition: BaseClasses.h:257
MHUnion::UnionTypes
UnionTypes
Definition: BaseClasses.h:301
MHOctetString
Definition: BaseClasses.h:111
MHParameter::P_Bool
@ P_Bool
Definition: BaseClasses.h:271
MHFontBody::IsSet
bool IsSet() const
Definition: BaseClasses.h:318
MHFontBody::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:809
mythburn.FILE
int FILE
Definition: mythburn.py:139
MHOctetString::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:154
MHSequence::m_vecSize
int m_vecSize
Definition: BaseClasses.h:75
MHUnion::m_fBoolVal
bool m_fBoolVal
Definition: BaseClasses.h:306
MHContentRef::MHContentRef
MHContentRef()=default
MHUnion::MHUnion
MHUnion(int nVal)
Definition: BaseClasses.h:290
MHObjectRef::IsSet
bool IsSet() const
Definition: BaseClasses.h:167
MHSequence::~MHSequence
~MHSequence()
Definition: BaseClasses.h:48
MHObjectRef::Equal
bool Equal(const MHObjectRef &objr, MHEngine *engine) const
Definition: BaseClasses.cpp:331
MHGenericObjectRef::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:533
MHContentRef::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:792
MHASSERT
#define MHASSERT(f)
Definition: Logging.h:30
MHColour::SetFromString
void SetFromString(const char *str, int nLen)
Definition: BaseClasses.cpp:260
MHFontBody::m_dirFont
MHOctetString m_dirFont
Definition: BaseClasses.h:321
MHParameter::ParamTypes
ParamTypes
Definition: BaseClasses.h:269
MHGenericBase::m_fIsDirect
bool m_fIsDirect
Definition: BaseClasses.h:200
MHGenericBase
Definition: BaseClasses.h:197
MHUnion::U_ContentRef
@ U_ContentRef
Definition: BaseClasses.h:301
MHGenericObjectRef::MHGenericObjectRef
MHGenericObjectRef()=default
MHColour::m_colStr
MHOctetString m_colStr
Definition: BaseClasses.h:150
MHContentRef::IsSet
bool IsSet() const
Definition: BaseClasses.h:187
MHUnion
Definition: BaseClasses.h:287
MHSequence::MHSequence
MHSequence()=default
MHColour::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:236
MHOctetString::MHOctetString
MHOctetString()
Definition: BaseClasses.cpp:34
hardwareprofile.config.p
p
Definition: config.py:33
hardwareprofile.i18n.t
t
Definition: i18n.py:36
MHUnion::MHUnion
MHUnion()=default
MHFontBody::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:797
MHUnion::m_objRefVal
MHObjectRef m_objRefVal
Definition: BaseClasses.h:308
MHGenericInteger::MHGenericInteger
MHGenericInteger()=default
MHGenericOctetString::GetValue
void GetValue(MHOctetString &str, MHEngine *engine) const
Definition: BaseClasses.cpp:505
MHGenericObjectRef
Definition: BaseClasses.h:239
MHParameter::MHParameter
MHParameter()=default
MHUnion::MHUnion
MHUnion(bool fVal)
Definition: BaseClasses.h:291
MHOwnPtrSequence::~MHOwnPtrSequence
~MHOwnPtrSequence()
Definition: BaseClasses.h:82
MHGenericOctetString::m_direct
MHOctetString m_direct
Definition: BaseClasses.h:235
MHColour
Definition: BaseClasses.h:142
MHUnion::operator=
MHUnion & operator=(const MHUnion &)=default
MHStack::Empty
bool Empty() const
Definition: BaseClasses.h:90
MHFontBody::m_indirFont
MHObjectRef m_indirFont
Definition: BaseClasses.h:322
MHContentRef::Printable
QString Printable() const
Definition: BaseClasses.h:190
MHGenericOctetString::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:491
MHGenericContentRef::MHGenericContentRef
MHGenericContentRef()=default
MHUnion::U_None
enum MHUnion::UnionTypes U_None
MHSequence::RemoveAt
void RemoveAt(int i)
Definition: BaseClasses.h:69
MHGenericContentRef::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:580
MHGenericBoolean::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:358
MHPointArg::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:827
MHParameter::m_boolVal
MHGenericBoolean m_boolVal
Definition: BaseClasses.h:279
MHParameter::m_intVal
MHGenericInteger m_intVal
Definition: BaseClasses.h:278
MHUnion::GetValueFrom
void GetValueFrom(const MHParameter &value, MHEngine *engine)
Definition: BaseClasses.cpp:630
MHGenericOctetString::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:476
MHUnion::m_contentRefVal
MHContentRef m_contentRefVal
Definition: BaseClasses.h:309
MHOctetString::Printable
QString Printable() const
Definition: BaseClasses.h:131
MHSequence::InsertAt
void InsertAt(BASE b, int n)
Definition: BaseClasses.h:56
MHPointArg::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:833
MHFontBody
Definition: BaseClasses.h:312
MHFontBody::Copy
void Copy(const MHFontBody &fb)
Definition: BaseClasses.cpp:821
MHOctetString::Size
int Size() const
Definition: BaseClasses.h:123
MHFontBody::MHFontBody
MHFontBody()=default
MHParameter::m_strVal
MHGenericOctetString m_strVal
Definition: BaseClasses.h:280
MHContentRef
Definition: BaseClasses.h:178
MHContentRef::Null
static MHContentRef Null
Definition: BaseClasses.h:189
MHOctetString::MHOctetString
MHOctetString(const MHOctetString &o)
Definition: BaseClasses.h:117
MHColour::MHColour
MHColour()=default
MHContentRef::m_contentRef
MHOctetString m_contentRef
Definition: BaseClasses.h:192
MHUnion::MHUnion
MHUnion(const MHOctetString &strVal)
Definition: BaseClasses.h:292
MHColour::IsSet
bool IsSet() const
Definition: BaseClasses.h:147
MHParameter::Initialise
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseClasses.cpp:704
MHColour::Copy
void Copy(const MHColour &col)
Definition: BaseClasses.cpp:266
MHPointArg
Definition: BaseClasses.h:326
MHSequence::Size
int Size() const
Definition: BaseClasses.h:50
MHUnion::Printable
QString Printable() const
Definition: BaseClasses.cpp:689
MHParseNode
Definition: ParseNode.h:39
MHUnion::U_String
@ U_String
Definition: BaseClasses.h:301
MHGenericInteger::GetValue
int GetValue(MHEngine *engine) const
Definition: BaseClasses.cpp:426
MHStack::Pop
BASE Pop()
Definition: BaseClasses.h:92
MHOctetString::m_pChars
unsigned char * m_pChars
Definition: BaseClasses.h:137
MHSequence::GetAt
BASE GetAt(int i) const
Definition: BaseClasses.h:52
MHParameter::P_Null
enum MHParameter::ParamTypes P_Null
MHOctetString::m_nLength
int m_nLength
Definition: BaseClasses.h:136
MHSequence::Append
void Append(BASE b)
Definition: BaseClasses.h:67
MHGenericInteger::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:412
MHOctetString::Equal
bool Equal(const MHOctetString &str) const
Definition: BaseClasses.h:126
MHGenericBase::GetReference
MHObjectRef * GetReference()
Definition: BaseClasses.cpp:387
Logging.h
MHSequence::m_values
BASE * m_values
Definition: BaseClasses.h:76
MHGenericObjectRef::GetValue
void GetValue(MHObjectRef &ref, MHEngine *engine) const
Definition: BaseClasses.cpp:562
MHGenericContentRef::GetValue
void GetValue(MHContentRef &ref, MHEngine *engine) const
Definition: BaseClasses.cpp:613
MHOctetString::~MHOctetString
virtual ~MHOctetString()
Definition: BaseClasses.cpp:125
MHContentRef::Equal
bool Equal(const MHContentRef &cr, MHEngine *engine) const
Definition: BaseClasses.cpp:336
MHGenericInteger::m_nDirect
int m_nDirect
Definition: BaseClasses.h:224
MHUnion::m_strVal
MHOctetString m_strVal
Definition: BaseClasses.h:307
MHContentRef::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.h:185
MHColour::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:248
MHContentRef::Copy
void Copy(const MHContentRef &cr)
Definition: BaseClasses.h:186
MHOctetString::Append
void Append(const MHOctetString &str)
Definition: BaseClasses.cpp:213
MHPointArg::m_y
MHGenericInteger m_y
Definition: BaseClasses.h:331
MHUnion::MHUnion
MHUnion(const MHContentRef &cnVal)
Definition: BaseClasses.h:294
MHGenericObjectRef::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:548
MHObjectRef::PrintMe
void PrintMe(FILE *fd, int nTabs) const
Definition: BaseClasses.cpp:299
MHOwnPtrSequence
Definition: BaseClasses.h:80
MHGenericBoolean::m_fDirect
bool m_fDirect
Definition: BaseClasses.h:213
MHObjectRef::MHObjectRef
MHObjectRef()=default
MHUnion::U_Bool
@ U_Bool
Definition: BaseClasses.h:301
MHOctetString::Copy
void Copy(const MHOctetString &str)
Definition: BaseClasses.cpp:131
MHPointVec
std::vector< int > MHPointVec
Definition: BaseClasses.h:34
MHObjectRef::Printable
QString Printable() const
Definition: BaseClasses.cpp:313
MHGenericBoolean::GetValue
bool GetValue(MHEngine *engine) const
Definition: BaseClasses.cpp:372