BitVector Class Reference

#include <BitVector.H>

List of all members.

Public Member Functions

 BitVector (long sizeHint=0) throw ()
 BitVector (const BitVector *bv) throw ()
 BitVector (RecoveryReader &rd) throw (VestaLog::Error, VestaLog::Eof)
 BitVector (std::istream &ifs) throw (FS::EndOfFile, FS::Failure)
 BitVector (SRPC &srpc) throw (SRPC::failure)
 ~BitVector () throw ()
bool IsEmpty () const throw ()
unsigned int Size () const throw ()
unsigned int Cardinality () const throw ()
bool Read (unsigned int i) const throw ()
bool Write (unsigned int i, bool val) throw ()
bool Set (unsigned int i) throw ()
bool Reset (unsigned int i) throw ()
Word ReadWord (unsigned int start, unsigned short len) const throw ()
void WriteWord (unsigned int start, unsigned short len, Word val) throw ()
void WriteInterval (unsigned int lo, unsigned int hi, bool val) throw ()
void SetInterval (unsigned int lo, unsigned int hi) throw ()
void ResetInterval (unsigned int lo, unsigned int hi) throw ()
void ResetAll (bool freeMem=false) throw ()
unsigned int NextAvailExcept (BitVector *except=(BitVector *) NULL, bool setIt=true) throw ()
unsigned int NextAvail (bool setIt=true) throw ()
int MSB () const throw ()
void Pack (const BitVector &mask) throw ()
void Pack (const BitVector *mask) throw ()
void Log (VestaLog &log) const throw (VestaLog::Error)
void Recover (RecoveryReader &rd) throw (VestaLog::Error, VestaLog::Eof)
void Write (std::ostream &ofs) const throw (FS::Failure)
void Read (std::istream &ifs) throw (FS::EndOfFile, FS::Failure)
void Send (SRPC &srpc) const throw (SRPC::failure)
void Recv (SRPC &srpc) throw (SRPC::failure)
void Print (std::ostream &s, int maxWidth=64) const throw ()
void PrintAll (std::ostream &s, int indent=0, int maxWidth=70) const throw ()
BitVectoroperator= (const BitVector &bv) throw ()
BitVectoroperator &= (const BitVector &bv) throw ()
BitVectoroperator|= (const BitVector &bv) throw ()
BitVectoroperator^= (const BitVector &bv) throw ()
BitVectoroperator-= (const BitVector &bv) throw ()

Private Member Functions

 BitVector (long sizeHint, bool doZero) throw ()
void Init (long sizeHint, bool doZero) throw ()
void Extend (unsigned short wordCnt, bool doPreserve=true) throw ()
void ExpandSz (unsigned int i, unsigned short wx) throw ()
void ReduceSz () throw ()
 BitVector (const BitVector &bv)

Private Attributes

Basics::uint16 numWords
Basics::uint16 firstAvailWd
Basics::uint32 sz
Wordword

Friends

class BVIter
std::ostream & operator<< (std::ostream &os, const BitVector &fv) throw ()
bool operator== (const BitVector &bv1, const BitVector &bv2) throw ()
bool operator!= (const BitVector &bv1, const BitVector &bv2) throw ()
bool operator<= (const BitVector &bv1, const BitVector &bv2) throw ()
bool operator>= (const BitVector &bv1, const BitVector &bv2) throw ()
bool operator< (const BitVector &bv1, const BitVector &bv2) throw ()
bool operator> (const BitVector &bv1, const BitVector &bv2) throw ()
BitVectoroperator & (const BitVector &bv1, const BitVector &bv2) throw ()
BitVectoroperator| (const BitVector &bv1, const BitVector &bv2) throw ()
BitVectoroperator^ (const BitVector &bv1, const BitVector &bv2) throw ()
BitVectoroperator- (const BitVector &bv1, const BitVector &bv2) throw ()


Detailed Description

Definition at line 51 of file BitVector.H.


