#include "temperature.h"

class Engine
{
    ENUM EngineType { GAS=0, ELECTRIC=1, HYBRID=2 }
    PROP(int cylinders = 4 CONSTANT);
    PROP(bool started);
    PROP(int rpm READWRITE);
    PROP(EngineType engineType=GAS PERSISTED)

    SLOT(bool start());
    SLOT(void increaseRpm(int deltaRpm));

    SLOT(void unnormalizedSignature(int a, int b));

    SLOT(Temperature temperature())
    SLOT(void setSharedTemperature(const Temperature::Ptr &sharedTemperature))

    SLOT(QString myTestString())
    SLOT(setMyTestString(QString value))
};
