File indexing completed on 2024-05-05 05:51:35

0001 //
0002 // Description: GDB variable parser
0003 //
0004 // SPDX-FileCopyrightText: 2010 Kåre Särs <kare.sars@iki.fi>
0005 // SPDX-FileCopyrightText: 2023 Rémi Peuchot <kde.remi@proton.me>
0006 //
0007 // SPDX-License-Identifier: LGPL-2.0-only
0008 
0009 #pragma once
0010 
0011 #include "dap/entities.h"
0012 #include <QObject>
0013 
0014 class GDBVariableParser : public QObject
0015 {
0016     Q_OBJECT
0017 public:
0018     GDBVariableParser(QObject *parent = nullptr);
0019 
0020     void insertVariable(const QString &name, const QString &value, const QString &type, bool changed = false);
0021 
0022 Q_SIGNALS:
0023     void variable(int parentId, const dap::Variable &variable);
0024 
0025 private:
0026     int createAndSignalVariable(int parentId, const QStringView name, const QStringView value, const QString &type, bool changed);
0027     void insertVariable(int parentId, int itemIndex, QStringView &tail, const QString &type, bool changed);
0028     void insertNamedVariable(int parentId, QStringView name, int itemIndex, QStringView &tail, const QString &type, bool changed);
0029 
0030     int m_variableId = 0;
0031 };