1 | // Copyright (C) 2023 basysKom GmbH, opensource@basyskom.com |
---|---|
2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
3 | |
4 | #include "enumeratedtype.h" |
5 | #include "enumeratedvalue.h" |
6 | #include "visitor.h" |
7 | |
8 | #include <QtCore/qdebug.h> |
9 | |
10 | EnumeratedType::EnumeratedType(const QString &name, quint32 lengthInBits) |
11 | : XmlElement(name) |
12 | , m_lengthInBits(lengthInBits) |
13 | {} |
14 | |
15 | EnumeratedType::~EnumeratedType() |
16 | { |
17 | qDeleteAll(c: m_values); |
18 | } |
19 | |
20 | quint32 EnumeratedType::lengthInBits() const |
21 | { |
22 | return m_lengthInBits; |
23 | } |
24 | |
25 | void EnumeratedType::setLengthInBits(quint32 lengthInBits) |
26 | { |
27 | m_lengthInBits = lengthInBits; |
28 | } |
29 | |
30 | void EnumeratedType::addValue(EnumeratedValue *enumeratedValue) |
31 | { |
32 | m_values.push_back(t: enumeratedValue); |
33 | } |
34 | |
35 | void EnumeratedType::print() const |
36 | { |
37 | XmlElement::print(); |
38 | qDebug() << "LengthInBits: "<< m_lengthInBits; |
39 | for (int i = 0; i < m_values.size(); i++) |
40 | m_values.at(i)->print(); |
41 | } |
42 | |
43 | void EnumeratedType::accept(Visitor *visitor) |
44 | { |
45 | visitor->visit(enumteratedType: this); |
46 | for (auto &enumeratedValues : m_values) |
47 | enumeratedValues->accept(visitor); |
48 | } |
49 | |
50 | QList<EnumeratedValue *> EnumeratedType::values() const |
51 | { |
52 | return m_values; |
53 | } |
54 | |
55 | void EnumeratedType::setValues(const QList<EnumeratedValue *> &values) |
56 | { |
57 | m_values = values; |
58 | } |
59 |