#ifndef ENTITY_H #define ENTITY_H #include #include #include class Entity { public: enum class State { NEW, UPDATED, CLEAN }; virtual ~Entity() = 0; const boost::uuids::uuid& getUuid() const { return uuid_; }; void createUuid(); void createUuidFromString(const std::string& uuidString); virtual State getState() const; void setState(State state) { state_ = state; } private: boost::uuids::uuid uuid_{}; State state_{State::NEW}; }; #endif // ENTITY_H