aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/script/debugger/sourcecodeline.h
blob: a3a341acb6f8c45cb1c72e50ae98eb711d4613c6 (plain) (blame)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#ifndef __SOURCECODELINE_H
#define __SOURCECODELINE_H

#include <bfc/dispatch.h>
#include <bfc/string/StringW.h>


class SourceCodeLine : public Dispatchable {
  public:
    const wchar_t *getLine();
    void setLine(const wchar_t *line);
    int getPointer();
    void setPointer(int pointer);
    int getLength();
    void setLength(int length);
    void setSourceFile(const wchar_t *file);
    const wchar_t *getSourceFile();
    void setSourceFileLine(int linenumber);
    int getSourceFileLine();

  enum {
    SOURCECODELINE_GETLINE = 0,
    SOURCECODELINE_SETLINE = 10,
    SOURCECODELINE_GETPOINTER = 20,
    SOURCECODELINE_SETPOINTER = 30,
    SOURCECODELINE_GETLENGTH = 40,
    SOURCECODELINE_SETLENGTH = 50,
    SOURCECODELINE_SETSOURCEFILE = 60,
    SOURCECODELINE_GETSOURCEFILE = 70,
    SOURCECODELINE_SETSOURCEFILELINE = 80,
    SOURCECODELINE_GETSOURCEFILELINE = 90,
  };
};

inline const wchar_t *SourceCodeLine::getLine() {
  return _call(SOURCECODELINE_GETLINE, (const wchar_t*)NULL);
}

inline void SourceCodeLine::setLine(const wchar_t *line) {
  _voidcall(SOURCECODELINE_SETLINE, line);
}

inline int SourceCodeLine::getPointer() {
  return _call(SOURCECODELINE_GETPOINTER, (int)0);
}

inline void SourceCodeLine::setPointer(int pointer) {
  _voidcall(SOURCECODELINE_SETPOINTER, pointer);
}

inline int SourceCodeLine::getLength() {
  return _call(SOURCECODELINE_GETLENGTH, (int)0);
}

inline void SourceCodeLine::setLength(int length) {
  _voidcall(SOURCECODELINE_SETLENGTH, length);
}

inline void SourceCodeLine::setSourceFile(const wchar_t *file) {
  _voidcall(SOURCECODELINE_SETSOURCEFILE, file);
}

inline const wchar_t *SourceCodeLine::getSourceFile() {
  return _call(SOURCECODELINE_GETSOURCEFILE, (const wchar_t *)0);
}

inline void SourceCodeLine::setSourceFileLine(int linenumber) {
  _voidcall(SOURCECODELINE_SETSOURCEFILELINE, linenumber);
}

inline int SourceCodeLine::getSourceFileLine() {
  return _call(SOURCECODELINE_GETSOURCEFILELINE, (int)0);
}

class SourceCodeLineI : public SourceCodeLine {
  public:
    SourceCodeLineI();
    virtual ~SourceCodeLineI();
    virtual const wchar_t *getLine();
    virtual void setLine(const wchar_t *line);
    virtual int getPointer();
    virtual void setPointer(int pointer);
    virtual int getLength();
    virtual void setLength(int length);
    virtual void setSourceFile(const wchar_t *file);
    virtual const wchar_t *getSourceFile();
    virtual void setSourceFileLine(int linenumber);
    virtual int getSourceFileLine();

  protected:
    RECVS_DISPATCH;

      StringW line;
      StringW file;
      int fileline;
      int pointer;
      int length;
};

#endif