Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

OOF_ExpandableLongArray Class Reference
[OOFILE utility classes and functions.]

#include <oofarray.h>

Inheritance diagram for OOF_ExpandableLongArray:

Inheritance graph
[legend]
List of all members.

Detailed Description

Array of longs which expands automatically as you write to cells.


Public Member Functions

 OOF_ExpandableLongArray (unsigned long defaultValue=0, unsigned long numSlots=0, unsigned int expandBySlots=4)
 OOF_ExpandableLongArray (const OOF_ExpandableLongArray &rhs)
virtual ~OOF_ExpandableLongArray ()
OOF_ExpandableLongArrayoperator= (const OOF_ExpandableLongArray &)
void describe (std::ostream &) const
void append (unsigned long)
void deleteItem (unsigned long index)
void deleteFirstMatching (unsigned long value)
void deleteAllMatching (unsigned long value)
void deleteAllCells (bool alwaysDeleteStorage=false)
 Effectively delete cells by resetting mNextFreeEntry cursor.

bool contains (unsigned long value) const
bool find (unsigned long value, unsigned long &foundAt) const
unsigned long & operator[] (unsigned long index)
unsigned long value (unsigned long index) const
unsigned long & item (unsigned long index)
void start ()
bool more () const
void next ()
unsigned long count () const
unsigned long index () const
unsigned long countOccurrences (unsigned long) const
unsigned long & operator() ()

Protected Member Functions

bool Invariant () const
 Guarantee members managing storage are consistent.

void ExpandToInclude (unsigned long indexToCover)
void DeleteBits ()
void CopyBits (const OOF_ExpandableLongArray &rhs)

Protected Attributes

unsigned long * mBits
unsigned long mDefaultValue
unsigned long mNextFreeEntry
unsigned long mNumSlots
unsigned long mInternalIter
unsigned int mExpansionChunk


Constructor & Destructor Documentation

OOF_ExpandableLongArray::OOF_ExpandableLongArray unsigned long  defaultValue = 0,
unsigned long  numSlots = 0,
unsigned int  expandBySlots = 4
 

OOF_ExpandableLongArray::OOF_ExpandableLongArray const OOF_ExpandableLongArray rhs  ) 
 

OOF_ExpandableLongArray::~OOF_ExpandableLongArray  )  [virtual]
 


Member Function Documentation

void OOF_ExpandableLongArray::append unsigned  long  ) 
 

bool OOF_ExpandableLongArray::contains unsigned long  value  )  const
 

void OOF_ExpandableLongArray::CopyBits const OOF_ExpandableLongArray rhs  )  [protected]
 

unsigned long OOF_ExpandableLongArray::count  )  const [inline]
 

unsigned long OOF_ExpandableLongArray::countOccurrences unsigned  long  )  const
 

void OOF_ExpandableLongArray::deleteAllCells bool  alwaysDeleteStorage = false  ) 
 

Effectively delete cells by resetting mNextFreeEntry cursor.

Parameters:
alwaysDeleteStorage means unconditionally cleanup storage so can force total cleanup.
Todo:
delete mBits if past threshold

void OOF_ExpandableLongArray::deleteAllMatching unsigned long  value  ) 
 

void OOF_ExpandableLongArray::DeleteBits  )  [protected]
 

void OOF_ExpandableLongArray::deleteFirstMatching unsigned long  value  ) 
 

void OOF_ExpandableLongArray::deleteItem unsigned long  index  ) 
 

void OOF_ExpandableLongArray::describe std::ostream &   )  const
 

void OOF_ExpandableLongArray::ExpandToInclude unsigned long  indexToCover  )  [protected]
 

Todo:
platform-specific optimal copy for expansion

bool OOF_ExpandableLongArray::find unsigned long  value,
unsigned long &  foundAt
const
 

unsigned long OOF_ExpandableLongArray::index  )  const [inline]
 

bool OOF_ExpandableLongArray::Invariant  )  const [inline, protected]
 

Guarantee members managing storage are consistent.

Note: we assume a user may cause mInternalIter to go out of bounds.

unsigned long & OOF_ExpandableLongArray::item unsigned long  index  )  [inline]
 

bool OOF_ExpandableLongArray::more  )  const [inline]
 

void OOF_ExpandableLongArray::next  )  [inline]
 

unsigned long & OOF_ExpandableLongArray::operator()  )  [inline]
 

OOF_ExpandableLongArray & OOF_ExpandableLongArray::operator= const OOF_ExpandableLongArray  ) 
 

unsigned long & OOF_ExpandableLongArray::operator[] unsigned long  index  ) 
 

void OOF_ExpandableLongArray::start  )  [inline]
 

unsigned long OOF_ExpandableLongArray::value unsigned long  index  )  const
 


Member Data Documentation

unsigned long* OOF_ExpandableLongArray::mBits [protected]
 

unsigned long OOF_ExpandableLongArray::mDefaultValue [protected]
 

unsigned int OOF_ExpandableLongArray::mExpansionChunk [protected]
 

unsigned long OOF_ExpandableLongArray::mInternalIter [protected]
 

unsigned long OOF_ExpandableLongArray::mNextFreeEntry [protected]
 

unsigned long OOF_ExpandableLongArray::mNumSlots [protected]
 


The documentation for this class was generated from the following files:
Generated on Thu Jan 1 21:35:57 2004 for OOFILE by doxygen 1.3.5