Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

ExprHandle.h

Go to the documentation of this file.
00001 #ifndef EXPRHANDLE_H
00002 #define EXPRHANDLE_H
00003 
00004 #include "SundanceDefs.h"
00005 #include "ExprBase.h"
00006 
00007 namespace Sundance
00008 {
00009 
00010   using namespace TSF;
00011   using std::string;
00012 
00013   using std::ostream;
00014 
00015 
00016   /** \ingroup LowLevelSymbolics
00017    * reference-counting handle for ExprBase.
00018    */
00019 
00020   class ExprHandle
00021     {
00022     public:
00023       /** \name Developer-only methods */
00024       //@{
00025       /** construct given a ExprBase ptr */
00026       ExprHandle(ExprBase* ptr);
00027       /** */
00028       ~ExprHandle();
00029       /** */
00030       ExprHandle(const ExprHandle& other);
00031 
00032       /** */
00033       const ExprBase* ptr() const {return ptr_;}
00034       /** */
00035       ExprBase* ptr() {return ptr_;}
00036       /** */
00037       void killCopy();
00038       /** */
00039       void fullForm(ostream& os) const ;
00040       //@}
00041     private:
00042       const ExprHandle& operator=(const ExprHandle& other);
00043       ExprBase* ptr_;
00044       int* refCount_;
00045     };
00046 
00047 
00048 }
00049 #endif

Contact:
Kevin Long (krlong@ca.sandia.gov)


Documentation generated by