22 #ifndef _cvc3__include__smartcdo_h_
23 #define _cvc3__include__smartcdo_h_
69 d_ref->d_delay =
false;
113 if (
this == &cdo)
return *
this;
120 void set(
const T& data,
int scope=-1)
const {
124 const T&
get()
const {
128 operator T()
const {
return get(); }
bool isNull() const
Check if the SmartCDO object is Null.
const SmartCDO< T > & operator=(const T &data) const
RefCDO(Context *context, const U &cdo, int scope=-1)
SmartCDO(Context *context)
Create and initialize SmartCDO object at the current scope.
#define DebugAssert(cond, str)
friend class RefNotifyObj
SmartCDO(const SmartCDO< T > &cdo)
SmartCDO< T > & operator=(const SmartCDO< T > &cdo)
RefNotifyObj * d_notifyObj
SmartCDO(Context *context, const T &data, int scope=-1)
Create and initialize SmartCDO object at the given scope.
void set(const T &data, int scope=-1) const
bool d_delay
Whether to delay our own deletion.
void kill()
Delete itself, unless delayed (then we'll be called again later)
SmartCDO()
Default constructor: create a Null SmartCDO object.
RefNotifyObj(RefCDO< U > *ref, Context *context)
Constructor.