Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

VDirVolatileRoot Class Reference

#include <VDirVolatileRoot.H>

Inheritance diagram for VDirVolatileRoot:

VestaSource VestaAttribs VRErrorCode List of all members.

Public Member Functions

void resync (AccessControl::Identity who=NULL) throw ()
VestaSource::errorCode lookup (Arc arc, VestaSource *&result, AccessControl::Identity who=NULL, unsigned int indexOffset=0) throw ()
VestaSource::errorCode lookupIndex (unsigned int index, VestaSource *&result, char *arcbuf=NULL) throw ()
VestaSource::errorCode list (unsigned int firstIndex, VestaSource::listCallback callback, void *closure, AccessControl::Identity who=NULL, bool deltaOnly=false, unsigned int indexOffset=0) throw ()
time_t timestamp () throw ()
void mark (bool byName=true, ArcTable *hidden=NULL) throw ()
Bit32 checkpoint (Bit32 &nextSP, std::fstream &ckpt) throw ()
VestaSource::errorCode createVolatileDirectory (char *hostname, char *port, Bit64 handle, VestaSource *&result, time_t timestamp, LongId::lockKindTag lockKind, ReadersWritersLock **lock, bool readOnlyExisting) throw ()
VestaSource::errorCode deleteIndex (unsigned int index) throw ()
VestaSource::errorCode lookupIndexAndLock (unsigned int index, VestaSource *&result, LongId::lockKindTag lockKind, ReadersWritersLock **lock) throw ()
virtual VestaSourcecopy () throw ()

Static Public Member Functions

static void init () throw ()
static void finishCheckpoint (std::fstream &ckpt) throw ()
static void lockAll ()
static void unlockAll ()

Member Function Documentation

Bit32 VDirVolatileRoot::checkpoint Bit32 nextSP,
std::fstream &  ckpt
throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 620 of file VDirVolatileRoot.C.

References VDirChangeable::checkpoint(), DBG_ALWAYS, Repos::dprintf(), VMemPool::lengthenPointer(), Table< K, V >::Iterator::Next(), VolRootEntry::srep, and VestaSource::volatileDirectory.

VestaSource * VDirVolatileRoot::copy  )  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 773 of file VDirVolatileRoot.C.

References NEW.

VestaSource::errorCode VDirVolatileRoot::createVolatileDirectory char *  hostname,
char *  port,
Bit64  handle,
VestaSource *&  result,
time_t  timestamp,
LongId::lockKindTag  lockKind,
ReadersWritersLock **  lock,
bool  readOnlyExisting
throw ()
 

Definition at line 416 of file VDirVolatileRoot.C.

References VestaSource::ac, ReadersWritersLock::acquireRead(), ReadersWritersLock::acquireWrite(), VolRootEntry::alive, LongId::append(), VDirChangeable::baseCache, LongId::checkLock, VestaLog::commit(), VolRootEntry::creationTime, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, VolRootEntry::fptag, INDEX_BLOCKSIZE, VDirChangeable::isBase, VolRootEntry::link(), VolRootEntry::lock, VestaSource::longid, NEW_CONSTR, LongId::noLock, VRErrorCode::ok, VestaSource::pseudoInode, Table< K, V >::Default::Put(), VestaLog::put(), LongId::readLock, LongId::readLockV, VolRootEntry::readOnlyExisting, ReadersWritersLock::releaseWrite(), VestaSource::rep, RWLOCK_LOCKED_REASON, VDirChangeable::setID(), VDirChangeable::setIsMoreOrBase(), VDirChangeable::setMoreOrBase(), VDirChangeable::setTimestamp(), VMemPool::shortenPointer(), VolRootEntry::sidref, VDirChangeable::sidref, VolRootEntry::srep, StableLock, VestaLog::start(), Basics::OBufStream::str(), VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, VestaSource::volatileRoot(), VolatileRootLongId, VRLog, LongId::writeLock, and LongId::writeLockV.

VestaSource::errorCode VDirVolatileRoot::deleteIndex unsigned int  index  )  throw ()
 

Definition at line 521 of file VDirVolatileRoot.C.

References ReadersWritersLock::acquireWrite(), Table< K, V >::Default::Delete(), VDirChangeable::freeTree(), VDirEvaluator::freeTree(), VDirChangeable::getBase(), VMemPool::lengthenPointer(), VolRootEntry::lock, VRErrorCode::notFound, VRErrorCode::ok, ok(), VolRootEntry::readOnlyExisting, ReadersWritersLock::releaseWrite(), VolRootEntry::srep, VolRootEntry::unlink(), VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

