File indexing completed on 2024-04-21 04:36:04

0001 /*
0002  * XDebug-specific implementation of thread and frame model.
0003  *
0004  * Copyright 2009 Niko Sams <nikol.sams@gmail.com>
0005  *
0006  * This program is free software; you can redistribute it and/or modify
0007  * it under the terms of the GNU General Public License as
0008  * published by the Free Software Foundation; either version 2 of the
0009  * License, or (at your option) any later version.
0010  *
0011  * This program is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014  * GNU General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU General Public
0017  * License along with this program; if not, write to the
0018  * Free Software Foundation, Inc.,
0019  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0020  */
0021 
0022 #ifndef XDEBUG_FRAMESTACKMODEL_H
0023 #define XDEBUG_FRAMESTACKMODEL_H
0024 
0025 #include <debugger/framestack/framestackmodel.h>
0026 
0027 #include "debugsession.h"
0028 
0029 class QDomDocument;
0030 namespace XDebug {
0031 class FrameStackModel
0032     : public KDevelop::FrameStackModel
0033 {
0034 public:
0035     FrameStackModel(DebugSession* session) : KDevelop::FrameStackModel(session) {}
0036 
0037 public:
0038     DebugSession* session() { return static_cast<DebugSession*>(KDevelop::FrameStackModel::session()); }
0039 
0040 protected: // KDevelop::FrameStackModel overrides
0041     void fetchThreads() override;
0042     void fetchFrames(int threadNumber, int from, int to) override;
0043 
0044 private:
0045     void handleStack(const QDomDocument& xml);
0046 };
0047 }
0048 
0049 #endif