HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_ConstDetailHandle Class Reference

#include <GU_DetailHandle.h>

Public Member Functions

 GU_ConstDetailHandle ()
 
 GU_ConstDetailHandle (const GU_DetailHandle &handle)
 
const GU_ConstDetailHandleoperator= (const GU_DetailHandle &handle)
 
bool operator== (const GU_ConstDetailHandle &handle) const
 
bool operator!= (const GU_ConstDetailHandle &handle) const
 
uint hash () const
 
void clear ()
 
GU_DetailHandle castAwayConst () const
 
GU_DetailHandle getWriteableCopy (GA_DataIdStrategy data_id_strategy=GA_DATA_ID_BUMP) const
 Create a writeable copy of the detail. More...
 
const GU_Detailgdp () const
 Unlocked readable pointers. More...
 
bool isNull () const
 
bool isValid () const
 Check if this is a valid handle. More...
 
SYS_SAFE_BOOL operator bool () const
 Safe-bool operator to return whether the handle is valid. More...
 
int getRefCount () const
 Returns the number of references made to the base handle. More...
 
void addPreserveRequest ()
 
void removePreserveRequest ()
 
int getPreserveRequest () const
 
int64 getMemoryUsage (bool inclusive) const
 
const GU_DetailreadLock ()
 
void unlock (const GU_Detail *gdp)
 
int getLockCount () const
 

Detailed Description

A GU_ConstDetailHandle uses a GU_DetailHandle to provide const-only access to a GU_Detail. It uses a GU_DetailHandle member variable to do all the actual work, and simply hides any functionality that is unsafe or inappropriate for a const GU_Detail.

Examples:
packedsphere/GT_GEOPackedSphere.C, packedsphere/GU_PackedSphere.C, packedsphere/GU_PackedSphere.h, SIM/SNOW_Solver.C, SIM/SNOW_Solver.h, and tetprim/GT_PrimTetra.C.

Definition at line 176 of file GU_DetailHandle.h.

Constructor & Destructor Documentation

GU_ConstDetailHandle::GU_ConstDetailHandle ( )
inline

Definition at line 179 of file GU_DetailHandle.h.

GU_ConstDetailHandle::GU_ConstDetailHandle ( const GU_DetailHandle handle)
inline

Definition at line 181 of file GU_DetailHandle.h.

Member Function Documentation

void GU_ConstDetailHandle::addPreserveRequest ( )
inline

Preserve Requests: A preserve request is a request that people create a new GU_DetailHandle rather than editting the current one. It is used by SOPs to determine if it is safe to do an in place cook.

Definition at line 233 of file GU_DetailHandle.h.

GU_DetailHandle GU_ConstDetailHandle::castAwayConst ( ) const
inline

This method casts from a GU_ConstDetailHandle to a GU_DetailHandle. Use it carefully. Calling getWriteableCopy() is preferred. Duplicating geometry is not as expensive as it might seem.

Definition at line 203 of file GU_DetailHandle.h.

void GU_ConstDetailHandle::clear ( )
inline

Definition at line 197 of file GU_DetailHandle.h.

const GU_Detail* GU_ConstDetailHandle::gdp ( ) const
inline

Unlocked readable pointers.

Definition at line 211 of file GU_DetailHandle.h.

int GU_ConstDetailHandle::getLockCount ( ) const
inline

NOTE: Locking is not enforced, and no longer encouraged. Returns the number of locks made to the base handle for debugging.

Definition at line 265 of file GU_DetailHandle.h.

int64 GU_ConstDetailHandle::getMemoryUsage ( bool  inclusive) const
inline

Return the amount of memory owned by the GU_DetailHandle itself, NOT the detail. This will count the memory of the GU_DetailHandleRef, which could be shared, so only the definitive "original" handle should be counted, e.g. the one on SOP_Node.

Definition at line 244 of file GU_DetailHandle.h.

int GU_ConstDetailHandle::getPreserveRequest ( ) const
inline

Definition at line 237 of file GU_DetailHandle.h.

int GU_ConstDetailHandle::getRefCount ( ) const
inline

Returns the number of references made to the base handle.

Definition at line 225 of file GU_DetailHandle.h.

GU_DetailHandle GU_ConstDetailHandle::getWriteableCopy ( GA_DataIdStrategy  data_id_strategy = GA_DATA_ID_BUMP) const
inline

Create a writeable copy of the detail.

Definition at line 207 of file GU_DetailHandle.h.

uint GU_ConstDetailHandle::hash ( ) const
inline

Definition at line 195 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::isNull ( ) const
inline

Determine if this is a null handle. This means it points to a null handle, or the handle's gdp is null.

Examples:
SIM/SIM_SolverHair.C, and SIM/SNOW_Solver.C.

Definition at line 215 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::isValid ( ) const
inline

Check if this is a valid handle.

Definition at line 218 of file GU_DetailHandle.h.

SYS_SAFE_BOOL GU_ConstDetailHandle::operator bool ( ) const
inline

Safe-bool operator to return whether the handle is valid.

Definition at line 222 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::operator!= ( const GU_ConstDetailHandle handle) const
inline

Definition at line 192 of file GU_DetailHandle.h.

const GU_ConstDetailHandle& GU_ConstDetailHandle::operator= ( const GU_DetailHandle handle)
inline

Definition at line 184 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::operator== ( const GU_ConstDetailHandle handle) const
inline

Definition at line 190 of file GU_DetailHandle.h.

const GU_Detail* GU_ConstDetailHandle::readLock ( )
inline

NOTE: Locking is not enforced, and no longer encouraged. This will acquire a read lock on the GU_Detail. The result is 0 if no lock can be acquired, or no underlying detail exists. The returned detail should be passed to unlock(). (Technically, no locking occurs on error, but unlock is a no-op with a 0 gdp)

Definition at line 252 of file GU_DetailHandle.h.

void GU_ConstDetailHandle::removePreserveRequest ( )
inline

Definition at line 235 of file GU_DetailHandle.h.

void GU_ConstDetailHandle::unlock ( const GU_Detail gdp)
inline

NOTE: Locking is not enforced, and no longer encouraged. This will unlock one layer of locking. If the passed in gdp is null, no unlocking occurs. Otherwise, the passed in gdp is asserted to match the one which myHandle points to.

Definition at line 260 of file GU_DetailHandle.h.


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