void VDirVolatileRoot::finishCheckpoint std::fstream &  ckpt  )  throw () [static]
 

Definition at line 645 of file VDirVolatileRoot.C.

References INDEX_BLOCKSIZE.

Referenced by CheckpointServer().

void VDirVolatileRoot::init  )  throw () [static]
 

Reimplemented from VestaSource.

Definition at line 756 of file VDirVolatileRoot.C.

References Basics::thread::fork(), GardenerThread(), and RegisterRecoveryCallback().

Referenced by VestaSource::init().

VestaSource::errorCode VDirVolatileRoot::list unsigned int  firstIndex,
VestaSource::listCallback  callback,
void *  closure,
AccessControl::Identity  who = NULL,
bool  deltaOnly = false,
unsigned int  indexOffset = 0
throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 299 of file VDirVolatileRoot.C.

References Table< K, V >::Default::Get(), VolRootEntry::index, MAX_ARC_LEN, VolRootEntry::next, NullShortId, VRErrorCode::ok, VolRootEntry::readOnlyExisting, VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

void VDirVolatileRoot::lockAll  )  [static]
 

Definition at line 563 of file VDirVolatileRoot.C.

References ReadersWritersLock::acquireWrite(), VolRootEntry::lock, Table< K, V >::Iterator::Next(), and VolatileRootLock.

Referenced by CheckpointServer(), and SourceWeed().

VestaSource::errorCode VDirVolatileRoot::lookup Arc  arc,
VestaSource *&  result,
AccessControl::Identity  who = NULL,
unsigned int  indexOffset = 0
throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 259 of file VDirVolatileRoot.C.

References VolRootEntry::fptag, Table< K, V >::Default::Get(), VMemPool::lengthenPointer(), NEW_CONSTR, VRErrorCode::notFound, VRErrorCode::ok, VolRootEntry::readOnlyExisting, VolRootEntry::sidref, VolRootEntry::srep, VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

VestaSource::errorCode VDirVolatileRoot::lookupIndex unsigned int  index,
VestaSource *&  result,
char *  arcbuf = NULL
throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 168 of file VDirVolatileRoot.C.

References VolRootEntry::fptag, Table< K, V >::Default::Get(), VMemPool::lengthenPointer(), NEW_CONSTR, VRErrorCode::notFound, VRErrorCode::ok, VolRootEntry::readOnlyExisting, VolRootEntry::sidref, VolRootEntry::srep, VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

VestaSource::errorCode VDirVolatileRoot::lookupIndexAndLock unsigned int  index,
VestaSource *&  result,
LongId::lockKindTag  lockKind,
ReadersWritersLock **  lock
throw ()
 

Definition at line 205 of file VDirVolatileRoot.C.

References ReadersWritersLock::acquireRead(), ReadersWritersLock::acquireWrite(), LongId::checkLock, VolRootEntry::fptag, Table< K, V >::Default::Get(), VRErrorCode::invalidArgs, VMemPool::lengthenPointer(), VolRootEntry::lock, NEW_CONSTR, LongId::noLock, VRErrorCode::notFound, VRErrorCode::ok, LongId::readLock, LongId::readLockV, VolRootEntry::readOnlyExisting, VolRootEntry::sidref, VolRootEntry::srep, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, LongId::writeLock, and LongId::writeLockV.

void VDirVolatileRoot::mark bool  byName = true,
ArcTable hidden = NULL
throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 603 of file VDirVolatileRoot.C.

References VMemPool::lengthenPointer(), VDirChangeable::mark(), Table< K, V >::Iterator::Next(), VDirChangeable::setHasName(), VolRootEntry::srep, and VestaSource::volatileDirectory.

void VDirVolatileRoot::resync AccessControl::Identity  who = NULL  )  throw () [inline, virtual]
 

Reimplemented from VestaSource.

Definition at line 51 of file VDirVolatileRoot.H.

time_t VDirVolatileRoot::timestamp  )  throw () [inline, virtual]
 

Reimplemented from VestaSource.

Definition at line 64 of file VDirVolatileRoot.H.

void VDirVolatileRoot::unlockAll  )  [static]
 

Definition at line 575 of file VDirVolatileRoot.C.

References VolRootEntry::lock, Table< K, V >::Iterator::Next(), ReadersWritersLock::releaseWrite(), and VolatileRootLock.

Referenced by CheckpointServer(), and SourceWeed().


The documentation for this class was generated from the following files:
Generated on Mon May 8 00:49:16 2006 for Vesta by  doxygen 1.4.2