9 #ifndef __IPTAGGEDOBJECT_HPP__
10 #define __IPTAGGEDOBJECT_HPP__
70 typedef std::pair<const TaggedObject*, unsigned int>
Tag;
103 return (comparison_tag.first !=
this) || (comparison_tag.second !=
tagcount_);
void Notify(Observer::NotifyType notify_type) const
#define DBG_START_METH(__func_name, __verbose_level)
void operator=(const TaggedObject &)
Overloaded Equals Operator.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
TaggedObject()
Constructor.
Index cache_priority_
The index indicating the cache priority for this TaggedObject.
Slight Variation of the Observer Design Pattern (Subject part).
int Index
Type of all indices of vectors, matrices etc.
Tag::second_type tagcount_
The tag indicating the current state of the object.
std::pair< const TaggedObject *, unsigned int > Tag
Type for the Tag values.
bool HasChanged(const Tag comparison_tag) const
Users of TaggedObjects call this to check if the object HasChanged since they last updated their own ...
Tag GetTag() const
Users of TaggedObjects call this to update their own internal tags every time they perform the expens...
virtual ~TaggedObject()
Destructor.
TaggedObject::Tag operator+(const TaggedObject::Tag &tag1, const TaggedObject::Tag &tag2)
The addition of two tags - do not use.