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

VDirChangeable Class Reference

#include <VDirChangeable.H>

Inheritance diagram for VDirChangeable:

VestaSource VestaAttribs VRErrorCode List of all members.

Public Types

enum  { defaultRepSize = 512 }

Public Member Functions

void resync (AccessControl::Identity who=NULL) throw ()
ShortId shortId () throw ()
VestaSource::errorCode setTimestamp (time_t ts, AccessControl::Identity who=NULL) throw ()
VestaSource::errorCode lookup (Arc arc, VestaSource *&result, AccessControl::Identity who=NULL, unsigned int indexOffset=0) throw ()
VestaSource::errorCode reallyDelete (Arc arc, AccessControl::Identity who=NULL, bool existCheck=true, time_t timestamp=0) throw ()
VestaSource::errorCode insertFile (Arc arc, ShortId sid, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0, FP::Tag *fptag=NULL) throw ()
VestaSource::errorCode insertMutableFile (Arc arc, ShortId sid, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0) throw ()
VestaSource::errorCode insertImmutableDirectory (Arc arc, VestaSource *dir, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0, FP::Tag *fptag=NULL) throw ()
VestaSource::errorCode insertAppendableDirectory (Arc arc, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0) throw ()
VestaSource::errorCode insertMutableDirectory (Arc arc, VestaSource *dir, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0) throw ()
VestaSource::errorCode insertGhost (Arc arc, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0) throw ()
VestaSource::errorCode insertStub (Arc arc, bool mast, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, VestaSource **newvs=NULL, time_t timestamp=0) throw ()
VestaSource::errorCode renameTo (Arc arc, VestaSource *fromDir, Arc fromArc, AccessControl::Identity who=NULL, VestaSource::dupeCheck chk=VestaSource::dontReplace, time_t timestamp=0) throw ()
VestaSource::errorCode getBase (VestaSource *&result, AccessControl::Identity who=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 ()
VestaSource::errorCode lookupIndex (unsigned int index, VestaSource *&result, char *arcbuf=NULL) throw ()
VestaSource::errorCode makeIndexMutable (unsigned int index, VestaSource *&result, ShortId sid=NullShortId, Basics::uint64 copyMax=(Basics::uint64)-1, AccessControl::Identity who=NULL) throw ()
void makeIndexImmutable (unsigned int index, const FP::Tag *fptag=NULL, ShortId newsid=NullShortId) throw ()
int getRefCount (ShortId sid, int default_count=0)
VestaSource::errorCode copyIndexToMutable (unsigned int index, VestaSource *&result, AccessControl::Identity who=NULL) throw ()
errorCode setIndexMaster (unsigned int index, bool state, AccessControl::Identity who=NULL) throw ()
void mark (bool byName=true, ArcTable *hidden=NULL) throw ()
Bit32 checkpoint (Bit32 &nextSP, std::fstream &ckpt) throw ()
void freeTree () throw ()
errorCode measureDirectory (directoryStats &result, AccessControl::Identity who=NULL) throw (SRPC::failure)
errorCode collapseBase (AccessControl::Identity who=NULL) throw (SRPC::failure)
 VDirChangeable (VestaSource::typeTag type, int size=defaultRepSize, ShortIdRefCount *sidref=NULL) throw ()
 VDirChangeable (VestaSource::typeTag type, Bit8 *existingRep, ShortIdRefCount *sidref=NULL) throw ()
void buildMutableSidref () throw ()
void checkMutableSidref (bool correct=false) throw ()
virtual VestaSource * copy () throw ()
bool hasName () throw ()
void setHasName (bool newval) throw ()
bool visited () throw ()
void setVisited (bool newval) throw ()
time_t timestamp () throw ()

Static Public Member Functions

static void markCallback (void *closure, VMemPool::typeCode type) throw ()
static bool sweepCallback (void *closure, VMemPool::typeCode type, void *addr, Bit32 &size) throw ()
static void rebuildCallback (void *closure, VMemPool::typeCode type, void *addr, Bit32 &size) throw ()
static void printStats () throw ()

Private Types

enum  { isNeither = 0, isMore = 1, isBase = 2 }

Private Member Functions

bool hasName (Bit8 *repb) throw ()
void setHasName (Bit8 *repb, bool newval) throw ()
bool visited (Bit8 *repb) throw ()
void setVisited (Bit8 *repb, bool newval) throw ()
void setTimestampField (Bit32 newval) throw ()
Bit32 getID () throw ()
void setID (Bit32 newval) throw ()
FP::Tag fptag () throw ()
void setFPTag (const FP::Tag &newfptag) throw ()
Bit32 snapshot () throw ()
void setSnapshot (Bit32 newval) throw ()
Bit8 * firstEntry (Bit8 *repb) throw ()
Bit8 * attribAddr (Bit8 *entry) throw ()
void fillCaches () throw ()
Bit8 * repEnd () throw ()
unsigned int nextRawIndex () throw ()
Bit8 * base () throw ()
Bit8 * lastRepBlock () throw ()
int totalRepSize () throw ()
Bit32 freeLen () throw ()
void setFreeLen (Bit32 newval) throw ()
Bit8 * findArc (const char *arc, unsigned int &rawIndex, bool includeDeleted=false, bool includeOutdated=false) throw ()
Bit8 * findRawIndex (unsigned int rawIndex, Bit8 *&repBlock) throw ()
Bit8 * appendEntry (bool mast, bool sameAsBase, VestaSource::typeTag type, Bit32 value, Bit32 attrib, const FP::Tag *efptag, const char *arc, int arcLen) throw ()
VestaSource::errorCode insertCommon (Arc arc, bool mast, VestaSource::typeTag newtype, AccessControl::Identity who, VestaSource::dupeCheck chk, const char **setOwner, ShortId *delsid, Bit32 *attribs=NULL) throw ()
VDirChangeable * copyMutableToImmutable (const FP::Tag &fptag) throw ()
VDirChangeable * collapse (unsigned int newSize=defaultRepSize) throw ()
ShortIdRefCount * rebuildMutableSidref () throw ()

Static Private Member Functions

static int isMoreOrBase (Bit8 *repb) throw ()
static void setIsMoreOrBase (Bit8 *repb, int newval) throw ()
static Bit32 moreOrBase (Bit8 *repb) throw ()
static void setMoreOrBase (Bit8 *repb, Bit32 newval) throw ()
static Bit8 * nextEntry (Bit8 *entry) throw ()
static bool isEndMark (Bit8 *entry) throw ()
static bool masterFlag (Bit8 *entry) throw ()
static void setMasterFlag (Bit8 *entry, bool newval) throw ()
static bool inUse (Bit8 *entry) throw ()
static void setInUse (Bit8 *entry, bool newval) throw ()
static bool hasEFPTag (Bit8 *entry) throw ()
static void setHasEFPTag (Bit8 *entry, bool newval) throw ()
static bool sameAsBase (Bit8 *entry) throw ()
static void setSameAsBase (Bit8 *entry, bool newval) throw ()
static VestaSource::typeTag type (Bit8 *entry) throw ()
static void setType (Bit8 *entry, VestaSource::typeTag type) throw ()
static Bit32 value (Bit8 *entry) throw ()
static void setValue (Bit8 *entry, Bit32 value) throw ()
static Bit32 attrib (Bit8 *entry) throw ()
static void setAttrib (Bit8 *entry, Bit32 attrib) throw ()
static FP::Tag efptag (Bit8 *entry) throw ()
static void setEFPTag (Bit8 *entry, const FP::Tag &newfptag) throw ()
static int arcLen (Bit8 *entry) throw ()
static char * arc (Bit8 *entry) throw ()
static void setEntry (Bit8 *entry, bool mast, bool sameAsBase, VestaSource::typeTag type, Bit32 value, Bit32 attrib, const FP::Tag *efptag) throw ()

Private Attributes

Bit8 * repEndCache
unsigned int nextRawIndexCache
Bit8 * baseCache
Bit8 * lastRepBlockCache
int totalRepSizeCache
ShortIdRefCount * sidref

Friends

bool filterListCallback (void *closure, typeTag type, Arc arc, unsigned int index, unsigned int pseudoInode, bool mast) throw ()
VestaSource::errorCode VDirVolatileRoot::createVolatileDirectory (char *hostname, char *port, Bit64 handle, VestaSource *&result, time_t timestamp, LongId::lockKindTag lockKind, ReadersWritersLock **lock, bool readOnlyExisting) throw ()
VestaSource::errorCode VDirVolatileRoot::lookupIndexAndLock (unsigned int index, VestaSource *&result, LongId::lockKindTag lockKind, ReadersWritersLock **lock) throw ()
VestaSource * VDCLookupResult (VDirChangeable *dir, Bit8 *entry, unsigned int index)
VestaSource * LongId::lookup (LongId::lockKindTag lockKind, ReadersWritersLock **lock) throw (SRPC::failure)
FP::Tag DirFP (Bit8 *rep)
ShortId DirId (Bit8 *rep)
void InitFPShortId ()

Member Enumeration Documentation

anonymous enum
 

Enumeration values:
defaultRepSize 

Definition at line 275 of file VDirChangeable.H.

anonymous enum [private]
 

Enumeration values:
isNeither 
isMore 
isBase 

Definition at line 334 of file VDirChangeable.H.


Constructor & Destructor Documentation

VDirChangeable::VDirChangeable (  VestaSource::typeTag  type,
int  size = defaultRepSize,
ShortIdRefCount *  sidref = NULL
)  throw ()
 

Definition at line 3531 of file VDirChangeable.C.

References VMemPool::allocate(), VestaSource::appendableDirectory, VestaAttribs::attribs, VestaSource::immutableDirectory, VestaSource::master, VestaSource::type, VMemPool::vDirAppendable, VDIRCH_ENDMARK, VDIRCH_ENTRIES, VDIRCH_FREELEN, VDIRCH_MINSIZE, VMemPool::vDirChangeable, and VMemPool::vDirImmutable.

VDirChangeable::VDirChangeable (  VestaSource::typeTag  type,
Bit8 *  existingRep,
ShortIdRefCount *  sidref = NULL
)  throw ()
 

Definition at line 3518 of file VDirChangeable.C.

References VestaAttribs::attribs, VestaSource::master, and VestaSource::type.


Member Function Documentation

Bit8 * VDirChangeable::appendEntry (  bool  mast,
bool  sameAsBase,
VestaSource::typeTag  type,
Bit32  value,
Bit32  attrib,
const FP::Tag *  efptag,
const char *  arc,
int  arcLen
)  throw () [private]
 

Definition at line 3742 of file VDirChangeable.C.

References VMemPool::allocate(), VestaSource::gap, RECORD_TIME_POINT, VMemPool::shortenPointer(), VMemPool::type(), VDIRCH_E1ARC, VDIRCH_E1ARCLEN, VDIRCH_E1MINSIZE, VDIRCH_E2ARC, VDIRCH_E2ARCLEN, VDIRCH_E2MINSIZE, VDIRCH_EFLAGS, VDIRCH_ENTRIES, and VDIRCH_MINSIZE.

Referenced by collapse(), and renameTo().

static char* VDirChangeable::arc (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 425 of file VDirChangeable.H.

References hasEFPTag(), VDIRCH_E1ARC, and VDIRCH_E2ARC.

Referenced by findArc().

static int VDirChangeable::arcLen (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 422 of file VDirChangeable.H.

References hasEFPTag(), VDIRCH_E1ARCLEN, and VDIRCH_E2ARCLEN.

static Bit32 VDirChangeable::attrib (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 407 of file VDirChangeable.H.

References VDIRCH_EATTRIB.

Referenced by setAttrib().

Bit8* VDirChangeable::attribAddr (  Bit8 *  entry  )  throw () [inline, private]
 

Definition at line 411 of file VDirChangeable.H.

References VestaSource::appendableDirectory, VestaSource::mutableDirectory, VestaSource::type, and VDIRCH_EATTRIB.

Referenced by VDCLookupResult().

Bit8* VDirChangeable::base (   )  throw () [inline, private]
 

Definition at line 434 of file VDirChangeable.H.

References baseCache, fillCaches(), and repEndCache.

Referenced by collapseBase(), getBase(), list(), lookup(), lookupIndex(), and renameTo().

void VDirChangeable::buildMutableSidref (   )  throw ()
 

Definition at line 3479 of file VDirChangeable.C.

References rebuildMutableSidref(), and sidref.

void VDirChangeable::checkMutableSidref (  bool  correct = false  )  throw ()
 

Definition at line 3487 of file VDirChangeable.C.

References DBG_ALWAYS, and Repos::dprintf().

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

Reimplemented from VestaSource.

Definition at line 3025 of file VDirChangeable.C.

References VMemPool::alignmentMask, VestaSource::appendableDirectory, VestaAttribsRep::checkpoint(), VForward::checkpoint(), VDirEvaluator::checkpoint(), checkpoint(), DBG_ALWAYS, VestaSource::deleted, Repos::dprintf(), VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, VestaSource::gap, VestaSource::immutableDirectory, VMemPool::lengthenPointer(), VestaSource::mutableDirectory, NEW_CONSTR, VestaSource::outdated, VestaSource::type, VMemPool::type(), VMemPool::vDirAppendable, VDIRCH_ENTRIES, VDIRCH_TIMESTAMP, VMemPool::vDirChangeable, VMemPool::vDirImmutable, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLogVersion.

Referenced by VDirVolatileRoot::checkpoint(), checkpoint(), and CheckpointAllDirShortIds().

VDirChangeable * VDirChangeable::collapse (  unsigned int  newSize = defaultRepSize  )  throw () [private]
 

Definition at line 4068 of file VDirChangeable.C.

References appendEntry(), VestaSource::deleted, VestaSource::gap, Table< K, V >::Default::Get(), VestaSource::immutableDirectory, VMemPool::lengthenPointer(), NEW_CONSTR, VestaSource::outdated, Table< K, V >::Default::Put(), VestaSource::rep, ArcKey::s, SetDirShortId(), SetFPDirShortId(), setFPTag(), setID(), setTimestampField(), VMemPool::shortenPointer(), ArcKey::slen, VestaSource::type, and VDIRCH_EFPTAG.

Referenced by collapseBase().

VestaSource::errorCode VDirChangeable::collapseBase (  AccessControl::Identity  who = NULL  )  throw (SRPC::failure) [virtual]
 

Reimplemented from VestaSource.

Definition at line 3362 of file VDirChangeable.C.

References base(), collapse(), VestaLog::commit(), VestaSource::immutableDirectory, VRErrorCode::inappropriateOp, VestaSource::mutableDirectory, VRErrorCode::noPermission, VRErrorCode::ok, AccessControl::ownership, VestaLog::put(), VestaSource::rep, VMemPool::shortenPointer(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, and VRLog.

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

Reimplemented from VestaSource.

Definition at line 3556 of file VDirChangeable.C.

References NEW_CONSTR.

VestaSource::errorCode VDirChangeable::copyIndexToMutable (  unsigned int  index,
VestaSource *&  result,
AccessControl::Identity  who = NULL
)  throw ()
 

Definition at line 2469 of file VDirChangeable.C.

References VestaSource::ac, VestaLog::commit(), VestaSource::fptag, VestaSource::immutableDirectory, VestaSource::immutableFile, VRErrorCode::inappropriateOp, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::lookupIndex(), VestaSource::master, MAX_ARC_LEN, VestaSource::mutableDirectory, NEW_CONSTR, VRErrorCode::noPermission, VRErrorCode::notFound, nullFPTag, NullLongId, VRErrorCode::ok, VestaSource::pseudoInode, VestaLog::put(), VestaSource::rep, VMemPool::shortenPointer(), VestaSource::shortId(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VDCLookupResult(), VRLog, and AccessControl::write.

VDirChangeable * VDirChangeable::copyMutableToImmutable (  const FP::Tag &  fptag  )  throw () [private]
 

Definition at line 3803 of file VDirChangeable.C.

References baseCache, FdCache::close(), copyMutableToImmutable(), VestaSource::deleted, FP::Tag::Extend(), FdCache::flush(), VMemPool::free(), VestaSource::gap, GetFPShortId(), VestaSource::immutableDirectory, VestaSource::immutableFile, lastRepBlockCache, VMemPool::lengthenPointer(), VestaSource::mutableDirectory, VestaSource::mutableFile, NEW_CONSTR, NewDirShortId(), nextRawIndexCache, NullShortId, FdCache::open(), VestaSource::outdated, VestaSource::rep, repEndCache, FdCache::rw, SetFPDirShortId(), SetFPFileShortId(), setFPTag(), setID(), setIsMoreOrBase(), setMoreOrBase(), setTimestampField(), VMemPool::shortenPointer(), snapshot(), totalRepSizeCache, VMemPool::vDirImmutable, and VRLogVersion.

Referenced by copyMutableToImmutable().

static FP::Tag VDirChangeable::efptag (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 415 of file VDirChangeable.H.

References FP::ByteCnt, hasEFPTag(), VDIRCH_EFPTAG, and FP::Tag::Words().

Referenced by InitFPShortId(), and VDCLookupResult().

void VDirChangeable::fillCaches (   )  throw () [private]
 

Definition at line 3565 of file VDirChangeable.C.

References baseCache, firstEntry(), VestaSource::gap, isBase, isEndMark(), isMore, isMoreOrBase(), lastRepBlockCache, VMemPool::lengthenPointer(), moreOrBase(), nextEntry(), nextRawIndexCache, repEndCache, totalRepSize(), totalRepSizeCache, type(), value(), and VDIRCH_MINSIZE.

Referenced by base(), lastRepBlock(), nextRawIndex(), repEnd(), and totalRepSize().

Bit8 * VDirChangeable::findArc (  const char *  arc,
unsigned int &  rawIndex,
bool  includeDeleted = false,
bool  includeOutdated = false
)  throw () [private]
 

Definition at line 3607 of file VDirChangeable.C.

References arc(), VestaSource::deleted, VestaSource::gap, VMemPool::lengthenPointer(), VestaSource::outdated, and VDIRCH_MINSIZE.

Referenced by lookup(), and renameTo().

Bit8 * VDirChangeable::findRawIndex (  unsigned int  rawIndex,
Bit8 *&  repBlock
)  throw () [private]
 

Definition at line 3672 of file VDirChangeable.C.

References VestaSource::gap, VMemPool::lengthenPointer(), and VDIRCH_MINSIZE.

Referenced by lookupIndex().

Bit8* VDirChangeable::firstEntry (  Bit8 *  repb  )  throw () [inline, private]
 

Definition at line 368 of file VDirChangeable.H.

References VDIRCH_ENTRIES.

Referenced by fillCaches(), freeTree(), rebuildCallback(), and sweepCallback().

FP::Tag VDirChangeable::fptag (   )  throw () [inline, private]
 

Definition at line 357 of file VDirChangeable.H.

References FP::ByteCnt, VDIRCH_FPTAG, and FP::Tag::Words().

Referenced by DirFP(), insertImmutableDirectory(), and VDCLookupResult().

Bit32 VDirChangeable::freeLen (   )  throw () [inline, private]
 

Definition at line 440 of file VDirChangeable.H.

References repEnd().

void VDirChangeable::freeTree (   )  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 3271 of file VDirChangeable.C.

References ShortIdRefCount::Decrement(), VestaSource::deleted, VestaSource::doLogging, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, firstEntry(), VMemPool::free(), freeTree(), VestaSource::gap, VestaSource::immutableDirectory, VestaSource::immutableFile, isEndMark(), isMore, isMoreOrBase(), VMemPool::lengthenPointer(), moreOrBase(), VestaSource::mutableDirectory, VestaSource::mutableFile, VestaLog::nesting(), nextEntry(), VestaSource::outdated, sidref, VestaSource::size(), type(), VestaSource::type, value(), VMemPool::vDirChangeable, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

Referenced by VDirVolatileRoot::deleteIndex(), freeTree(), GardenerThread(), and reallyDelete().

VestaSource::errorCode VDirChangeable::getBase (  VestaSource *&  result,
AccessControl::Identity  who = NULL
)  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 2188 of file VDirChangeable.C.

References base(), FP::ByteCnt, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, LongId::fromShortId(), VestaSource::immutableDirectory, NEW_CONSTR, VRErrorCode::noPermission, VRErrorCode::notFound, NullShortId, VRErrorCode::ok, AccessControl::read, VestaSource::rep, repEndCache, VestaSource::type, VDIRCH_FPTAG, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and FP::Tag::Words().

Referenced by VDirVolatileRoot::deleteIndex(), and GardenerThread().

Bit32 VDirChangeable::getID (   )  throw () [inline, private]
 

Definition at line 351 of file VDirChangeable.H.

References VDIRCH_ID.

Referenced by DirId(), list(), rebuildCallback(), shortId(), sweepCallback(), and VDCLookupResult().

int VDirChangeable::getRefCount (  ShortId  sid,
int  default_count = 0
)  [inline]
 

Definition at line 225 of file VDirChangeable.H.

References ShortIdRefCount::GetCount(), and sidref.

Referenced by VDCLookupResult().

static bool VDirChangeable::hasEFPTag (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 388 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

Referenced by arc(), arcLen(), efptag(), nextEntry(), and setEFPTag().

bool VDirChangeable::hasName (  Bit8 *  repb  )  throw () [inline, private]
 

Definition at line 324 of file VDirChangeable.H.

References VDIRCH_FLAGS.

bool VDirChangeable::hasName (   )  throw () [inline, virtual]
 

Reimplemented from VestaSource.

Definition at line 315 of file VDirChangeable.H.

References VDIRCH_FLAGS.

Referenced by mark(), and sweepCallback().

VestaSource::errorCode VDirChangeable::insertAppendableDirectory (  Arc  arc,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0
)  throw ()
 

Definition at line 1262 of file VDirChangeable.C.

References VestaSource::ac, VestaSource::appendableDirectory, EntryData::arc, VestaAttribs::attribs, VestaLog::commit(), FP::Tag::Extend(), VestaSource::fptag, VRErrorCode::inappropriateOp, EntryData::index, VestaSource::longid, VRErrorCode::longIdOverflow, MAX_ARC_LEN, VRErrorCode::nameTooLong, NEW_CONSTR, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutQuotedString(), VestaSource::rep, setFPTag(), setTimestampField(), VMemPool::shortenPointer(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::insertCommon (  Arc  arc,
bool  mast,
VestaSource::typeTag  newtype,
AccessControl::Identity  who,
VestaSource::dupeCheck  chk,
const char **  setOwner,
ShortId *  delsid,
Bit32 *  attribs = NULL
)  throw () [private]
 

Definition at line 707 of file VDirChangeable.C.

References VestaSource::ac, AccessControl::agreement, EntryData::arc, AccessControl::del, VestaSource::deleted, VestaSource::dontReplace, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, VestaSource::immutableDirectory, VestaSource::longid, VestaSource::lookup(), VestaSource::master, VestaSource::mutableDirectory, VestaSource::mutableFile, VRErrorCode::nameInUse, VestaLog::nesting(), NEW_CONSTR, VRErrorCode::noPermission, VRErrorCode::notFound, VRErrorCode::notMaster, NullShortId, VRErrorCode::ok, VestaSource::outdated, VestaSource::replaceDiff, VestaSource::replaceNonMaster, EntryData::type, VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, VRLog, and AccessControl::write.

VestaSource::errorCode VDirChangeable::insertFile (  Arc  arc,
ShortId  sid,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0,
FP::Tag *  fptag = NULL
)  throw ()
 

Definition at line 894 of file VDirChangeable.C.

References VestaSource::ac, LongId::append(), VestaSource::appendableDirectory, EntryData::arc, VestaAttribs::attribs, VestaLog::commit(), FP::Tag::Extend(), VestaSource::fptag, LongId::fromShortId(), VestaSource::immutableFile, VRErrorCode::inappropriateOp, EntryData::index, VRErrorCode::invalidArgs, LongId::isAncestorOf(), VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::master, MAX_ARC_LEN, VestaSource::mutableDirectory, VRErrorCode::nameTooLong, NEW_CONSTR, nullFPTag, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutFPTag(), PutQuotedString(), RootLongId, VestaSource::setAttrib(), SetFPFileShortId(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, uidFPTag, UniqueId(), VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::insertGhost (  Arc  arc,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0
)  throw ()
 

Definition at line 1468 of file VDirChangeable.C.

References VestaSource::ac, VestaSource::appendableDirectory, EntryData::arc, VestaAttribs::attribs, VestaLog::commit(), VestaSource::fptag, VestaSource::ghost, VRErrorCode::inappropriateOp, EntryData::index, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::master, MAX_ARC_LEN, VRErrorCode::nameTooLong, NEW_CONSTR, nullFPTag, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutQuotedString(), VestaSource::setAttrib(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::insertImmutableDirectory (  Arc  arc,
VestaSource *  dir,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0,
FP::Tag *  fptag = NULL
)  throw ()
 

Definition at line 1125 of file VDirChangeable.C.

References VestaSource::ac, VestaSource::appendableDirectory, EntryData::arc, VestaAttribs::attribs, VestaLog::commit(), FP::Tag::Extend(), fptag(), VestaSource::fptag, VestaSource::immutableDirectory, VRErrorCode::inappropriateOp, EntryData::index, VRErrorCode::invalidArgs, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::master, MAX_ARC_LEN, VestaSource::mutableDirectory, VRErrorCode::nameTooLong, NEW_CONSTR, NewDirShortId(), VRErrorCode::noPermission, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutFPTag(), PutQuotedString(), AccessControl::read, VestaSource::rep, VestaSource::setAttrib(), SetFPDirShortId(), setFPTag(), setID(), setTimestampField(), VMemPool::shortenPointer(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::insertMutableDirectory (  Arc  arc,
VestaSource *  dir,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0
)  throw ()
 

Definition at line 1349 of file VDirChangeable.C.

References VestaSource::ac, EntryData::arc, VestaAttribs::attribs, baseCache, VestaLog::commit(), VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, VestaSource::immutableDirectory, VRErrorCode::inappropriateOp, EntryData::index, VestaSource::longid, VRErrorCode::longIdOverflow, MAX_ARC_LEN, VestaSource::mutableDirectory, VRErrorCode::nameTooLong, NEW_CONSTR, VRErrorCode::noPermission, nullFPTag, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutQuotedString(), AccessControl::read, VestaSource::rep, setID(), setIsMoreOrBase(), setMoreOrBase(), setSnapshot(), setTimestampField(), VMemPool::shortenPointer(), sidref, VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::insertMutableFile (  Arc  arc,
ShortId  sid,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0
)  throw ()
 

Definition at line 1014 of file VDirChangeable.C.

References VestaSource::ac, LongId::append(), EntryData::arc, VestaAttribs::attribs, FdCache::close(), VestaLog::commit(), FP::Tag::Extend(), SourceOrDerived::fdcreate(), VestaSource::fptag, LongId::fromShortId(), VRErrorCode::inappropriateOp, EntryData::index, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::master, MAX_ARC_LEN, VestaSource::mutableDirectory, VestaSource::mutableFile, VRErrorCode::nameTooLong, NEW_CONSTR, nullFPTag, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutQuotedString(), RECORD_TIME_POINT, VestaSource::setAttrib(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, uidFPTag, UniqueId(), VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::insertStub (  Arc  arc,
bool  mast,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
VestaSource **  newvs = NULL,
time_t  timestamp = 0
)  throw ()
 

Definition at line 1546 of file VDirChangeable.C.

References VestaSource::ac, VestaSource::appendableDirectory, EntryData::arc, VestaAttribs::attribs, VestaLog::commit(), VestaSource::fptag, VRErrorCode::inappropriateOp, EntryData::index, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::master, MAX_ARC_LEN, VRErrorCode::nameTooLong, NEW_CONSTR, nullFPTag, NullLongId, NullShortId, VRErrorCode::ok, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutQuotedString(), VestaSource::setAttrib(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::stub, VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

static bool VDirChangeable::inUse (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 383 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

Referenced by sweepCallback().

static bool VDirChangeable::isEndMark (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 377 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

Referenced by fillCaches(), freeTree(), rebuildCallback(), and sweepCallback().

static int VDirChangeable::isMoreOrBase (  Bit8 *  repb  )  throw () [inline, static, private]
 

Definition at line 335 of file VDirChangeable.H.

References VDIRCH_FLAGS.

Referenced by fillCaches(), and freeTree().

Bit8* VDirChangeable::lastRepBlock (   )  throw () [inline, private]
 

Definition at line 436 of file VDirChangeable.H.

References fillCaches(), lastRepBlockCache, and repEndCache.

VestaSource::errorCode VDirChangeable::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 1942 of file VDirChangeable.C.

References VestaSource::ac, base(), FilterListClosure::callback, FilterListClosure::closure, VestaSource::deleted, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, filterListCallback(), VestaSource::gap, Table< K, V >::Default::Get(), getID(), LongId::getParent(), FilterListClosure::hidden, VestaSource::immutableDirectory, VestaSource::immutableFile, LongId::isAncestorOf(), VMemPool::lengthenPointer(), VestaSource::list(), VestaSource::longid, VestaSource::lookup(), VestaSource::master, VestaSource::mutableDirectory, VestaSource::mutableFile, NEW_CONSTR, nextRawIndex(), VRErrorCode::noPermission, NullShortId, VRErrorCode::ok, VestaSource::outdated, VestaSource::pseudoInode, Table< K, V >::Default::Put(), AccessControl::read, VestaSource::rep, repEndCache, RootLongId, ArcKey::s, shortId(), ArcKey::slen, VestaSource::type, VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

Referenced by rebuildMutableSidref().

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

Reimplemented from VestaSource.

Definition at line 209 of file VDirChangeable.C.

References VestaSource::ac, EntryData::arc, base(), VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, findArc(), LongId::getParent(), VestaSource::immutableDirectory, EntryData::index, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::lookup(), VestaSource::master, NEW_CONSTR, nextRawIndex(), VRErrorCode::noPermission, VRErrorCode::notFound, NullLongId, VRErrorCode::ok, EntryData::pseudoInode, VestaSource::pseudoInode, VestaSource::rep, repEndCache, AccessControl::search, VestaSource::type, VDCLookupResult(), VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

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

Reimplemented from VestaSource.

Definition at line 325 of file VDirChangeable.C.

References VestaSource::ac, EntryData::arc, base(), VestaSource::deleted, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, findRawIndex(), VestaSource::immutableDirectory, VestaSource::immutableFile, EntryData::index, LongId::isAncestorOf(), VMemPool::lengthenPointer(), VForward::longid(), VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::lookupIndex(), VestaSource::master, MAX_ARC_LEN, VestaSource::mutableFile, NEW_CONSTR, nextRawIndex(), VRErrorCode::notFound, NullLongId, VRErrorCode::ok, VestaSource::outdated, EntryData::pseudoInode, VestaSource::pseudoInode, VestaSource::rep, repEndCache, RootLongId, EntryData::type, VestaSource::type, VDCLookupResult(), VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

void VDirChangeable::makeIndexImmutable (  unsigned int  index,
const FP::Tag *  fptag = NULL,
ShortId  newsid = NullShortId
)  throw ()
 

Definition at line 2403 of file VDirChangeable.C.

References VestaLog::commit(), VestaSource::immutableFile, VestaSource::mutableDirectory, VestaSource::mutableFile, NullShortId, VestaLog::put(), PutFPTag(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

VestaSource::errorCode VDirChangeable::makeIndexMutable (  unsigned int  index,
VestaSource *&  result,
ShortId  sid = NullShortId,
Basics::uint64  copyMax = (Basics::uint64)-1,
AccessControl::Identity  who = NULL
)  throw ()
 

Definition at line 2231 of file VDirChangeable.C.

References VestaSource::ac, VestaLog::commit(), CopyShortId(), VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, VestaSource::immutableDirectory, VestaSource::immutableFile, VRErrorCode::inappropriateOp, VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::lookupIndex(), VestaSource::master, MAX_ARC_LEN, VestaSource::mutableDirectory, VestaSource::mutableFile, NEW_CONSTR, VRErrorCode::noPermission, VRErrorCode::notFound, nullFPTag, NullLongId, NullShortId, VRErrorCode::ok, VestaSource::pseudoInode, VestaLog::put(), VestaSource::rep, setID(), setIsMoreOrBase(), setMoreOrBase(), setTimestampField(), VMemPool::shortenPointer(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VDCLookupResult(), VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, VRLog, and AccessControl::write.

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

Reimplemented from VestaSource.

Definition at line 2617 of file VDirChangeable.C.

References VestaSource::appendableDirectory, DBG_ALWAYS, VestaSource::deleted, Repos::dprintf(), VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, VestaSource::gap, VDirEvaluator::hasName(), hasName(), VestaSource::immutableDirectory, VestaSource::immutableFile, VMemPool::lengthenPointer(), mark(), VDirEvaluator::mark(), VestaAttribsRep::mark(), VestaSource::mutableDirectory, VestaSource::mutableFile, NEW, NullShortId, VestaSource::outdated, ArcKey::s, VDirEvaluator::setHasName(), setHasName(), VestaSource::setVisited(), VDirEvaluator::setVisited(), setVisited(), ArcKey::slen, VestaSource::type, VMemPool::type(), VMemPool::vDirAppendable, VMemPool::vDirChangeable, VMemPool::vDirImmutable, VMemPool::vForward, VDirEvaluator::visited(), visited(), VestaSource::volatileDirectory, and VestaSource::volatileROEDirectory.

Referenced by VDirVolatileRoot::mark(), and mark().

void VDirChangeable::markCallback (  void *  closure,
VMemPool::typeCode  type
)  throw () [static]
 

Definition at line 2886 of file VDirChangeable.C.

References VestaSource::mutableRoot(), VestaSource::repositoryRoot(), VDCStats, and VestaSource::volatileRoot().

Referenced by InitVRWeed().

static bool VDirChangeable::masterFlag (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 379 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

Referenced by VDCLookupResult().

VestaSource::errorCode VDirChangeable::measureDirectory (  directoryStats &  result,
AccessControl::Identity  who = NULL
)  throw (SRPC::failure) [virtual]
 

Reimplemented from VestaSource.

Definition at line 3993 of file VDirChangeable.C.

References VestaSource::deleted, VestaSource::gap, Table< K, V >::Default::Get(), VestaSource::immutableDirectory, VMemPool::lengthenPointer(), VestaSource::mutableDirectory, VRErrorCode::noPermission, VRErrorCode::ok, VestaSource::outdated, Table< K, V >::Default::Put(), AccessControl::read, ArcKey::s, ArcKey::slen, and VestaSource::type.

static Bit32 VDirChangeable::moreOrBase (  Bit8 *  repb  )  throw () [inline, static, private]
 

Definition at line 339 of file VDirChangeable.H.

References VDIRCH_MOREORBASE.

Referenced by fillCaches(), and freeTree().

static Bit8* VDirChangeable::nextEntry (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 370 of file VDirChangeable.H.

References hasEFPTag(), VDIRCH_E1ARCLEN, VDIRCH_E1MINSIZE, VDIRCH_E2ARCLEN, and VDIRCH_E2MINSIZE.

Referenced by fillCaches(), and freeTree().

unsigned int VDirChangeable::nextRawIndex (   )  throw () [inline, private]
 

Definition at line 432 of file VDirChangeable.H.

References fillCaches(), nextRawIndexCache, and repEndCache.

Referenced by list(), lookup(), and lookupIndex().

void VDirChangeable::printStats (   )  throw () [static]
 

Definition at line 2856 of file VDirChangeable.C.

References DBG_VMEMPOOL, Repos::dprintf(), and VDCStats.

VestaSource::errorCode VDirChangeable::reallyDelete (  Arc  arc,
AccessControl::Identity  who = NULL,
bool  existCheck = true,
time_t  timestamp = 0
)  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 525 of file VDirChangeable.C.

References VestaSource::ac, AccessControl::agreement, VestaSource::appendableDirectory, EntryData::arc, VestaLog::commit(), VestaSource::deleted, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, freeTree(), VestaSource::immutableDirectory, VRErrorCode::inappropriateOp, VMemPool::lengthenPointer(), VestaSource::longid, VestaSource::lookup(), VestaSource::master, VestaSource::mutableDirectory, VestaSource::mutableFile, VRErrorCode::nameInUse, VestaLog::nesting(), NEW_CONSTR, VRErrorCode::noPermission, VRErrorCode::notFound, VRErrorCode::ok, VestaSource::outdated, VestaLog::put(), PutQuotedString(), sidref, VestaLog::start(), Basics::OBufStream::str(), EntryData::type, VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, VRLog, VRLogVersion, and AccessControl::write.

void VDirChangeable::rebuildCallback (  void *  closure,
VMemPool::typeCode  type,
void *  addr,
Bit32 &  size
)  throw () [static]
 

Definition at line 2973 of file VDirChangeable.C.

References VestaSource::appendableDirectory, firstEntry(), getID(), VestaSource::immutableDirectory, VestaSource::immutableFile, isEndMark(), NullShortId, VestaSource::rep, SetDirShortId(), SetFPDirShortId(), SetFPFileShortId(), VMemPool::shortenPointer(), type(), VestaSource::unused, VMemPool::vDirAppendable, and VMemPool::vDirImmutable.

Referenced by InitVRWeed().

ShortIdRefCount * VDirChangeable::rebuildMutableSidref (   )  throw () [private]
 

Definition at line 3462 of file VDirChangeable.C.

References list(), VestaSource::mutableDirectory, MutableRootLongId, VRErrorCode::ok, buildMutableSidrefClosure::sidref, and buildMutableSidrefClosure::vs.

Referenced by buildMutableSidref().

VestaSource::errorCode VDirChangeable::renameTo (  Arc  arc,
VestaSource *  fromDir,
Arc  fromArc,
AccessControl::Identity  who = NULL,
VestaSource::dupeCheck  chk = VestaSource::dontReplace,
time_t  timestamp = 0
)  throw ()
 

Definition at line 1630 of file VDirChangeable.C.

References VestaSource::ac, VestaSource::appendableDirectory, appendEntry(), EntryData::arc, VestaAttribs::attribs, base(), VestaLog::commit(), copyOwnerCallback(), VForward::create(), VestaSource::deleted, VestaSource::device, VestaSource::evaluatorDirectory, VestaSource::evaluatorROEDirectory, FP::Tag::Extend(), findArc(), VestaAttribs::firstAttrib(), VestaSource::fptag, VestaSource::ghost, VestaAttribs::hasAttribs(), VestaSource::immutableDirectory, VestaSource::immutableFile, VRErrorCode::inappropriateOp, EntryData::index, VRErrorCode::invalidArgs, LongId::isAncestorOf(), VestaSource::longid, VRErrorCode::longIdOverflow, VestaSource::lookup(), VestaSource::master, MAX_ARC_LEN, VestaSource::mutableDirectory, VestaSource::mutableFile, VRErrorCode::nameTooLong, NEW_CONSTR, VRErrorCode::noPermission, NullLongId, NullShortId, VRErrorCode::ok, VestaSource::outdated, AccessControl::owner, VestaSource::pseudoInode, VestaLog::put(), PutQuotedString(), VestaSource::rep, setEntry(), SetFPFileShortId(), setID(), setIsMoreOrBase(), setMoreOrBase(), setSnapshot(), setTimestampField(), VMemPool::shortenPointer(), VestaSource::shortId(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::stub, VestaSource::timestamp(), timestamp(), VestaSource::type, VDCLookupResult(), VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, VRLog, VRLogVersion, and AccessControl::write.

Bit8* VDirChangeable::repEnd (   )  throw () [inline, private]
 

Definition at line 430 of file VDirChangeable.H.

References fillCaches(), and repEndCache.

Referenced by freeLen(), and setFreeLen().

void VDirChangeable::resync (  AccessControl::Identity  who = NULL  )  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 3602 of file VDirChangeable.C.

static bool VDirChangeable::sameAsBase (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 393 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

static void VDirChangeable::setAttrib (  Bit8 *  entry,
Bit32  attrib
)  throw () [inline, static, private]
 

Definition at line 409 of file VDirChangeable.H.

References attrib(), and VDIRCH_EATTRIB.

static void VDirChangeable::setEFPTag (  Bit8 *  entry,
const FP::Tag &  newfptag
)  throw () [inline, static, private]
 

Definition at line 418 of file VDirChangeable.H.

References FP::ByteCnt, hasEFPTag(), and VDIRCH_EFPTAG.

void VDirChangeable::setEntry (  Bit8 *  entry,
bool  mast,
bool  sameAsBase,
VestaSource::typeTag  type,
Bit32  value,
Bit32  attrib,
const FP::Tag *  efptag
)  throw () [static, private]
 

Definition at line 3719 of file VDirChangeable.C.

References VestaSource::gap, nullFPTag, and VDIRCH_EFLAGS.

Referenced by renameTo().

void VDirChangeable::setFPTag (  const FP::Tag &  newfptag  )  throw () [inline, private]
 

Definition at line 360 of file VDirChangeable.H.

References FP::ByteCnt, and VDIRCH_FPTAG.

Referenced by collapse(), copyMutableToImmutable(), insertAppendableDirectory(), and insertImmutableDirectory().

void VDirChangeable::setFreeLen (  Bit32  newval  )  throw () [inline, private]
 

Definition at line 442 of file VDirChangeable.H.

References repEnd().

static void VDirChangeable::setHasEFPTag (  Bit8 *  entry,
bool  newval
)  throw () [inline, static, private]
 

Definition at line 390 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

void VDirChangeable::setHasName (  Bit8 *  repb,
bool  newval
)  throw () [inline, private]
 

Definition at line 326 of file VDirChangeable.H.

References VDIRCH_FLAGS.

void VDirChangeable::setHasName (  bool  newval  )  throw () [inline, virtual]
 

Reimplemented from VestaSource.

Definition at line 316 of file VDirChangeable.H.

References VDIRCH_FLAGS.

Referenced by VDirVolatileRoot::mark(), mark(), and sweepCallback().

void VDirChangeable::setID (  Bit32  newval  )  throw () [inline, private]
 

Definition at line 353 of file VDirChangeable.H.

References VDIRCH_ID.

Referenced by collapse(), copyMutableToImmutable(), VDirVolatileRoot::createVolatileDirectory(), insertImmutableDirectory(), insertMutableDirectory(), makeIndexMutable(), renameTo(), and sweepCallback().

VestaSource::errorCode VDirChangeable::setIndexMaster (  unsigned int  index,
bool  state,
AccessControl::Identity  who = NULL
)  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 2569 of file VDirChangeable.C.

References AccessControl::agreement, VestaSource::appendableDirectory, VestaLog::commit(), VestaSource::deleted, VestaSource::gap, VRErrorCode::noPermission, VRErrorCode::notFound, VRErrorCode::ok, VestaSource::outdated, VestaLog::put(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, and VRLog.

static void VDirChangeable::setInUse (  Bit8 *  entry,
bool  newval
)  throw () [inline, static, private]
 

Definition at line 385 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

static void VDirChangeable::setIsMoreOrBase (  Bit8 *  repb,
int  newval
)  throw () [inline, static, private]
 

Definition at line 337 of file VDirChangeable.H.

References VDIRCH_FLAGS.

Referenced by copyMutableToImmutable(), VDirVolatileRoot::createVolatileDirectory(), insertMutableDirectory(), makeIndexMutable(), and renameTo().

static void VDirChangeable::setMasterFlag (  Bit8 *  entry,
bool  newval
)  throw () [inline, static, private]
 

Definition at line 381 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

static void VDirChangeable::setMoreOrBase (  Bit8 *  repb,
Bit32  newval
)  throw () [inline, static, private]
 

Definition at line 341 of file VDirChangeable.H.

References VDIRCH_MOREORBASE.

Referenced by copyMutableToImmutable(), VDirVolatileRoot::createVolatileDirectory(), insertMutableDirectory(), makeIndexMutable(), and renameTo().

static void VDirChangeable::setSameAsBase (  Bit8 *  entry,
bool  newval
)  throw () [inline, static, private]
 

Definition at line 395 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

void VDirChangeable::setSnapshot (  Bit32  newval  )  throw () [inline, private]
 

Definition at line 365 of file VDirChangeable.H.

References VDIRCH_FPTAG.

Referenced by insertMutableDirectory(), and renameTo().

VestaSource::errorCode VDirChangeable::setTimestamp (  time_t  ts,
AccessControl::Identity  who = NULL
)  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 474 of file VDirChangeable.C.

References VestaSource::appendableDirectory, VestaLog::commit(), VRErrorCode::inappropriateOp, VestaSource::mutableDirectory, VRErrorCode::noPermission, VRErrorCode::ok, AccessControl::ownership, VestaLog::put(), VestaLog::start(), Basics::OBufStream::str(), VestaSource::type, VestaSource::volatileDirectory, VestaSource::volatileROEDirectory, VRLog, and AccessControl::write.

Referenced by VDirVolatileRoot::createVolatileDirectory().

void VDirChangeable::setTimestampField (  Bit32  newval  )  throw () [inline, private]
 

Definition at line 348 of file VDirChangeable.H.

References VDIRCH_TIMESTAMP.

Referenced by collapse(), copyMutableToImmutable(), insertAppendableDirectory(), insertImmutableDirectory(), insertMutableDirectory(), makeIndexMutable(), and renameTo().

static void VDirChangeable::setType (  Bit8 *  entry,
VestaSource::typeTag  type
)  throw () [inline, static, private]
 

Definition at line 400 of file VDirChangeable.H.

References type(), and VDIRCH_EFLAGS.

static void VDirChangeable::setValue (  Bit8 *  entry,
Bit32  value
)  throw () [inline, static, private]
 

Definition at line 405 of file VDirChangeable.H.

References value(), and VDIRCH_EVALUE.

void VDirChangeable::setVisited (  Bit8 *  repb,
bool  newval
)  throw () [inline, private]
 

Definition at line 330 of file VDirChangeable.H.

References VDIRCH_FLAGS.

void VDirChangeable::setVisited (  bool  newval  )  throw () [inline, virtual]
 

Reimplemented from VestaSource.

Definition at line 320 of file VDirChangeable.H.

References VDIRCH_FLAGS.

Referenced by mark(), and sweepCallback().

ShortId VDirChangeable::shortId (   )  throw () [virtual]
 

Reimplemented from VestaSource.

Definition at line 68 of file VDirChangeable.C.

References getID(), VestaSource::immutableDirectory, NullShortId, and VestaSource::type.

Referenced by list().

Bit32 VDirChangeable::snapshot (   )  throw () [inline, private]
 

Definition at line 363 of file VDirChangeable.H.

References VDIRCH_FPTAG.

Referenced by copyMutableToImmutable().

bool VDirChangeable::sweepCallback (  void *  closure,
VMemPool::typeCode  type,
void *  addr,
Bit32 &  size
)  throw () [static]
 

Definition at line 2902 of file VDirChangeable.C.

References VestaSource::appendableDirectory, DeleteDirShortId(), firstEntry(), VestaSource::gap, getID(), hasName(), VestaSource::immutableDirectory, VestaSource::immutableFile, inUse(), isEndMark(), VestaSource::mutableFile, NullShortId, VestaSource::outdated, VestaSource::rep, setHasName(), setID(), setVisited(), type(), VestaSource::unused, value(), VDCStats, VMemPool::vDirAppendable, VMemPool::vDirImmutable, and visited().

Referenced by InitVRWeed().

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

Reimplemented from VestaSource.

Definition at line 344 of file VDirChangeable.H.

References VDIRCH_TIMESTAMP.

Referenced by renameTo().

int VDirChangeable::totalRepSize (   )  throw () [inline, private]
 

Definition at line 438 of file VDirChangeable.H.

References fillCaches(), repEndCache, and totalRepSizeCache.

Referenced by fillCaches().

static VestaSource::typeTag VDirChangeable::type (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 398 of file VDirChangeable.H.

References VDIRCH_EFLAGS.

Referenced by fillCaches(), freeTree(), rebuildCallback(), setType(), sweepCallback(), and VDCLookupResult().

static Bit32 VDirChangeable::value (  Bit8 *  entry  )  throw () [inline, static, private]
 

Definition at line 403 of file VDirChangeable.H.

References VDIRCH_EVALUE.

Referenced by fillCaches(), freeTree(), InitFPShortId(), setValue(), sweepCallback(), and VDCLookupResult().

bool VDirChangeable::visited (  Bit8 *  repb  )  throw () [inline, private]
 

Definition at line 328 of file VDirChangeable.H.

References VDIRCH_FLAGS.

bool VDirChangeable::visited (   )  throw () [inline, virtual]
 

Reimplemented from VestaSource.

Definition at line 318 of file VDirChangeable.H.

References VDIRCH_FLAGS.

Referenced by mark(), and sweepCallback().


Friends And Related Function Documentation

FP::Tag DirFP (  Bit8 *  rep  )  [friend]
 

Definition at line 59 of file FPShortId.C.

ShortId DirId (  Bit8 *  rep  )  [friend]
 

Definition at line 66 of file FPShortId.C.

bool filterListCallback (  void *  closure,
typeTag  type,
Arc  arc,
unsigned int  index,
unsigned int  pseudoInode,
bool  mast
)  throw () [friend]
 

void InitFPShortId (   )  [friend]
 

Definition at line 72 of file FPShortId.C.

VestaSource* LongId::lookup (  LongId::lockKindTag  lockKind,
ReadersWritersLock **  lock
)  throw (SRPC::failure) [friend]
 

VestaSource* VDCLookupResult (  VDirChangeable *  dir,
Bit8 *  entry,
unsigned int  index
)  [friend]
 

Definition at line 78 of file VDirChangeable.C.

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

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


Member Data Documentation

Bit8* VDirChangeable::baseCache [private]
 

Definition at line 304 of file VDirChangeable.H.

Referenced by base(), copyMutableToImmutable(), VDirVolatileRoot::createVolatileDirectory(), fillCaches(), and insertMutableDirectory().

Bit8* VDirChangeable::lastRepBlockCache [private]
 

Definition at line 305 of file VDirChangeable.H.

Referenced by copyMutableToImmutable(), fillCaches(), and lastRepBlock().

unsigned int VDirChangeable::nextRawIndexCache [private]
 

Definition at line 303 of file VDirChangeable.H.

Referenced by copyMutableToImmutable(), fillCaches(), and nextRawIndex().

Bit8* VDirChangeable::repEndCache [private]
 

Definition at line 302 of file VDirChangeable.H.

Referenced by base(), copyMutableToImmutable(), fillCaches(), getBase(), lastRepBlock(), list(), lookup(), lookupIndex(), nextRawIndex(), repEnd(), and totalRepSize().

ShortIdRefCount* VDirChangeable::sidref [private]
 

Definition at line 496 of file VDirChangeable.H.

Referenced by buildMutableSidref(), VDirVolatileRoot::createVolatileDirectory(), freeTree(), getRefCount(), insertMutableDirectory(), reallyDelete(), and VDCLookupResult().

int VDirChangeable::totalRepSizeCache [private]
 

Definition at line 306 of file VDirChangeable.H.

Referenced by copyMutableToImmutable(), fillCaches(), and totalRepSize().


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