18 #include "pandabase.h" 20 #include "mutexHolder.h" 21 #include "atomicAdjust.h" 22 #include "numeric_types.h" 46 INLINE
static UpdateSeq initial();
47 INLINE
static UpdateSeq old();
48 INLINE
static UpdateSeq fresh();
50 INLINE UpdateSeq(
const UpdateSeq ©);
51 INLINE UpdateSeq &operator = (
const UpdateSeq ©);
55 INLINE
bool is_initial()
const;
56 INLINE
bool is_old()
const;
57 INLINE
bool is_fresh()
const;
58 INLINE
bool is_special()
const;
60 INLINE
bool operator == (
const UpdateSeq &other)
const;
61 INLINE
bool operator != (
const UpdateSeq &other)
const;
62 INLINE
bool operator < (
const UpdateSeq &other)
const;
63 INLINE
bool operator <= (
const UpdateSeq &other)
const;
64 INLINE
bool operator > (
const UpdateSeq &other)
const;
65 INLINE
bool operator >= (
const UpdateSeq &other)
const;
67 INLINE UpdateSeq operator ++ ();
68 INLINE UpdateSeq operator ++ (
int);
70 INLINE AtomicAdjust::Integer get_seq()
const;
72 INLINE
void output(ostream &out)
const;
75 INLINE
static bool priv_is_special(AtomicAdjust::Integer seq);
76 INLINE
static bool priv_lt(AtomicAdjust::Integer a, AtomicAdjust::Integer b);
77 INLINE
static bool priv_le(AtomicAdjust::Integer a, AtomicAdjust::Integer b);
83 SC_fresh = ~(
unsigned int)0,
86 AtomicAdjust::Integer _seq;
89 INLINE ostream &operator << (ostream &out,
const UpdateSeq &value);
91 #include "updateSeq.I" This is a sequence number that increments monotonically.