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;
#define DBG_START_METH(__func_name, __verbose_level)
#define IPOPT_THREAD_LOCAL
Slight Variation of the Observer Design Pattern (Subject part).
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...
TaggedObject(const TaggedObject &)
Copy Constructor.
void ObjectChanged()
Objects derived from TaggedObject MUST call this method every time their internal state changes to up...
bool HasChanged(const Tag comparison_tag) const
Users of TaggedObjects call this to check if the object HasChanged since they last updated their own ...
unsigned int Tag
Type for the Tag values.
Tag tag_
The tag indicating the current state of the object.
TaggedObject()
Constructor.
void operator=(const TaggedObject &)
Overloaded Equals Operator.
Index cache_priority_
The index indicating the cache priority for this TaggedObject.
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.