Go to the documentation of this file.
9 #ifndef __IPTAGGEDOBJECT_HPP__
10 #define __IPTAGGEDOBJECT_HPP__
21 #ifndef IPOPT_THREAD_LOCAL
24 #define IPOPT_THREAD_LOCAL __declspec(thread)
25 #elif defined(__APPLE__) && defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 405)
26 #define IPOPT_THREAD_LOCAL
28 #define IPOPT_THREAD_LOCAL __thread
79 typedef unsigned int Tag;
109 return (comparison_tag ==
tag_) ? false :
true;
Index cache_priority_
The index indicating the cache priority for this TaggedObject.
TaggedObject()
Constructor.
TaggedObject(const TaggedObject &)
Copy Constructor.
Tag tag_
The tag indicating the current state of the object.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
static IPOPT_THREAD_LOCAL Tag unique_tag_
static data member that is incremented every time ANY TaggedObject changes.
virtual ~TaggedObject()
Destructor.
int Index
Type of all indices of vectors, matrices etc.
#define DBG_START_METH(__func_name, __verbose_level)
#define IPOPT_THREAD_LOCAL
void Notify(Observer::NotifyType notify_type) const
Tag GetTag() const
Users of TaggedObjects call this to update their own internal tags every time they perform the expens...
Slight Variation of the Observer Design Pattern (Subject part).
unsigned int Tag
Type for the Tag values.
void operator=(const TaggedObject &)
Overloaded Equals Operator.
bool HasChanged(const Tag comparison_tag) const
Users of TaggedObjects call this to check if the object HasChanged since they last updated their own ...