File indexing completed on 2024-04-14 04:31:23

0001 /*
0002    Copyright 2009 Niko Sams <niko.sams@gmail.com>
0003 
0004    This library is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU Library General Public
0006    License version 2 as published by the Free Software Foundation.
0007 
0008    This library is distributed in the hope that it will be useful,
0009    but WITHOUT ANY WARRANTY; without even the implied warranty of
0010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0011    Library General Public License for more details.
0012 
0013    You should have received a copy of the GNU Library General Public License
0014    along with this library; see the file COPYING.LIB.  If not, write to
0015    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0016    Boston, MA 02110-1301, USA.
0017  */
0018 
0019 #ifndef XDEBUG_BREAKPOINTCONTROLLER_H
0020 #define XDEBUG_BREAKPOINTCONTROLLER_H
0021 
0022 #include <debugger/interfaces/ibreakpointcontroller.h>
0023 #include <debugger/interfaces/idebugsession.h>
0024 
0025 class QDomDocument;
0026 namespace XDebug {
0027 class DebugSession;
0028 
0029 class BreakpointController
0030     : public KDevelop::IBreakpointController
0031 {
0032     Q_OBJECT
0033 
0034 public:
0035     BreakpointController(DebugSession* parent);
0036 
0037 protected:
0038     void sendMaybe(KDevelop::Breakpoint* breakpoint) override;
0039 
0040 private slots:
0041     void stateChanged(KDevelop::IDebugSession::DebuggerState state);
0042 
0043 private:
0044     DebugSession* debugSession();
0045     void handleSetBreakpoint(KDevelop::Breakpoint* breakpoint, const QDomDocument& xml);
0046     void handleBreakpointList(const QDomDocument& xml);
0047 
0048     QMap<KDevelop::Breakpoint*, QString> m_ids;
0049 };
0050 }
0051 
0052 #endif // XDEBUG_BREAKPOINTCONTROLLER_H