summaryrefslogtreecommitdiffstats
path: root/quanta/components/debugger/debuggerbreakpointlist.h
blob: 4ca26a95bb867fe16ffa07730b8f9c61ce475c13 (plain)
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
/***************************************************************************
                         debuggerbreakpointlist.h
                         ------------------------
    begin                : 2004-04-04
    copyright            : (C) 2004 Thiago Silva

 ***************************************************************************/

/****************************************************************************
 *                                                                          *
 *   This program is free software; you can redistribute it and/or modify   *
 *   it under the terms of the GNU General Public License as published by   *
 *   the Free Software Foundation; either version 2 of the License, or      *
 *   (at your option) any later version.                                    *
 *                                                                          *
 ***************************************************************************/

#ifndef DEBUGGERBREAKPOINTLIST_H
#define DEBUGGERBREAKPOINTLIST_H

#include <qobject.h>
#include <qstring.h>
#include <qvaluelist.h>

class DebuggerBreakpoint;
    typedef QValueList<DebuggerBreakpoint*> BreakpointList_t;

class DebuggerBreakpointList
{

  private:
    BreakpointList_t* m_breakpointList;
    BreakpointList_t::iterator m_current;
    BreakpointList_t::iterator find(const DebuggerBreakpoint &bp);

  public:
    DebuggerBreakpointList();
    ~DebuggerBreakpointList();

    void add(DebuggerBreakpoint*);
    void remove(DebuggerBreakpoint*);
    //int remove(QString filePath, int line);
    void clear();
    bool exists(DebuggerBreakpoint*);
    //bool exists(QString filePath, int line);

    DebuggerBreakpoint* retrieve(const QString& filePath, int line);

    DebuggerBreakpoint * findDebuggerBreakpoint(const QString& key);
    void updateBreakpointKey(const DebuggerBreakpoint &bp, const QString& newkey);

    size_t count();
    void rewind();
    DebuggerBreakpoint* next();

};

#endif