source: dev/branches/egtra/ab5.0/abdev/BasicCompiler_Common/include/BreakPoint.h@ 829

Last change on this file since 829 was 817, checked in by イグトランス (egtra), 13 years ago

compilerにおいて、各クラスのコピー禁止を明確化、ならびにコピー可能なものにムーブコンストラクタ・ムーブ代入演算子を追加。

File size: 1.3 KB
RevLine 
[4]1
2
[648]3class BreakPointsPerFile
4{
[4]5public:
[648]6 std::string filename;
7 std::vector<int> lines;
[4]8
[725]9 BreakPointsPerFile(const char *lpszFileName,int iLineNum);
[4]10
[817]11 BreakPointsPerFile(BreakPointsPerFile&& y)
12 : filename(std::move(y.filename))
13 , lines(std::move(y.lines))
14 {
15 }
16
17 BreakPointsPerFile(BreakPointsPerFile const& y)
18 : filename(y.filename)
19 , lines(y.lines)
20 {
21 }
22
23 BreakPointsPerFile& operator =(BreakPointsPerFile&& y)
24 {
25 filename = std::move(y.filename);
26 lines = std::move(y.lines);
27 return *this;
28 }
29
30 BreakPointsPerFile& operator =(BreakPointsPerFile const& y)
31 {
32 return *this = std::move(BreakPointsPerFile(y));
33 }
34
[4]35 void add(int iLineNum);
36 void remove(int iLineNum);
37
[743]38 void update( char *nativeCodeBuffer, const SourceLines &sourceLines );
[817]39
[4]40};
[648]41typedef std::vector<BreakPointsPerFile> BreakPointsPerFiles;
[4]42
[648]43class BreakPointManager
44{
45 BreakPointsPerFiles breakpointsPerFiles;
[4]46
47public:
[648]48 BreakPointManager();
[4]49
[725]50 void insert(const char *lpszFileName,int iLineNum);
51 void remove(const char *lpszFileName,int iLineNum);
[4]52
[743]53 char *update( char *nativeCodeBuffer, int SizeOf_CodeSection, const SourceLines &sourceLines );
[817]54
55private:
56 BreakPointManager(BreakPointManager const&);
57 BreakPointManager& operator =(BreakPointManager const&);
[4]58};
59
60
[648]61extern BreakPointManager *pobj_DBBreakPoint;
Note: See TracBrowser for help on using the repository browser.