automotive-message-broker  0.14.803
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
ambqt.h
1 #ifndef AMBQT_H
2 #define AMBQT_H
3 
4 #include <QObject>
5 #include <QDBusInterface>
6 #include <QtDebug>
7 
8 #define AUTOPROPERTY(type, name, Name) \
9  public: \
10  void set ## Name(type s) { m ## Name = s; } \
11  type name() { return m ## Name; } \
12  private: \
13  type m ## Name;
14 
15 class QDBusInterface;
16 
17 class AmbProperty: public QObject
18 {
19  Q_OBJECT
20  Q_PROPERTY(QString propertyName READ propertyName WRITE setPropertyName)
21  AUTOPROPERTY(QString, propertyName, PropertyName)
22  Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged)
23  Q_PROPERTY(QString interfaceName READ interfaceName WRITE setInterfaceName)
24  AUTOPROPERTY(QString, interfaceName, InterfaceName)
25  Q_PROPERTY(QString objectPath READ objectPath WRITE setObjectPath)
26  AUTOPROPERTY(QString, objectPath, ObjectPath)
27  Q_PROPERTY(int zone READ zone WRITE setZone)
28  AUTOPROPERTY(int, zone, Zone)
29  Q_PROPERTY(double time READ time)
30 
31 
32  public:
33 
34  AmbProperty():mDBusInterface(NULL),mZone(0),mTime(0) { }
35 
36  AmbProperty(QString op, QString iface, QString propName);
37 
38  QVariant value()
39  {
40  return mValue;
41  }
42 
43  void setValue(QVariant v)
44  {
45  if(!mDBusInterface || !mDBusInterface->isValid())
46  {
47  qDebug()<<"error Interface is not valid "<<interfaceName();
48  }
49 
50  mDBusInterface->setProperty(propertyName().toUtf8(), v);
51  }
52 
53  double time(){ return mTime; }
54 
55 Q_SIGNALS:
56  void valueChanged(QVariant val);
57 
59  void signalChanged(QVariant val);
60 
61 public Q_SLOTS:
62  void connect();
63 
64 private Q_SLOTS:
65  void propertyChangedSlot(QString, QVariantMap values, QVariantMap);
66  void propertyChanged1(QDBusVariant, double);
67 
68 private:
69  void getObjectPath();
70  QDBusInterface* mDBusInterface;
71  double mTime;
72  QVariant mValue;
73 };
74 
75 #endif // AMBQT_H