1/*
2 * BluezQt - Asynchronous BlueZ wrapper library
3 *
4 * SPDX-FileCopyrightText: 2019 Manuel Weichselbaumer <mincequi@web.de>
5 *
6 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8
9#ifndef INTERFACE_H
10#define INTERFACE_H
11
12#include "Methods.h"
13#include "Properties.h"
14
15class Interface
16{
17public:
18 Interface();
19
20 bool parse(const QString &line);
21 bool finalize();
22
23 QStringList comment() const;
24 QString service() const;
25 QString name() const;
26 QString objectPath() const;
27 Methods methods() const;
28 Properties properties() const;
29
30private:
31 enum class State {
32 Comment,
33 Service,
34 Interface,
35 ObjectPath,
36 Methods,
37 Properties,
38 };
39
40 void parseComment(const QString &line);
41 void parseService(const QString &line);
42 void parseInterface(const QString &line);
43 void parseObjectPath(const QString &line);
44
45 State m_state = State::Comment;
46
47 QStringList m_comment;
48 QString m_service;
49 QString m_name;
50 QString m_objectPath;
51 Methods m_methods;
52 Properties m_properties;
53};
54
55#endif // INTERFACE_H
56

source code of bluez-qt/tools/bluezapi2qt/Interface.h