CVC3
Classes | Public Member Functions | Private Attributes | List of all members
CVC3::SmartCDO< T > Class Template Reference

SmartCDO. More...

#include <smartcdo.h>

Collaboration diagram for CVC3::SmartCDO< T >:
Collaboration graph

Classes

class  RefCDO
 

Public Member Functions

bool isNull () const
 Check if the SmartCDO object is Null.
 
 SmartCDO ()
 Default constructor: create a Null SmartCDO object.
 
 SmartCDO (Context *context)
 Create and initialize SmartCDO object at the current scope.
 
 SmartCDO (Context *context, const T &data, int scope=-1)
 Create and initialize SmartCDO object at the given scope.
 
 ~SmartCDO ()
 Delete.
 
 SmartCDO (const SmartCDO< T > &cdo)
 
SmartCDO< T > & operator= (const SmartCDO< T > &cdo)
 
void set (const T &data, int scope=-1) const
 
const T & get () const
 
 operator T () const
 
const SmartCDO< T > & operator= (const T &data) const
 

Private Attributes

RefCDO< T > * d_data
 

Detailed Description

template<class T>
class CVC3::SmartCDO< T >

SmartCDO.

Author: Clark Barrett

Created: Fri Nov 12 17:33:31 2004

Wrapper for CDO which automatically allocates and deletes a pointer to a CDO. This allows the copy constructor and operator= to be defined which are especially useful for storing CDO's in vectors. All operations are const to enable use as a member of CDLists.

Be careful not to delete RefCDO during pop(), since this messes up the backtracking data structures. We delay the deletion by registering each RefCDO to be notified before and after each pop(). This makes the use of SmartCDO somewhat more expensive, so use it with care.

Definition at line 52 of file smartcdo.h.

Constructor & Destructor Documentation

template<class T>
CVC3::SmartCDO< T >::SmartCDO ( )
inline

Default constructor: create a Null SmartCDO object.

Definition at line 96 of file smartcdo.h.

template<class T>
CVC3::SmartCDO< T >::SmartCDO ( Context context)
inline

Create and initialize SmartCDO object at the current scope.

Definition at line 98 of file smartcdo.h.

template<class T>
CVC3::SmartCDO< T >::SmartCDO ( Context context,
const T &  data,
int  scope = -1 
)
inline

Create and initialize SmartCDO object at the given scope.

Definition at line 101 of file smartcdo.h.

template<class T>
CVC3::SmartCDO< T >::~SmartCDO ( )
inline

Delete.

Definition at line 104 of file smartcdo.h.

template<class T>
CVC3::SmartCDO< T >::SmartCDO ( const SmartCDO< T > &  cdo)
inline

Definition at line 108 of file smartcdo.h.

Member Function Documentation

template<class T>
bool CVC3::SmartCDO< T >::isNull ( ) const
inline
template<class T>
SmartCDO<T>& CVC3::SmartCDO< T >::operator= ( const SmartCDO< T > &  cdo)
inline

Definition at line 111 of file smartcdo.h.

template<class T>
void CVC3::SmartCDO< T >::set ( const T &  data,
int  scope = -1 
) const
inline

Definition at line 120 of file smartcdo.h.

template<class T>
const T& CVC3::SmartCDO< T >::get ( ) const
inline

Definition at line 124 of file smartcdo.h.

template<class T>
CVC3::SmartCDO< T >::operator T ( ) const
inline

Definition at line 128 of file smartcdo.h.

template<class T>
const SmartCDO<T>& CVC3::SmartCDO< T >::operator= ( const T &  data) const
inline

Definition at line 129 of file smartcdo.h.

Member Data Documentation

template<class T>
RefCDO<T>* CVC3::SmartCDO< T >::d_data
private

The documentation for this class was generated from the following file: