File: dbgModel.h

package info (click to toggle)
pgadmin3 1.20.0~beta2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 73,704 kB
  • ctags: 18,591
  • sloc: cpp: 193,786; ansic: 18,736; sh: 5,154; pascal: 1,120; yacc: 927; makefile: 516; lex: 421; xml: 126; perl: 40
file content (142 lines) | stat: -rw-r--r-- 3,087 bytes parent folder | download
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// dbgModel.h - Debugger Model
//
//////////////////////////////////////////////////////////////////////////

#ifndef DBGMODEL_H
#define DBGMODEL_H

#include <wx/wx.h>

#include "debugger/dbgBreakPoint.h"
#include "debugger/dbgTargetInfo.h"

class dbgCachedStack
{
public:
	dbgCachedStack() {}
	dbgCachedStack(const wxString &_pkg, const wxString &_func,
	               const wxString &_target, const wxString &_arg, const wxString &_src)
		: m_func(_func), m_pkg(_pkg), m_source(_src),
		  m_target(_target), m_arg(_arg) {}

	dbgCachedStack(const dbgCachedStack &_src)
		: m_func(_src.m_func), m_pkg(_src.m_pkg), m_source(_src.m_source),
		  m_target(_src.m_target), m_arg(_src.m_arg) {}

	dbgCachedStack &operator =(const dbgCachedStack &_src)
	{
		m_func   = _src.m_func;
		m_pkg    = _src.m_pkg;
		m_source = _src.m_source;
		m_target = _src.m_target;
		m_arg    = _src.m_arg;

		return *this;
	}

private:
	wxString    m_pkg;    // Package OID
	wxString    m_func;   // Function OID
	wxString    m_target; // Target Name
	wxString	m_arg;	  // Argument passed to the target
	wxString	m_source;  // Source code for this function

	friend class frmDebugger;
};

WX_DECLARE_STRING_HASH_MAP(dbgCachedStack, dbgSourceHash);

class dbgModel
{
public:
	dbgModel(Oid _target, pgConn *_conn);

	dbgTargetInfo *GetTarget()
	{
		return m_target;
	}
	dbgBreakPointList &GetBreakPoints()
	{
		return m_breakpoints;
	}

	wxString &GetPort()
	{
		return m_port;
	}
	wxString &GetSession()
	{
		return m_session;
	}
	wxString &GetTargetPid()
	{
		return m_targetPid;
	}

	bool GetSource(const wxString &_funcOid, dbgCachedStack *_cached = NULL);
	void ClearCachedSource();
	void AddSource(const wxString &_funcOid, const dbgCachedStack &cached);

	bool RequireDisplayUpdate()
	{
		return (m_focusedFuncOid != m_displayedFuncOid ||
		        m_displayedPkgOid != m_focusedPkgOid);
	}

	wxString &GetFocusedPackage()
	{
		return m_focusedPkgOid;
	}
	wxString &GetDisplayedPackage()
	{
		return m_displayedPkgOid;
	}
	wxString &GetFocusedFunction()
	{
		return m_focusedFuncOid;
	}
	wxString &GetDisplayedFunction()
	{
		return m_displayedFuncOid;
	}

	int      &GetCurrLineNo()
	{
		return m_currLineNo;
	}

private:
	// Target Information
	dbgTargetInfo     *m_target;

	// Break-Points
	dbgBreakPointList  m_breakpoints;

	// Debugging Port, session-handle & target-backend pid
	wxString           m_port;
	wxString           m_session;
	wxString           m_targetPid;

	// Cached source-code for the stacked functions
	dbgSourceHash      m_sourceMap;

	// Current focused function-information
	wxString           m_focusedFuncOid;
	wxString           m_focusedPkgOid;

	// Current displayed function-information
	wxString           m_displayedFuncOid;
	wxString           m_displayedPkgOid;

	// Current Line number
	int                m_currLineNo;
};

#endif