File: mpParserMessageProvider.h

package info (click to toggle)
muparserx 4.0.12-2.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,240 kB
  • sloc: cpp: 10,953; ansic: 28; makefile: 8
file content (61 lines) | stat: -rw-r--r-- 1,686 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef MP_PARSER_MESSAGE_PROVIDER_H
#define MP_PARSER_MESSAGE_PROVIDER_H

#include <vector>
#include <memory>

#include "mpDefines.h"
#include "mpTypes.h"


MUP_NAMESPACE_START

  //-----------------------------------------------------------------------------------------------
  /** \brief Base class for Parser Message providing classes. */
  class ParserMessageProviderBase
  {
  friend class std::unique_ptr<ParserMessageProviderBase>;

  public:
    ParserMessageProviderBase();
    virtual ~ParserMessageProviderBase();

    void Init();
    string_type GetErrorMsg(EErrorCodes errc) const;

  private:
    // Disable CC and assignment operator for this class and derivatives
    ParserMessageProviderBase(const ParserMessageProviderBase &ref);
    ParserMessageProviderBase& operator=(const ParserMessageProviderBase &ref);

  protected:
    std::vector<string_type>  m_vErrMsg;

    virtual void InitErrorMessages() = 0;
  };

  //-----------------------------------------------------------------------------------------------
  /** \brief English versions of parser messages. */
  class ParserMessageProviderEnglish : public ParserMessageProviderBase
  {
  public:
    ParserMessageProviderEnglish();

  protected:
    virtual void InitErrorMessages();
  };

  //-----------------------------------------------------------------------------------------------
  /** \brief German versions of parser messages. */
  class ParserMessageProviderGerman : public ParserMessageProviderBase
  {
  public:
    ParserMessageProviderGerman();

  protected:
    virtual void InitErrorMessages();
  };

MUP_NAMESPACE_END

#endif