CVC3::Scope Class Reference
[Context Management]

#include <context.h>

Collaboration diagram for CVC3::Scope:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Private Member Functions

Private Attributes

Friends


Detailed Description

Author: Clark Barrett

Created: Thu Feb 13 00:19:15 2003

A scope encapsulates the portion of a context which has changed since the last call to push(). Thus, when pop() is called, everything in this scope is restored to its previous state.

Definition at line 58 of file context.h.


Constructor & Destructor Documentation

CVC3::Scope::Scope ( Context context,
ContextMemoryManager cmm,
Scope prevScope = NULL 
) [inline]

Constructor.

Definition at line 83 of file context.h.

References d_level, level(), and prevScope().

CVC3::Scope::~Scope (  )  [inline]

Destructor.

Definition at line 89 of file context.h.


Member Function Documentation

Scope* CVC3::Scope::prevScope (  )  const [inline]

Access functions.

Definition at line 92 of file context.h.

References d_prevScope.

Referenced by CVC3::Context::getMemory(), CVC3::Context::pop(), Scope(), CVC3::ContextObj::update(), CVC3::CDFlags::update(), and CVC3::Context::~Context().

int CVC3::Scope::level ( void   )  const [inline]

Definition at line 93 of file context.h.

References d_level.

Referenced by CVC3::Context::getMemory(), Scope(), CVC3::ContextObj::update(), and CVC3::CDFlags::update().

Context* CVC3::Scope::getContext (  )  const [inline]

Definition at line 96 of file context.h.

References d_context.

ContextMemoryManager* CVC3::Scope::getCMM (  )  const [inline]

Definition at line 97 of file context.h.

References d_cmm.

Referenced by CVC3::Context::getMemory(), CVC3::Context::pop(), CVC3::CDFlags::update(), and CVC3::Context::~Context().

void* CVC3::Scope::operator new ( size_t  size,
MemoryManager mm 
) [inline]

Definition at line 99 of file context.h.

References CVC3::MemoryManager::newData().

void CVC3::Scope::operator delete ( void *  pMem,
MemoryManager mm 
) [inline]

Definition at line 101 of file context.h.

References CVC3::MemoryManager::deleteData().

void CVC3::Scope::operator delete ( void *   )  [inline]

Definition at line 104 of file context.h.

void Scope::finalize ( void   ) 

Called by ~ContextManager.

Definition at line 37 of file context.cpp.

References CVC3::ContextObjChain::d_master, CVC3::ContextObj::d_restore, d_restoreChain, CVC3::ContextObjChain::d_restoreChainNext, and CVC3::ContextObj::d_scope.

Referenced by CVC3::Context::~Context().

void Scope::check ( void   ) 

Check for memory leaks.

Definition at line 55 of file context.cpp.

References d_level, d_restoreChain, CVC3::ContextObjChain::d_restoreChainNext, CVC3::debugger, std::endl(), CVC3::Debug::flag(), CVC3::Debug::getOS(), IF_DEBUG, CVC3::ContextObjChain::name(), and CVC3::Debug::trace().

Referenced by CVC3::Context::pop().


Friends And Related Function Documentation

friend class ContextObj [friend]

Definition at line 59 of file context.h.

friend class ContextObjChain [friend]

Definition at line 60 of file context.h.

friend class CDFlags [friend]

Definition at line 61 of file context.h.


Member Data Documentation

Context* CVC3::Scope::d_context [private]

Context that created this scope.

Definition at line 63 of file context.h.

Referenced by getContext(), isCurrent(), and topScope().

ContextMemoryManager* CVC3::Scope::d_cmm [private]

Memory manager for this scope.

Definition at line 66 of file context.h.

Referenced by getCMM().

Scope* CVC3::Scope::d_prevScope [private]

Previous scope in this context.

Definition at line 69 of file context.h.

Referenced by prevScope().

int CVC3::Scope::d_level [private]

Scope level.

Definition at line 72 of file context.h.

Referenced by check(), level(), and Scope().

ContextObjChain* CVC3::Scope::d_restoreChain [private]

Linked list of objects which are "current" in this scope, and thus need to be restored when the scope is deleted.

Definition at line 76 of file context.h.

Referenced by addToChain(), check(), finalize(), and restore().


The documentation for this class was generated from the following files:
Generated on Tue Jul 3 14:35:54 2007 for CVC3 by  doxygen 1.5.1