Constructor & Destructor Documentation

BitVector::BitVector ( long  sizeHint = 0  )  throw () [inline]

Definition at line 53 of file BitVector.H.

References Init().

Here is the call graph for this function:

BitVector::BitVector ( const BitVector bv  )  throw ()

Definition at line 179 of file BitVector.C.

BitVector::BitVector ( RecoveryReader rd  )  throw (VestaLog::Error, VestaLog::Eof) [inline]

Definition at line 66 of file BitVector.H.

References Recover().

Here is the call graph for this function:

BitVector::BitVector ( std::istream &  ifs  )  throw (FS::EndOfFile, FS::Failure) [inline]

Definition at line 69 of file BitVector.H.

References Read().

Here is the call graph for this function:

BitVector::BitVector ( SRPC srpc  )  throw (SRPC::failure) [inline]

Definition at line 72 of file BitVector.H.

References Recv().

Here is the call graph for this function:

BitVector::~BitVector (  )  throw () [inline]

Definition at line 75 of file BitVector.H.

References word.

BitVector::BitVector ( long  sizeHint,
bool  doZero 
) throw () [inline, private]

Definition at line 260 of file BitVector.H.

References Init().

Here is the call graph for this function:

BitVector::BitVector ( const BitVector bv  )  [private]


Member Function Documentation

bool BitVector::IsEmpty (  )  const throw ()

Definition at line 238 of file BitVector.C.

References WdCnt().

Referenced by PickleDPSSize(), VPKFile::Update(), and SPKFile::Update().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int BitVector::Size (  )  const throw () [inline]

Definition at line 81 of file BitVector.H.

References sz.

Referenced by CE::T::UncommonFPIsUnlazied(), and SPKFile::Update().

Here is the caller graph for this function:

unsigned int BitVector::Cardinality (  )  const throw ()

Definition at line 279 of file BitVector.C.

References WdCnt().

Referenced by WeederC::GetLeases(), main(), Weeder::MarkWork(), Print_used_cis(), PrintHitFilter(), CacheS::RecoverCILog(), CFPObj::Search(), WeederC::StartMark(), and Weeder::WriteWeeded().

Here is the call graph for this function:

Here is the caller graph for this function:

bool BitVector::Read ( unsigned int  i  )  const throw ()

Definition at line 295 of file BitVector.C.

References BitIndex(), and WdIndex().

Referenced by BitVector(), Leases::IsLeased(), PickleDPSSize(), PrintHitFilter(), and CacheS::RecoverHitFilter().

Here is the call graph for this function:

Here is the caller graph for this function:

bool BitVector::Write ( unsigned int  i,
bool  val 
) throw () [inline]

Definition at line 94 of file BitVector.H.

References Reset(), and Set().

Referenced by CacheS::ChkptUsedCIs(), CacheS::WriteHitFilter(), and Weeder::WriteWeeded().

Here is the call graph for this function:

Here is the caller graph for this function:

bool BitVector::Set ( unsigned int  i  )  throw ()

Definition at line 374 of file BitVector.C.

References BitIndex(), and WdIndex().

Referenced by VPKFile::NewEntry(), Leases::NewLease(), and Write().

Here is the call graph for this function:

Here is the caller graph for this function:

bool BitVector::Reset ( unsigned int  i  )  throw ()

Definition at line 384 of file BitVector.C.

References BitIndex(), min(), and WdIndex().

Referenced by SPKFile::Update(), and Write().

Here is the call graph for this function:

Here is the caller graph for this function:

Word BitVector::ReadWord ( unsigned int  start,
unsigned short  len 
) const throw ()

Definition at line 303 of file BitVector.C.

References BitIndex(), WdCnt(), and WdIndex().

Here is the call graph for this function:

void BitVector::WriteWord ( unsigned int  start,
unsigned short  len,
Word  val 
) throw ()

Definition at line 332 of file BitVector.C.

