/* * Cacheable_threeNumbers.hpp * * Created on: Jun 19, 2015 * Author: heber */ #ifndef CACHEABLETHREENUMBERS_HPP_ #define CACHEABLETHREENUMBERS_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "CodePatterns/Cacheable.hpp" #include "CodePatterns/Observer/Observable.hpp" #include "CodePatterns/Observer/Notification.hpp" class Cacheable_threeNumbers : public Observable { public: int x; int y; int z; Cacheable sum; mutable bool hasRecalced; enum NotificationType { XChanged, YChanged, ZChanged, NotificationType_MAX }; void setX(int _x); void setY(int _y); void setZ(int _z); int calcSum() const; Cacheable_threeNumbers( int _x, int _y, int _z, Observable::channels_t channels = Observable::channels_t()); }; #endif /* CACHEABLETHREENUMBERS_HPP_ */