bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
agg_util::RCObjectPool Class Reference

#include <RCObject.h>

Collaboration diagram for agg_util::RCObjectPool:
Collaboration graph

Public Member Functions

void add (RCObject *pObj)
 
bool contains (RCObject *pObj) const
 
 RCObjectPool ()
 
void release (RCObject *pObj, bool shouldDelete=true)
 
void remove (RCObject *pObj)
 
virtual ~RCObjectPool ()
 

Protected Member Functions

void deleteAllObjects ()
 

Friends

class RCObject
 

Detailed Description

A monitoring "pool" class for created RCObject's which allows us to forcibly delete any RCOBject's regardless of their ref counts when we know we are done with them, say after an exception.

@TODO For now, this won't be a real pool, where objects are pre-allocated ahead of time and reused, etc. Support for this sort of thing will require a template class containing a vector of reusable objects for each type we need to factory up. At that point this will serve as a base class for the concrete pool.

Definition at line 57 of file RCObject.h.

Constructor & Destructor Documentation

◆ RCObjectPool()

agg_util::RCObjectPool::RCObjectPool ( )

Create an empty pool

◆ ~RCObjectPool()

virtual agg_util::RCObjectPool::~RCObjectPool ( )
virtual

Forcibly delete all remaining objects in pool, regardless of ref count

Member Function Documentation

◆ add()

void agg_util::RCObjectPool::add ( RCObject * pObj)

Add the object to the pool uniquely. When the pool is destroyed, pObj will be destroyed as well, regardless of its count, if it is still live.

◆ contains()

bool agg_util::RCObjectPool::contains ( RCObject * pObj) const
Returns
whether the pool is currently monitoring the object or not.

◆ deleteAllObjects()

void agg_util::RCObjectPool::deleteAllObjects ( )
protected

Call delete on all objects remaining in _liveObjects and clear it out. After call, _liveObjects.empty().

◆ release()

void agg_util::RCObjectPool::release ( RCObject * pObj,
bool shouldDelete = true )

Tell the pool that the object's count is 0 and it can be released to be deleted or potentially reused again later. Users should not call this.

Parameters
pObjthe object to remove from the pool.
shouldDeletewhether this call should call delete on pObj, or just remove it.

◆ remove()

void agg_util::RCObjectPool::remove ( RCObject * pObj)
inline

Remove the object from the pool, but don't delete it

Parameters
pObjobject to remove from the auto delete pool.

Definition at line 80 of file RCObject.h.

Friends And Related Symbol Documentation

◆ RCObject

friend class RCObject
friend

Definition at line 58 of file RCObject.h.


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