References BitIndex(), min(), and WdIndex().

Here is the call graph for this function:

void BitVector::WriteInterval ( unsigned int  lo,
unsigned int  hi,
bool  val 
) throw () [inline]

Definition at line 119 of file BitVector.H.

References ResetInterval(), and SetInterval().

Referenced by Print_used_cis(), and CacheS::RecoverCILog().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::SetInterval ( unsigned int  lo,
unsigned int  hi 
) throw ()

Definition at line 401 of file BitVector.C.

References BitIndex(), max(), and WdIndex().

Referenced by SPKFile::Update(), and WriteInterval().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::ResetInterval ( unsigned int  lo,
unsigned int  hi 
) throw ()

Definition at line 448 of file BitVector.C.

References BitIndex(), min(), and WdIndex().

Referenced by WriteInterval().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::ResetAll ( bool  freeMem = false  )  throw ()

Definition at line 493 of file BitVector.C.

References WdCnt().

Referenced by CacheS::ClearStableHitFilter(), Weeder::DeletionPhase(), Leases::Expire(), and CacheS::RecoverCILog().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int BitVector::NextAvailExcept ( BitVector except = (BitVector *) NULL,
bool  setIt = true 
) throw ()

Definition at line 524 of file BitVector.C.

References max(), min(), and WdCnt().

Referenced by NextAvail().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int BitVector::NextAvail ( bool  setIt = true  )  throw () [inline]

Definition at line 143 of file BitVector.H.

References NextAvailExcept().

Referenced by SPKFile::Update().

Here is the call graph for this function:

Here is the caller graph for this function:

int BitVector::MSB (  )  const throw ()

Definition at line 596 of file BitVector.C.

References numWords, WdCnt(), and word.

Here is the call graph for this function:

void BitVector::Pack ( const BitVector mask  )  throw ()

Definition at line 621 of file BitVector.C.

References min(), and WdCnt().

Referenced by Pack().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::Pack ( const BitVector mask  )  throw () [inline]

Definition at line 156 of file BitVector.H.

References Pack().

Here is the call graph for this function:

void BitVector::Log ( VestaLog log  )  const throw (VestaLog::Error)

Definition at line 1096 of file BitVector.C.

References WdCnt().

Here is the call graph for this function:

void BitVector::Recover ( RecoveryReader rd  )  throw (VestaLog::Error, VestaLog::Eof)

Definition at line 1108 of file BitVector.C.

References NEW_PTRFREE_ARRAY.

Referenced by BitVector(), Print_used_cis(), and CacheS::RecoverCILog().

Here is the caller graph for this function:

void BitVector::Write ( std::ostream &  ofs  )  const throw (FS::Failure)

Definition at line 1124 of file BitVector.C.

References WdCnt(), and FS::Write().

Here is the call graph for this function:

void BitVector::Read ( std::istream &  ifs  )  throw (FS::EndOfFile, FS::Failure)

Definition at line 1137 of file BitVector.C.

References NEW_PTRFREE_ARRAY, and FS::Read().

Here is the call graph for this function:

void BitVector::Send ( SRPC srpc  )  const throw (SRPC::failure)

Definition at line 1153 of file BitVector.C.

References WdCnt().

Referenced by ExpCache::GetLeases(), and ExpCache::StartMark().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::Recv ( SRPC srpc  )  throw (SRPC::failure)

Definition at line 1166 of file BitVector.C.

Referenced by BitVector().

Here is the caller graph for this function:

void BitVector::Print ( std::ostream &  s,
int  maxWidth = 64 
) const throw ()

Definition at line 1182 of file BitVector.C.

References min(), and WdCnt().

Referenced by PrintHitFilter().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::PrintAll ( std::ostream &  s,
int  indent = 0,
int  maxWidth = 70 
) const throw ()

Definition at line 1233 of file BitVector.C.

References ExtendRow(), Indent(), BVIter::Next(), and Basics::OBufStream::str().

