9 #ifndef __IPTAGGEDOBJECT_HPP__
10 #define __IPTAGGEDOBJECT_HPP__
22 #ifndef IPOPT_THREAD_LOCAL
25 #define IPOPT_THREAD_LOCAL __declspec(thread)
26 #elif defined(__APPLE__) && ((defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 405)) || defined(__INTEL_COMPILER))
27 #define IPOPT_THREAD_LOCAL
29 #define IPOPT_THREAD_LOCAL __thread
80 typedef unsigned int Tag;
110 return (comparison_tag ==
tag_) ?
false :
true;
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.
static IPOPT_THREAD_LOCAL Tag unique_tag_
static data member that is incremented every time ANY TaggedObject changes.
unsigned int Tag
Type for the Tag values.
Tag tag_
The tag indicating the current state of the object.
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...
#define IPOPT_THREAD_LOCAL
virtual ~TaggedObject()
Destructor.