bes  Updated for version 3.20.6
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

Definition at line 170 of file RCObject.cc.

◆ ~RCObjectPool()

agg_util::RCObjectPool::~RCObjectPool ( )
virtual

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

Definition at line 175 of file RCObject.cc.

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.

Definition at line 186 of file RCObject.cc.

◆ contains()

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

Definition at line 180 of file RCObject.cc.

◆ deleteAllObjects()

void agg_util::RCObjectPool::deleteAllObjects ( )
protected

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

Definition at line 218 of file RCObject.cc.

◆ 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.

Definition at line 195 of file RCObject.cc.

◆ 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.


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