Referenced by WeederC::GetLeases(), main(), Weeder::MarkWork(), Print_used_cis(), PrintHitFilter(), WeederC::StartMark(), and Weeder::WriteWeeded().

Here is the call graph for this function:

Here is the caller graph for this function:

BitVector & BitVector::operator= ( const BitVector bv  )  throw ()

Definition at line 696 of file BitVector.C.

References WdCnt().

Here is the call graph for this function:

BitVector & BitVector::operator &= ( const BitVector bv  )  throw ()

Definition at line 867 of file BitVector.C.

References min(), and WdCnt().

Here is the call graph for this function:

BitVector & BitVector::operator|= ( const BitVector bv  )  throw ()

Definition at line 935 of file BitVector.C.

References max(), min(), and WdCnt().

Here is the call graph for this function:

BitVector & BitVector::operator^= ( const BitVector bv  )  throw ()

Definition at line 1009 of file BitVector.C.

References max(), min(), and WdCnt().

Here is the call graph for this function:

BitVector & BitVector::operator-= ( const BitVector bv  )  throw ()

Definition at line 1073 of file BitVector.C.

References min(), and WdCnt().

Here is the call graph for this function:

void BitVector::Init ( long  sizeHint,
bool  doZero 
) throw () [private]

Definition at line 164 of file BitVector.C.

References WdCnt().

Referenced by BitVector().

Here is the call graph for this function:

Here is the caller graph for this function:

void BitVector::Extend ( unsigned short  wordCnt,
bool  doPreserve = true 
) throw () [private]

Definition at line 188 of file BitVector.C.

References max(), and NEW_PTRFREE_ARRAY.

Here is the call graph for this function:

void BitVector::ExpandSz ( unsigned int  i,
unsigned short  wx 
) throw () [private]

Definition at line 214 of file BitVector.C.

References max().

Here is the call graph for this function:

void BitVector::ReduceSz (  )  throw () [private]

Definition at line 227 of file BitVector.C.

References min(), numWords, sz, WdCnt(), and word.

Referenced by operator &(), and operator-().

Here is the call graph for this function:

Here is the caller graph for this function:


Friends And Related Function Documentation

friend class BVIter [friend]

Definition at line 225 of file BitVector.H.

std::ostream& operator<< ( std::ostream &  os,
const BitVector fv 
) throw () [friend]

Definition at line 178 of file BitVector.H.

bool operator== ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 733 of file BitVector.C.

bool operator!= ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 195 of file BitVector.H.

bool operator<= ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 764 of file BitVector.C.

bool operator>= ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 199 of file BitVector.H.

bool operator< ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 796 of file BitVector.C.

bool operator> ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 203 of file BitVector.H.

BitVector* operator & ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 828 of file BitVector.C.

BitVector* operator| ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 891 of file BitVector.C.

BitVector* operator^ ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 968 of file BitVector.C.

BitVector* operator- ( const BitVector bv1,
const BitVector bv2 
) throw () [friend]

Definition at line 1036 of file BitVector.C.


Member Data Documentation

Basics::uint16 BitVector::numWords [private]

Definition at line 228 of file BitVector.H.

Referenced by MSB(), operator &(), operator-(), operator^(), operator|(), and ReduceSz().

Basics::uint16 BitVector::firstAvailWd [private]

Definition at line 229 of file BitVector.H.

Referenced by operator &(), operator-(), operator^(), and operator|().

Basics::uint32 BitVector::sz [private]

Definition at line 230 of file BitVector.H.

Referenced by operator &(), operator-(), operator^(), operator|(), ReduceSz(), and Size().

Word* BitVector::word [private]

Definition at line 231 of file BitVector.H.

Referenced by MSB(), operator &(), operator-(), operator^(), operator|(), ReduceSz(), and ~BitVector().


The documentation for this class was generated from the following files:
Generated on Fri May 25 00:48:14 2007 for Vesta by  doxygen 1.5.1