[dbus] add overload 'value' for custom dbus property types
[profile/ivi/automotive-message-broker.git] / plugins / dbus / maintenance.h
1 #ifndef _MAINTENANCE_H_
2 #define _MAINTENANCE_H_
3
4
5 #include "dbusplugin.h"
6 #include "abstractdbusinterface.h"
7 #include "abstractroutingengine.h"
8
9 /** @interface Odometer : VehiclePropertyType **/
10 class OdometerProperty: public DBusSink
11 {
12 public:
13         OdometerProperty(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
14                 :DBusSink("Odometer", re, connection, map<string, string>())
15         {
16                 /** @attributeName Odometer
17                  *  @type unsigned long
18                  *  @access readonly
19                  *  @attributeComment \brief MUST return Distance traveled in km
20                  **/
21                 wantPropertyVariant(VehicleProperty::Odometer, "Odometer", VariantType::Read);
22
23                 wantPropertyVariant(VehicleProperty::DistanceTotal, "DistanceTotal", VariantType::Read);
24                 wantPropertyVariant(VehicleProperty::DistanceSinceStart, "DistanceSinceStart", VariantType::Read);
25         }
26 };
27
28 /** @interface Fluid : VehiclePropertyType **/
29
30 class FluidProperty : public DBusSink
31 {
32 public:
33         FluidProperty(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
34                 :DBusSink("Fluid", re, connection, map<string, string>())
35         {
36                 wantPropertyVariant(VehicleProperty::TransmissionFluidLevel, "Transmission", VariantType::Read);
37         }
38 };
39
40 /** @interface Battery : VehiclePropertyType **/
41 class BatteryStatusProperty: public DBusSink
42 {
43 public:
44         BatteryStatusProperty(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
45                 :DBusSink("BatteryStatus", re, connection, map<string, string>())
46         {
47                 wantPropertyVariant(VehicleProperty::BatteryVoltage, "Voltage", VariantType::Read);
48                 wantPropertyVariant(VehicleProperty::BatteryCurrent, "Current", VariantType::Read);
49                 wantPropertyVariant(VehicleProperty::BatteryChargeLevel, "ChargeLevel", VariantType::Read);
50         }
51 };
52
53 /** @interface TirePressure : VehiclePropertyType **/
54 class TireProperty: public DBusSink
55 {
56 public:
57         TireProperty(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
58                 :DBusSink("Tire", re, connection, map<string, string>())
59         {
60                 wantPropertyVariant(VehicleProperty::TirePressure, "Pressure", VariantType::Read);
61                 wantPropertyVariant(VehicleProperty::TirePressureLow, "PressureLow", VariantType::Read);
62                 wantPropertyVariant(VehicleProperty::TireTemperature, "Temperature", VariantType::Read);
63         }
64 };
65
66
67 class EngineCoolant: public DBusSink
68 {
69 public:
70         EngineCoolant(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
71                 :DBusSink("EngineCoolant", re, connection, map<string, string>())
72         {
73                 wantPropertyVariant(VehicleProperty::EngineCoolantLevel, "Level", VariantType::Read);
74                 wantPropertyVariant(VehicleProperty::EngineCoolantTemperature, "Temperature", VariantType::Read);
75         }
76 };
77
78 class TransmissionOil: public DBusSink
79 {
80 public:
81         TransmissionOil(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
82                 :DBusSink("TransmissionOil", re, connection, map<string, string>())
83         {
84                 wantPropertyVariant(VehicleProperty::TransmissionOilWear, "Wear", VariantType::Read);
85                 wantPropertyVariant(VehicleProperty::TransmissionOilTemperature, "Temperature", VariantType::Read);
86         }
87 };
88
89 class TransmissionClutch: public DBusSink
90 {
91 public:
92         TransmissionClutch(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
93                 :DBusSink("TransmissionClutch", re, connection, map<string, string>())
94         {
95                 wantPropertyVariant(VehicleProperty::TransmissionClutchWear, "Wear", VariantType::Read);
96         }
97 };
98
99 class BrakeMaintenance: public DBusSink
100 {
101 public:
102         BrakeMaintenance(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
103                 :DBusSink("BrakeMaintenance", re, connection, map<string, string>())
104         {
105                 wantPropertyVariant(VehicleProperty::BrakePadWear, "PadWear", VariantType::Read);
106                 wantPropertyVariant(VehicleProperty::BrakeFluidLevel, "FluidLevel", VariantType::Read);
107                 wantPropertyVariant(VehicleProperty::BrakeFluidLevelLow, "FluidLevelLow", VariantType::Read);
108         }
109 };
110
111 class WasherFluid: public DBusSink
112 {
113 public:
114         WasherFluid(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
115                 :DBusSink("WasherFluid", re, connection, map<string, string>())
116         {
117                 wantPropertyVariant(VehicleProperty::WasherFluidLevel, "Level", VariantType::Read);
118                 wantPropertyVariant(VehicleProperty::WasherFluidLevelLow, "LevelLow", VariantType::Read);
119         }
120 };
121
122 class MalfunctionIndicator: public DBusSink
123 {
124 public:
125         MalfunctionIndicator(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
126                 :DBusSink("MalfunctionIndicator", re, connection, map<string, string>())
127         {
128                 wantPropertyVariant(VehicleProperty::MalfunctionIndicatorOn, "On", VariantType::Read);
129         }
130 };
131
132 class Diagnostics: public DBusSink
133 {
134 public:
135         Diagnostics(VehicleProperty::Property, AbstractRoutingEngine* re, GDBusConnection* connection)
136                 :DBusSink("Diagnostic", re, connection, map<string, string>())
137         {
138                 wantPropertyVariant(VehicleProperty::AccumulatedEngineRuntime, "AccumulatedEngineRuntime", VariantType::Read);
139                 wantPropertyVariant(VehicleProperty::DistanceWithMILOn, "DistanceWithMILOn", VariantType::Read);
140                 wantPropertyVariant(VehicleProperty::DistanceSinceCodeCleared, "DistanceSinceCodeCleared", VariantType::Read);
141                 wantPropertyVariant(VehicleProperty::TimeRunMILOn, "TimeRunMILOn", VariantType::Read);
142                 wantPropertyVariant(VehicleProperty::TimeTroubleCodeClear, "TimeTroubleCodeClear", VariantType::Read);
143         }
144 };
145
146 #endif