OOFILE  1.9
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
OOF_simpleRecordBackend Class Referenceabstract

Main implementation parent for backends following the record-oriented model. More...

#include <oofrecs.h>

Inheritance diagram for OOF_simpleRecordBackend:
Inheritance graph
[legend]
Collaboration diagram for OOF_simpleRecordBackend:
Collaboration graph
[legend]

Classes

struct  WC
 Wildcard type for parsing string literals when querying database. More...
 

Public Types

enum  ERecordState { eNew, eLoaded, eUnloaded }
 

Public Member Functions

virtual void addIndices (const char *newIDXname)=0
 
virtual bool addOIDtoSelection (oidT)
 
char * buffer () const
 
virtual void buildSchema (bool rebuilding=false)
 
virtual OOF_tableBackendclone (dbTable::selSharingT, dbTable *) const =0
 
virtual void close ()=0
 
void copyFrom (const OOF_recordBufferedContext *)
 
virtual void copyFrom (const OOF_recordBufferedContext &)
 
virtual unsigned long countAll () const =0
 
virtual void createTableInConnection (const dbConnect *)=0
 
unsigned long currentOffset () const
 
virtual void deleteStorage ()
 
void describeInvariant (std::ostream &) const
 debugging More...
 
virtual void describeState (std::ostream &) const
 
virtual void dropRecordFromSelection (unsigned long)
 
virtual void ignoreDuplicateRecords ()
 
bool isNew () const
 
virtual bool isRecordLoaded () const
 
virtual void next ()=0
 
virtual void noticeDuplicateRecords ()
 
virtual bool openTableInConnection (const dbConnect *, const bool createIfMissing=false)=0
 
 operator unsigned long () const
 
bool operator== (unsigned long) const
 
bool operator== (const OOF_recordBufferedContext &) const
 
virtual void rebuild ()=0
 
virtual bool reloadRecord ()
 
virtual void setBlobLength (fieldNumT, unsigned long len)
 
virtual void setFileExtensions (const char *, const char *)
 
virtual void start ()=0
 
virtual void suppressIndices ()=0
 
virtual ~OOF_simpleRecordBackend ()
 
OID generation
virtual oidT currentOID ()
 
virtual oidT oidOfRecord (unsigned long)
 
selection manipulation
virtual unsigned long recordNumber () const
 
virtual unsigned long recordNumberOfOID (oidT inOID)
 Implement dbTable::recordNumberOfOID. More...
 
virtual void selectAll ()
 
virtual void selectNone ()
 
virtual void invert ()
 
virtual void difference_with (const OOF_tableBackend *)
 
virtual void intersection_with (const OOF_tableBackend *)
 
virtual void union_with (const OOF_tableBackend *)
 
virtual void union_with_no_overlap (const OOF_tableBackend *)
 
virtual void difference_with (const dbSelection &)
 
virtual void intersection_with (const dbSelection &)
 
virtual void union_with (const dbSelection &)
 
virtual void union_with_no_overlap (const dbSelection &)
 
public search functions
virtual bool search (const dbQueryClause *qClause)
 
virtual unsigned long recordNumberMatching (const dbQueryClause *qClause, bool *outFoundIt=0) const
 
virtual bool checkDuplicate (const dbQueryClause *)
 
virtual bool searchSelection (const dbQueryClause *)
 
virtual bool searchEqual (const dbField *, const char *, bool matchEntireKey=true)
 
virtual bool searchEqual (const dbField *, const void *)
 
virtual bool searchSelContainsAnyDelimited (const dbField *schField, const char *schStr, char delim)
 
virtual bool searchSelContainsAnyOf (const dbField *schField, const char **schStrs, unsigned long count)
 
virtual bool searchSelContainsAllDelimited (const dbField *schField, const char *schStr, char delim)
 
virtual bool searchSelContainsAllOf (const dbField *schField, const char **schStrs, unsigned long count)
 
virtual bool loadRelatedContextJoiningFromTo (const dbField *, const dbField *)
 Implements relationships via searching. More...
 
field-level data access
virtual bool readBool (const dbField *) const
 Assumes bools stored as unsigned short, 0==false. More...
 
virtual short readShort (const dbField *) const
 
virtual long readLong (const dbField *) const
 
virtual double readDouble (const dbField *) const
 
virtual const char * readChars (const dbField *) const
 
virtual oofString readString (const dbField *) const
 Copy field data into a string. More...
 
virtual void writeBool (bool, const dbField *)
 Encode bool as short to be decoded by readBool. More...
 
virtual void writeShort (short, const dbField *)
 
virtual void writeLong (long, const dbField *)
 
virtual void writeDouble (double, const dbField *)
 
virtual void writeChars (const char *, long numChars, long maxLen, const dbField *, long startIndex=0)
 
virtual void writeBytes (const char *inBuf, long inLen, const dbField *inField)
 
virtual char * getByteWriteAddress (unsigned long, const dbField *)
 
recordwise access
virtual bool atFirst () const
 
virtual bool atLast () const
 
virtual bool atRelative (unsigned long) const
 
virtual void prev ()
 
virtual bool more () const
 
virtual unsigned long count () const
 
void gotoBOF ()
 
record-level data access
virtual void newRecord ()
 Sets up a new record ready to enter data On exit the state is: Selection state is aboutToDirty Selection Set record state to New Set dirty to false Clear buffer Append new record to selection. More...
 
virtual void saveRecord ()
 Save current main record and any cached dirty records. More...
 
virtual void unloadRecord ()
 
virtual void unloadCache ()
 
virtual void revertRecord ()
 
virtual void pack ()
 
sorting public interface
virtual void setSortOrder (dbSorter *adoptSorter)
 
virtual dbSortersorter () const
 
virtual void sortSelectionNow (fieldNumT)
 
virtual void sortSelectionInverseNow (fieldNumT)
 
virtual void sortSelectionNow (const dbSorter *)
 
reflective operators
virtual unsigned long fieldDataLen (const dbField *) const
 
virtual bool fieldIsDirty (fieldNumT) const
 
virtual bool isNewRecord () const
 
virtual unsigned int numIndexes () const
 
virtual unsigned int numFiles () const
 
virtual unsigned long blobPointerReferenceSize () const
 
virtual bool allSelected () const
 
virtual bool contains (oidT) const
 
getting & saving selections as lightweight objects
virtual dbSelection currentSelection () const
 
virtual dbSelection makeEmptySelection () const
 
virtual void setSelection (const dbSelection &)
 
virtual void setSelection (const OOF_Selection *)
 
selection of specific contexts
virtual bool selectJustOID (oidT)
 
virtual void selectJustCurrent ()
 
locking
virtual void lockRecord ()
 
virtual void unlockRecord ()
 
transactions
virtual void beginTransaction (short tMode)
 
virtual void abortTransaction (short rMode)
 
virtual void commitTransaction (short rMode)
 
record-level data access
virtual void deleteRecord ()=0
 
virtual void loadBlob (const dbBLOB *)=0
 
bool isDirty () const
 
void markDirty ()
 
reflective operators
void fieldHasDefaultCalculator (dbField *)
 
void fieldHasStoredCalculator (dbField *)
 
virtual unsigned long sequenceNumber () const =0
 
dbTabletable () const
 
dbFieldfield (fieldNumT) const
 
public search functions
virtual bool gotoRecord (unsigned long relativeNum)=0
 

Protected Types

Ken's wildcard header bits
enum  OOF_wctype {
  prefix, single, multiple, singlefinal,
  multiplefinal
}
 

Protected Member Functions

void AdoptBuffer (OOF_recordBufferedContext *)
 
void AllocBuffer ()
 
unsigned long BlobLenFromBuffer (const dbField *, const char *theirBuffer) const
 
unsigned long BlobLenFromBuffer (fieldNumT, const char *theirBuffer) const
 
unsigned long BlobPosFromBuffer (const dbField *fld, const char *theirBuffer) const
 
unsigned long BlobPosFromBuffer (fieldNumT, const char *theirBuffer) const
 
virtual void BuildBackendtables (bool rebuilding)=0
 backend construction More...
 
void CacheDirtyCurrentRecord ()
 
virtual void CachingContextChange ()
 
virtual bool CanUseIndex (const dbField *, dbQueryClause::BinaryQueryOps=dbQueryClause::equals) const
 
bool CommonSimpleDelete ()
 
virtual void ContextChange ()
 
void DonateBlobBodiesTo (OOF_recordBufferedContext *)
 
unsigned int FieldAlignsTo (const dbField *) const
 
void * GetFieldReadFrom (fieldNumT) const
 
void * GetFieldWriteDest (const dbField *)
 
bool GotoRecordForAllUnindexed (unsigned long relativeNum)
 
bool IgnoringDuplicateRecords () const
 
bool Invariant (const char *optionalComment=0) const
 Check combination of member variables defining Invariant state. More...
 
oofString InvariantDescription () const
 
virtual void LoadRecordAtOffset (unsigned long offset)=0
 
bool MaybeLoadRecordFromCache (unsigned long offset)
 
 OOF_simpleRecordBackend (dbTable *)
 
 OOF_simpleRecordBackend (const OOF_simpleRecordBackend &, dbTable::selSharingT, dbTable *)
 
unsigned long PadFieldWidthForAlignment (const dbField *fld) const
 
void ResetBlobs ()
 
virtual void SaveContext ()=0
 
void SetBlobLenInBuffer (fieldNumT, unsigned long len, const char *theirBuffer) const
 
void SetBlobPosInBuffer (fieldNumT, unsigned long pos, const char *theirBuffer) const
 
unsigned long state () const
 
bool tableCachesDirtyRecords () const
 
high-level search redirectors
virtual bool SearchBinaryFieldToLiteral (const dbQueryBinary *)
 
virtual bool SearchTrinaryFieldToLiterals (const dbQueryTrinary *)
 
virtual bool SearchCombineSubclauses (const dbQueryBinaryCombo *, bool searchSel)
 
virtual bool SearchSelectionBinaryFieldToLiteral (const dbQueryBinary *)
 
Non-Indexed searches
bool SearchEqualNonIndexed (const dbField *, const char *, bool matchEntireKey=true)
 
bool SearchEqualNonIndexed (const dbField *, const void *)
 
bool SearchWordNonIndexed (const dbField *, const char *, bool startsWith=false)
 
bool SearchNotEqualNonIndexed (const dbField *, const char *, bool matchEntireKey=true)
 
bool SearchNotEqualNonIndexed (const dbField *, const void *)
 
bool SearchBetweenNonIndexed (const dbField *, const char *, const char *)
 
bool SearchBetweenNonIndexed (const dbField *, const void *, const void *)
 
bool SearchOutsideNonIndexed (const dbField *, const char *, const char *)
 
bool SearchOutsideNonIndexed (const dbField *, const void *, const void *)
 
bool SearchComparativeNonIndexed (const dbField *, const char *, dbQueryClause::BinaryQueryOps)
 
bool SearchComparativeNonIndexed (const dbField *, const void *, dbQueryClause::BinaryQueryOps)
 
bool SearchSelectionTrinaryFieldToLiterals (const dbQueryTrinary *)
 
Non-Indexed wildcard Searches
bool SearchEqualNonIndexedWildcard (const dbField *schField, const char *schStr, bool matchEntireKey=true)
 
bool SearchNotEqualNonIndexedWildcard (const dbField *schField, const char *schStr, bool matchEntireKey=true)
 
Sort implementations
void SortSelectionNow (const dbUlong *theFld)
 
void SortSelectionNow (const dbLong *theFld)
 
void SortSelectionNow (const dbUshort *theFld)
 
void SortSelectionNow (const dbShort *theFld)
 
void SortSelectionNow (const dbReal *theFld)
 
void SortSelectionNow (const dbChar *theFld)
 
void SortSelectionNow (const dbText *theFld)
 
void SortSelectionNow (const dbField *theFld, unsigned long fixedBinaryLength)
 
void SortSelectionInverseNow (const dbUlong *theFld)
 
void SortSelectionInverseNow (const dbLong *theFld)
 
void SortSelectionInverseNow (const dbUshort *theFld)
 
void SortSelectionInverseNow (const dbShort *theFld)
 
void SortSelectionInverseNow (const dbReal *theFld)
 
void SortSelectionInverseNow (const dbChar *theFld)
 
void SortSelectionInverseNow (const dbText *theFld)
 
void SortSelectionInverseNow (const dbField *theFld, unsigned long fixedBinaryLength)
 
void SubSort (const dbSorter *theSorter, const unsigned long level, unsigned long *theData, const unsigned long count)
 Now we're sorting at the recursive level of partitioning in a nested sort ! More...
 

Protected Attributes

OOF_ExpandableLongArraymBlobFieldBodies
 
OOF_ExpandableLongArraymBlobFieldNums
 
char * mBuffer
 
unsigned long mCurrLoadedRecOffset
 
bool mDirty
 
OOF_dirtyFieldMap mDirtyMap
 
OOF_recordCachemDirtyRecordCache
 
OOF_recordFieldEntrymFieldBufMap
 
unsigned int * mFieldBufMapRefCount
 
OOF_Dictionary mFields
 
bool mHasDefaultCalculators
 
bool mHasStoredCalculators
 
bool mIgnoreDuplicateRecords
 
unsigned short mNumFiles
 
unsigned short mNumIndexes
 
unsigned short mOverheadLeadingBytes
 
unsigned long mRecBufLen
 
ERecordState mRecordState
 
OOF_recordSelection mSelection
 
dbTablemTable
 

Friends

class OOF_recordCacheCopier
 

Detailed Description

Main implementation parent for backends following the record-oriented model.

An SQL backend would be a sibling to this class. Implements all the non-indexed searches, sorts and iteration. Adding a new non-indexed backend is simply a matter of subclassing this and adding necessary IO methods.

Definition at line 295 of file oofrecs.h.

Constructor & Destructor Documentation

OOF_simpleRecordBackend::OOF_simpleRecordBackend ( dbTable theTable)
protected

Definition at line 34 of file oofrec1.cpp.

OOF_simpleRecordBackend::OOF_simpleRecordBackend ( const OOF_simpleRecordBackend rhs,
dbTable::selSharingT  selSharing,
dbTable theTable 
)
protected
OOF_simpleRecordBackend::~OOF_simpleRecordBackend ( )
virtual

Definition at line 85 of file oofrec1.cpp.

References mBlobFieldNums, mDirtyRecordCache, mFieldBufMap, and mFieldBufMapRefCount.

Member Function Documentation

void OOF_simpleRecordBackend::abortTransaction ( short  rMode)
virtual

Implements OOF_tableBackend.

Definition at line 1822 of file oofrec3.cpp.

virtual void OOF_tableBackend::addIndices ( const char *  newIDXname)
pure virtualinherited
bool OOF_simpleRecordBackend::addOIDtoSelection ( oidT  inOID)
virtual

Implements OOF_tableBackend.

Definition at line 1204 of file oofrec1.cpp.

References OOF_recordSelection::append(), contains(), Invariant(), and mSelection.

void OOF_simpleRecordBackend::AdoptBuffer ( OOF_recordBufferedContext buf)
protected
void OOF_recordBufferedContext::AllocBuffer ( )
protectedinherited
bool OOF_simpleRecordBackend::allSelected ( ) const
virtual
bool OOF_simpleRecordBackend::atFirst ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 333 of file oofrec1.cpp.

References isRecordLoaded(), OOF_recordSelection::iter(), and mSelection.

bool OOF_simpleRecordBackend::atLast ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 340 of file oofrec1.cpp.

References count(), isRecordLoaded(), OOF_recordSelection::iter(), and mSelection.

bool OOF_simpleRecordBackend::atRelative ( unsigned long  rel) const
virtual

Implements OOF_tableBackend.

Definition at line 347 of file oofrec1.cpp.

References isRecordLoaded(), OOF_recordSelection::iter(), and mSelection.

void OOF_simpleRecordBackend::beginTransaction ( short  tMode)
virtual

Implements OOF_tableBackend.

Definition at line 1808 of file oofrec3.cpp.

unsigned long OOF_simpleRecordBackend::BlobLenFromBuffer ( const dbField fld,
const char *  theirBuffer 
) const
inlineprotected
unsigned long OOF_simpleRecordBackend::BlobLenFromBuffer ( fieldNumT  fldNum,
const char *  theirBuffer 
) const
protected

Definition at line 239 of file oofrec1.cpp.

References mFieldBufMap.

unsigned long OOF_simpleRecordBackend::blobPointerReferenceSize ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1408 of file oofrec1.cpp.

unsigned long OOF_simpleRecordBackend::BlobPosFromBuffer ( const dbField fld,
const char *  theirBuffer 
) const
inlineprotected
unsigned long OOF_simpleRecordBackend::BlobPosFromBuffer ( fieldNumT  fldNum,
const char *  theirBuffer 
) const
protected

Definition at line 247 of file oofrec1.cpp.

References mFieldBufMap.

char * OOF_recordBufferedContext::buffer ( ) const
inlineinherited

Definition at line 732 of file oofrecs.h.

References OOF_recordBufferedContext::mBuffer.

Referenced by OOF_ramBackend::~OOF_ramBackend().

virtual void OOF_simpleRecordBackend::BuildBackendtables ( bool  rebuilding)
protectedpure virtual

backend construction

Implemented in OOF_ctreeBackend, OOF_FServBackend, OOF_dbaseBackend, and OOF_ramBackend.

Referenced by buildSchema().

void OOF_simpleRecordBackend::buildSchema ( bool  rebuilding = false)
virtual
void OOF_simpleRecordBackend::CacheDirtyCurrentRecord ( )
protected
void OOF_simpleRecordBackend::CachingContextChange ( )
protectedvirtual
bool OOF_simpleRecordBackend::CanUseIndex ( const dbField ,
dbQueryClause::BinaryQueryOps  = dbQueryClause::equals 
) const
protectedvirtual

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 1401 of file oofrec1.cpp.

bool OOF_simpleRecordBackend::checkDuplicate ( const dbQueryClause )
virtual

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 110 of file oofrec3.cpp.

virtual OOF_tableBackend* OOF_simpleRecordBackend::clone ( dbTable::selSharingT  ,
dbTable  
) const
pure virtual
virtual void OOF_tableBackend::close ( )
pure virtualinherited
void OOF_simpleRecordBackend::commitTransaction ( short  rMode)
virtual

Implements OOF_tableBackend.

Definition at line 1815 of file oofrec3.cpp.

bool OOF_simpleRecordBackend::CommonSimpleDelete ( )
protected
bool OOF_simpleRecordBackend::contains ( oidT  inOID) const
virtual

Implements OOF_tableBackend.

Definition at line 1219 of file oofrec1.cpp.

References OOF_recordSelection::contains(), and mSelection.

Referenced by addOIDtoSelection().

void OOF_simpleRecordBackend::ContextChange ( )
protectedvirtual

Implements OOF_tableBackend.

Definition at line 906 of file oofrec1.cpp.

References dbSorter::backendChangedContext(), Invariant(), and sorter().

Referenced by CachingContextChange().

void OOF_recordBufferedContext::copyFrom ( const OOF_recordBufferedContext rhs)
inlineinherited
void OOF_recordBufferedContext::copyFrom ( const OOF_recordBufferedContext rhs)
virtualinherited
unsigned long OOF_simpleRecordBackend::count ( ) const
virtual
virtual unsigned long OOF_tableBackend::countAll ( ) const
pure virtualinherited
virtual void OOF_tableBackend::createTableInConnection ( const dbConnect )
pure virtualinherited
unsigned long OOF_recordBufferedContext::currentOffset ( ) const
inlineinherited
oidT OOF_simpleRecordBackend::currentOID ( )
virtual
dbSelection OOF_simpleRecordBackend::currentSelection ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1311 of file oofrec1.cpp.

References Invariant(), and mSelection.

virtual void OOF_tableBackend::deleteRecord ( )
pure virtualinherited
void OOF_tableBackend::deleteStorage ( )
virtualinherited

Reimplemented in OOF_ctreeBackend, OOF_FServBackend, and OOF_dbaseBackend.

Definition at line 158 of file oof2.cpp.

Referenced by dbTable::deleteStorage().

void OOF_simpleRecordBackend::describeInvariant ( std::ostream &  ) const
virtual

debugging

Implements OOF_tableBackend.

Definition at line 2025 of file oofrec3.cpp.

void OOF_simpleRecordBackend::describeState ( std::ostream &  ) const
virtual
void OOF_simpleRecordBackend::difference_with ( const OOF_tableBackend rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1740 of file oofrec2.cpp.

References OOF_tableBackend::difference_with(), and mSelection.

void OOF_simpleRecordBackend::difference_with ( const dbSelection rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1753 of file oofrec2.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::DonateBlobBodiesTo ( OOF_recordBufferedContext rhs)
protected
void OOF_simpleRecordBackend::dropRecordFromSelection ( unsigned long  inRecNum)
virtual

Implements OOF_tableBackend.

Definition at line 1227 of file oofrec1.cpp.

References OOF_recordSelection::deleteItem(), Invariant(), and mSelection.

dbField * OOF_tableBackend::field ( fieldNumT  fieldNum) const
inlineinherited

Definition at line 1733 of file oof1.h.

unsigned int OOF_simpleRecordBackend::FieldAlignsTo ( const dbField fld) const
protected
unsigned long OOF_simpleRecordBackend::fieldDataLen ( const dbField fld) const
virtual
void OOF_tableBackend::fieldHasDefaultCalculator ( dbField )
inlineinherited

Definition at line 1740 of file oof1.h.

Referenced by dbField::CalculateWith().

void OOF_tableBackend::fieldHasStoredCalculator ( dbField )
inlineinherited

Definition at line 1747 of file oof1.h.

Referenced by OOF_ctreeBackend::BuildBackendtables().

bool OOF_simpleRecordBackend::fieldIsDirty ( fieldNumT  fldNum) const
virtual

Implements OOF_tableBackend.

Definition at line 511 of file oofrec1.cpp.

References OOF_dirtyFieldMap::isDirty(), and OOF_recordBufferedContext::mDirtyMap.

char * OOF_simpleRecordBackend::getByteWriteAddress ( unsigned long  byteIndex,
const dbField inField 
)
virtual

Implements OOF_tableBackend.

Definition at line 740 of file oofrec1.cpp.

References GetFieldWriteDest().

void * OOF_simpleRecordBackend::GetFieldReadFrom ( fieldNumT  fldNum) const
protected
void * OOF_simpleRecordBackend::GetFieldWriteDest ( const dbField inField)
protected
void OOF_simpleRecordBackend::gotoBOF ( )
inline

Definition at line 756 of file oofrecs.h.

References OOF_recordBufferedContext::mCurrLoadedRecOffset.

virtual bool OOF_tableBackend::gotoRecord ( unsigned long  relativeNum)
pure virtualinherited
bool OOF_simpleRecordBackend::GotoRecordForAllUnindexed ( unsigned long  relativeNum)
protected
void OOF_simpleRecordBackend::ignoreDuplicateRecords ( )
virtual

Implements OOF_tableBackend.

Definition at line 312 of file oofrec1.cpp.

References mIgnoreDuplicateRecords.

bool OOF_simpleRecordBackend::IgnoringDuplicateRecords ( ) const
inlineprotected

Definition at line 763 of file oofrecs.h.

References mIgnoreDuplicateRecords.

void OOF_simpleRecordBackend::intersection_with ( const OOF_tableBackend rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1765 of file oofrec2.cpp.

References OOF_tableBackend::intersection_with(), and mSelection.

void OOF_simpleRecordBackend::intersection_with ( const dbSelection rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1779 of file oofrec2.cpp.

References dbSelection::internalSelection().

bool OOF_simpleRecordBackend::Invariant ( const char *  optionalComment = 0) const
protected

Check combination of member variables defining Invariant state.

Used to guard against changes to code allowing backend to enter illegal states.

Note
If you define a filename OOF_INVARIANT_DUMP_NAME this will dump a very comprehensive log of all OOFILE execution, as Invariant is called on entry and exit from most backend methods that affect the database.
Todo:
change code checking for some states to work on Intel byte order

Definition at line 1837 of file oofrec3.cpp.

References dbSorter::state().

Referenced by addOIDtoSelection(), AdoptBuffer(), OOF_ramBackend::BuildBackendtables(), OOF_dbaseBackend::BuildBackendtables(), OOF_ctreeBackend::BuildBackendtables(), OOF_ctreeBackend::buildSchema(), buildSchema(), CacheDirtyCurrentRecord(), CachingContextChange(), OOF_ctreeBackend::close(), CommonSimpleDelete(), ContextChange(), OOF_dbaseBackend::createTableInConnection(), OOF_ctreeBackend::createTableInConnection(), currentSelection(), OOF_ramBackend::DeleteBlobBodies(), OOF_dbaseBackend::deleteRecord(), OOF_ramBackend::deleteRecord(), OOF_ctreeBackend::deleteRecord(), OOF_ctreeBackend::deleteStorage(), dropRecordFromSelection(), GetFieldWriteDest(), OOF_ramBackend::gotoRecord(), OOF_dbaseBackend::gotoRecord(), OOF_ramBackend::loadBlob(), OOF_dbaseBackend::loadBlob(), OOF_ctreeBackend::loadBlob(), OOF_ramBackend::LoadRecordAtOffset(), MaybeLoadRecordFromCache(), OOF_ctreeBackend::newRecord(), newRecord(), OOF_dbaseBackend::next(), OOF_ramBackend::next(), OOF_rampBackend::openTableInConnection(), OOF_dbaseBackend::openTableInConnection(), OOF_ctreeBackend::openTableInConnection(), OOF_ctreeBackend::rebuild(), recordNumberMatching(), reloadRecord(), revertRecord(), OOF_rampBackend::save(), OOF_ramBackend::SaveContext(), OOF_ctreeBackend::saveRecord(), selectAll(), selectJustCurrent(), selectJustOID(), selectNone(), setSelection(), setSortOrder(), OOF_dbaseBackend::start(), OOF_ramBackend::start(), unloadCache(), OOF_ctreeBackend::unloadRecord(), and unloadRecord().

oofString OOF_simpleRecordBackend::InvariantDescription ( ) const
protected
void OOF_simpleRecordBackend::invert ( )
virtual
bool OOF_tableBackend::isDirty ( ) const
inlineinherited

Definition at line 1719 of file oof1.h.

Referenced by CachingContextChange(), saveRecord(), dbTable::setSelection(), and unloadRecord().

bool OOF_recordBufferedContext::isNew ( ) const
inlineinherited
bool OOF_simpleRecordBackend::isNewRecord ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1286 of file oofrec1.cpp.

References OOF_recordBufferedContext::isNew().

Referenced by CachingContextChange(), CommonSimpleDelete(), and recordNumber().

bool OOF_simpleRecordBackend::isRecordLoaded ( ) const
virtual
virtual void OOF_tableBackend::loadBlob ( const dbBLOB )
pure virtualinherited
virtual void OOF_simpleRecordBackend::LoadRecordAtOffset ( unsigned long  offset)
protectedpure virtual
bool OOF_simpleRecordBackend::loadRelatedContextJoiningFromTo ( const dbField fldFrom,
const dbField fldTo 
)
virtual

Implements relationships via searching.

Changes the current selection

Parameters
fldFromsupplies the value to be searched for.
fldTois a field probably on the current table, which is the target of the search
Returns
true if finds any records Always changes the current selection, like search().

Implements OOF_tableBackend.

Definition at line 1470 of file oofrec3.cpp.

References OOF_recordCache::append(), dbQueryLiteral::binaryContents(), charField, OOF_recordCache::count(), OOF_recordCache::countOccupied(), OOF_recordBufferedContext::currentOffset(), dbField::fieldType(), OOF_recordBufferedContext::isNew(), OOF_recordCache::item(), textField, and dbField::valueAsQueryLiteral().

void OOF_simpleRecordBackend::lockRecord ( )
virtual

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 1795 of file oofrec3.cpp.

dbSelection OOF_simpleRecordBackend::makeEmptySelection ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1319 of file oofrec1.cpp.

References OOF_tableBackend::mTable, and dbTable::prototype().

void OOF_tableBackend::markDirty ( )
inlineinherited

Definition at line 1712 of file oof1.h.

Referenced by dbTable::markDirty(), and dbWin3RGB::operator=().

bool OOF_simpleRecordBackend::MaybeLoadRecordFromCache ( unsigned long  offset)
protected
bool OOF_simpleRecordBackend::more ( ) const
virtual
void OOF_simpleRecordBackend::newRecord ( )
virtual

Sets up a new record ready to enter data On exit the state is: Selection state is aboutToDirty Selection Set record state to New Set dirty to false Clear buffer Append new record to selection.

Set current loaded record offset to point to new appended record.

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 965 of file oofrec1.cpp.

References OOF_recordSelection::aboutToDirtySelection(), OOF_recordSelection::appendNewRecord(), OOF_recordBufferedContext::eNew, Invariant(), OOF_recordBufferedContext::mBuffer, OOF_recordBufferedContext::mCurrLoadedRecOffset, OOF_tableBackend::mDirty, OOF_recordBufferedContext::mRecBufLen, OOF_recordBufferedContext::mRecordState, mSelection, and OOF_tableBackend::tableCachesDirtyRecords().

Referenced by OOF_ctreeBackend::newRecord().

virtual void OOF_tableBackend::next ( )
pure virtualinherited
void OOF_simpleRecordBackend::noticeDuplicateRecords ( )
virtual

Implements OOF_tableBackend.

Definition at line 319 of file oofrec1.cpp.

References mIgnoreDuplicateRecords.

unsigned int OOF_simpleRecordBackend::numFiles ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1394 of file oofrec1.cpp.

References mNumFiles.

unsigned int OOF_simpleRecordBackend::numIndexes ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1387 of file oofrec1.cpp.

References mNumIndexes.

oidT OOF_simpleRecordBackend::oidOfRecord ( unsigned long  recno)
virtual
virtual bool OOF_tableBackend::openTableInConnection ( const dbConnect ,
const bool  createIfMissing = false 
)
pure virtualinherited
OOF_recordBufferedContext::operator unsigned long ( ) const
inlineinherited

Definition at line 711 of file oofrecs.h.

bool OOF_recordBufferedContext::operator== ( unsigned long  inOffset) const
inlineinherited

Definition at line 725 of file oofrecs.h.

References OOF_recordBufferedContext::mCurrLoadedRecOffset.

bool OOF_recordBufferedContext::operator== ( const OOF_recordBufferedContext rhs) const
inherited

Definition at line 93 of file oofrec4.cpp.

References OOF_recordBufferedContext::mCurrLoadedRecOffset.

void OOF_simpleRecordBackend::pack ( )
virtual

Implements OOF_tableBackend.

Reimplemented in OOF_dbaseBackend.

Definition at line 1380 of file oofrec1.cpp.

unsigned long OOF_simpleRecordBackend::PadFieldWidthForAlignment ( const dbField fld) const
protected
void OOF_simpleRecordBackend::prev ( )
virtual
bool OOF_simpleRecordBackend::readBool ( const dbField inField) const
virtual

Assumes bools stored as unsigned short, 0==false.

Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 544 of file oofrec1.cpp.

References dbField::fieldIsStandalone(), dbField::fieldNumber(), and GetFieldReadFrom().

const char * OOF_simpleRecordBackend::readChars ( const dbField inField) const
virtual
Returns
pointer to area expected to remain allocated, maybe null.

Implements OOF_tableBackend.

Definition at line 619 of file oofrec1.cpp.

References dbField::fieldNumber(), and GetFieldReadFrom().

double OOF_simpleRecordBackend::readDouble ( const dbField inField) const
virtual
Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 601 of file oofrec1.cpp.

References dbField::fieldIsStandalone(), dbField::fieldNumber(), and GetFieldReadFrom().

long OOF_simpleRecordBackend::readLong ( const dbField inField) const
virtual
Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 582 of file oofrec1.cpp.

References dbField::fieldIsStandalone(), dbField::fieldNumber(), and GetFieldReadFrom().

short OOF_simpleRecordBackend::readShort ( const dbField inField) const
virtual
Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 563 of file oofrec1.cpp.

References dbField::fieldIsStandalone(), dbField::fieldNumber(), and GetFieldReadFrom().

oofString OOF_simpleRecordBackend::readString ( const dbField ) const
virtual

Copy field data into a string.

Implements OOF_tableBackend.

Definition at line 627 of file oofrec1.cpp.

References dbField::fieldNumber(), and GetFieldReadFrom().

virtual void OOF_tableBackend::rebuild ( )
pure virtualinherited
unsigned long OOF_simpleRecordBackend::recordNumber ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1036 of file oofrec1.cpp.

References isNewRecord(), OOF_recordSelection::iter(), and mSelection.

unsigned long OOF_simpleRecordBackend::recordNumberMatching ( const dbQueryClause qClause,
bool *  outFoundIt = 0 
) const
virtual
unsigned long OOF_simpleRecordBackend::recordNumberOfOID ( oidT  inOID)
virtual
bool OOF_simpleRecordBackend::reloadRecord ( )
virtual
void OOF_simpleRecordBackend::ResetBlobs ( )
protected
void OOF_simpleRecordBackend::revertRecord ( )
virtual
virtual void OOF_simpleRecordBackend::SaveContext ( )
protectedpure virtual

Implemented in OOF_ramBackend.

Referenced by saveRecord().

void OOF_simpleRecordBackend::saveRecord ( )
virtual

Save current main record and any cached dirty records.

Broadcasts to related records and other listeners so may re-dirty records in the process. Loops creating OOF_recordCacheCopier dependant on our dbTable which will repeatedly pull items out of the cache and get the table to save them. This yo-yoing is necessary to get the table to broadcast changes, in case the cached records have dependancies such as relationships hanging off them.

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 788 of file oofrec1.cpp.

References dbSorter::backendSavedRecord(), OOF_Dictionary::count(), DonateBlobBodiesTo(), OOF_tableBackend::isDirty(), OOF_recordBufferedContext::isNew(), isRecordLoaded(), OOF_tableBackend::mDirty, OOF_recordBufferedContext::mDirtyMap, mDirtyRecordCache, OOF_tableBackend::mFields, OOF_tableBackend::mHasDefaultCalculators, OOF_tableBackend::mHasStoredCalculators, OOF_tableBackend::mTable, OOF_recordBufferedContext::OOF_recordBufferedContext(), OOF_recordCacheCopier, OOF_dirtyFieldMap::reset(), SaveContext(), dbField::saveDefaultCalculatedValue(), dbField::saveStoredCalculatedValue(), sorter(), and OOF_Dictionary::value().

Referenced by OOF_ctreeBackend::saveRecord().

bool OOF_simpleRecordBackend::search ( const dbQueryClause qClause)
virtual
bool OOF_simpleRecordBackend::SearchBetweenNonIndexed ( const dbField schField,
const char *  strFrom,
const char *  strTo 
)
protected

Definition at line 783 of file oofrec3.cpp.

References dbField::asChars(), and OOF_stricmp().

bool OOF_simpleRecordBackend::SearchBetweenNonIndexed ( const dbField schField,
const void *  addressFrom,
const void *  addressTo 
)
protected
bool OOF_simpleRecordBackend::SearchBinaryFieldToLiteral ( const dbQueryBinary qClause)
protectedvirtual
bool OOF_simpleRecordBackend::SearchCombineSubclauses ( const dbQueryBinaryCombo qClause,
bool  searchSel 
)
protectedvirtual
bool OOF_simpleRecordBackend::SearchComparativeNonIndexed ( const dbField schField,
const char *  schStr,
dbQueryClause::BinaryQueryOps  theOp 
)
protected
bool OOF_simpleRecordBackend::SearchComparativeNonIndexed ( const dbField schField,
const void *  schAddress,
dbQueryClause::BinaryQueryOps  theOp 
)
protected
bool OOF_simpleRecordBackend::searchEqual ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
virtual

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 186 of file oofrec3.cpp.

bool OOF_simpleRecordBackend::searchEqual ( const dbField schField,
const void *  schAddress 
)
virtual

Implements OOF_tableBackend.

Definition at line 176 of file oofrec3.cpp.

bool OOF_simpleRecordBackend::SearchEqualNonIndexed ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
protected
bool OOF_simpleRecordBackend::SearchEqualNonIndexed ( const dbField schField,
const void *  schAddress 
)
protected

Definition at line 668 of file oofrec3.cpp.

References dbField::fieldStorageLen(), and dbConnect::raise().

bool OOF_simpleRecordBackend::SearchEqualNonIndexedWildcard ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
protected
bool OOF_simpleRecordBackend::SearchNotEqualNonIndexed ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
protected
bool OOF_simpleRecordBackend::SearchNotEqualNonIndexed ( const dbField schField,
const void *  schAddress 
)
protected

Definition at line 727 of file oofrec3.cpp.

References dbField::fieldStorageLen(), and dbConnect::raise().

bool OOF_simpleRecordBackend::SearchNotEqualNonIndexedWildcard ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
protected
bool OOF_simpleRecordBackend::SearchOutsideNonIndexed ( const dbField schField,
const char *  strFrom,
const char *  strTo 
)
protected

Definition at line 813 of file oofrec3.cpp.

References dbField::asChars(), and OOF_stricmp().

bool OOF_simpleRecordBackend::SearchOutsideNonIndexed ( const dbField schField,
const void *  addressFrom,
const void *  addressTo 
)
protected
bool OOF_simpleRecordBackend::searchSelContainsAllDelimited ( const dbField schField,
const char *  schStr,
char  delim 
)
virtual

Implements OOF_tableBackend.

Definition at line 1422 of file oofrec3.cpp.

bool OOF_simpleRecordBackend::searchSelContainsAllOf ( const dbField schField,
const char **  schStrs,
unsigned long  count 
)
virtual

Implements OOF_tableBackend.

Definition at line 1390 of file oofrec3.cpp.

References dbField::copyString(), and OOF_strnicmp().

bool OOF_simpleRecordBackend::searchSelContainsAnyDelimited ( const dbField schField,
const char *  schStr,
char  delim 
)
virtual

Implements OOF_tableBackend.

Definition at line 1350 of file oofrec3.cpp.

bool OOF_simpleRecordBackend::searchSelContainsAnyOf ( const dbField schField,
const char **  schStrs,
unsigned long  count 
)
virtual

Implements OOF_tableBackend.

Definition at line 1317 of file oofrec3.cpp.

References dbField::copyString(), and OOF_strnicmp().

bool OOF_simpleRecordBackend::searchSelection ( const dbQueryClause qClause)
virtual
bool OOF_simpleRecordBackend::SearchSelectionBinaryFieldToLiteral ( const dbQueryBinary qClause)
protectedvirtual
bool OOF_simpleRecordBackend::SearchSelectionTrinaryFieldToLiterals ( const dbQueryTrinary qClause)
protected
bool OOF_simpleRecordBackend::SearchTrinaryFieldToLiterals ( const dbQueryTrinary qClause)
protectedvirtual
bool OOF_simpleRecordBackend::SearchWordNonIndexed ( const dbField schField,
const char *  schStr,
bool  startsWith = false 
)
protected
void OOF_simpleRecordBackend::selectAll ( )
virtual
void OOF_simpleRecordBackend::selectJustCurrent ( )
virtual
bool OOF_simpleRecordBackend::selectJustOID ( oidT  inOID)
virtual
Parameters
inOIDrecord address, zero is accepted but causes selectNone() dbTable::selectJustOID will react similarly to zero oidT.
Todo:
validate that inOID is valid existing record

Implements OOF_tableBackend.

Definition at line 1246 of file oofrec1.cpp.

References Invariant(), mSelection, dbConnect::raise(), selectNone(), OOF_recordSelection::selectOneRec(), and OOF_tableBackend::start().

Referenced by selectJustCurrent().

void OOF_simpleRecordBackend::selectNone ( )
virtual
virtual unsigned long OOF_tableBackend::sequenceNumber ( ) const
pure virtualinherited
void OOF_simpleRecordBackend::setBlobLength ( fieldNumT  fldNum,
unsigned long  len 
)
virtual
void OOF_simpleRecordBackend::SetBlobLenInBuffer ( fieldNumT  fldNum,
unsigned long  len,
const char *  theirBuffer 
) const
protected

Definition at line 254 of file oofrec1.cpp.

References mFieldBufMap.

void OOF_simpleRecordBackend::SetBlobPosInBuffer ( fieldNumT  fldNum,
unsigned long  pos,
const char *  theirBuffer 
) const
protected

Definition at line 261 of file oofrec1.cpp.

References mFieldBufMap.

Referenced by OOF_ramBackend::DeleteBlobBodies(), and OOF_ramBackend::SaveContext().

virtual void OOF_simpleRecordBackend::setFileExtensions ( const char *  ,
const char *   
)
inlinevirtual

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 322 of file oofrecs.h.

void OOF_simpleRecordBackend::setSelection ( const dbSelection rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1326 of file oofrec1.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::setSelection ( const OOF_Selection rhs)
virtual
void OOF_simpleRecordBackend::setSortOrder ( dbSorter adoptSorter)
virtual

Implements OOF_tableBackend.

Definition at line 1293 of file oofrec1.cpp.

References Invariant(), mSelection, and OOF_recordSelection::setSortOrder().

Referenced by OOF_simpleRecordBackend().

dbSorter * OOF_simpleRecordBackend::sorter ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1304 of file oofrec1.cpp.

References mSelection, and OOF_recordSelection::sorter().

Referenced by ContextChange(), OOF_simpleRecordBackend(), and saveRecord().

void OOF_simpleRecordBackend::sortSelectionInverseNow ( fieldNumT  sortFieldNo)
virtual
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbUlong theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbLong theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbUshort theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbShort theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbReal theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbChar theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbText theFld)
protected
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbField theFld,
unsigned long  fixedBinaryLength 
)
protected
void OOF_simpleRecordBackend::sortSelectionNow ( fieldNumT  sortFieldNo)
virtual
void OOF_simpleRecordBackend::sortSelectionNow ( const dbSorter theSorter)
virtual
Ken's comments on how the sort works
start by sorting and partitioning the base field

This could use som heuristics if the field in indexed, since ctree does some of this good stuff for us - for now, we just use a non-indexed case..

At least we could get ctree to put the fields in the correct order for us ! But later - let's get it working for now !

Warning
Don't shortcut the process by using direct copyBlah accessors on these fields. Although it seems less efficient to be using the (dbUlong*)theField instead of readLong(theField) there is one important difference in that the field-level method also allows for calculated or non-persistent fields.

Implements OOF_tableBackend.

Definition at line 93 of file oofrec2.cpp.

References charField, dbTable::cloneTableWithoutSelection(), compoundField, OOF_FieldSegOwner::countSegments(), dateField, dateTimeField, OOF_ULPSorter::exchange(), dbTable::field(), dbField::fieldNumber(), OOF_FieldSegOwner::fieldNumberOfSegment(), dbField::fieldTable(), dbField::fieldType(), OOF_ListBase::isEmpty(), OOF_Segment::isReversed(), OOF_ULPSorter::lastEqual(), longField, OOF_ULPSorterElement::mData, OOF_ULPSorterElement::mNext, OOF_ULPSorterElement::mPart, OOF_LPSorterElement::mPart, OOF_DPSorterElement::mPart, OOF_copyFirstFour(), OOF_stricmp(), dbConnect::raise(), RAISE_EXCEPTION, realField, OOF_ULPSorter::remove(), OOF_LPSorter::remove(), OOF_DPSorter::remove(), OOF_FieldSegOwner::segment(), dbTable::selectJustOID(), shortField, OOF_ULPSorter::sortedInsert(), OOF_LPSorter::sortedInsert(), OOF_DPSorter::sortedInsert(), OOF_ULPSorter::sortedInsertReverse(), OOF_LPSorter::sortedInsertReverse(), OOF_DPSorter::sortedInsertReverse(), textField, OOF_ULPSorter::theEqual(), OOF_ULPSorter::theFirst(), OOF_LPSorter::theFirst(), OOF_DPSorter::theFirst(), timeField, uLongField, and uShortField.

void OOF_simpleRecordBackend::SortSelectionNow ( const dbUlong theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbLong theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbUshort theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbShort theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbReal theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbChar theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbText theFld)
protected
void OOF_simpleRecordBackend::SortSelectionNow ( const dbField theFld,
unsigned long  fixedBinaryLength 
)
protected
Bug:
Needs implementing by copying bytes or generating a comparison object. Alternatives considered: 1) backend is Abstract Factory for byte copier and field comparer 2) need a readBytes interface for dbFixedBinary, and rewrite this sort for dbFixedBinary alone
Todo:
reimplement fixedBinary SortSelectionNow without binaryContents()

Definition at line 1428 of file oofrec2.cpp.

References OOF_recordSelection::append(), dbTable::cloneTableWithoutSelection(), OOF_ULSorter::exchange(), dbTable::field(), dbField::fieldNumber(), dbField::fieldTable(), OOF_ListBase::isEmpty(), OOF_ULSorter::lastEqual(), OOF_ULSorterElement::mData, OOF_ULSorterElement::mNext, OOF_copyFirstFour(), OOF_ULSorter::remove(), dbTable::selectJustOID(), OOF_ULSorter::sortedInsert(), and OOF_ULSorter::theEqual().

virtual void OOF_tableBackend::start ( )
pure virtualinherited
unsigned long OOF_simpleRecordBackend::state ( ) const
protected
void OOF_simpleRecordBackend::SubSort ( const dbSorter theSorter,
const unsigned long  level,
unsigned long *  theData,
const unsigned long  count 
)
protected
virtual void OOF_tableBackend::suppressIndices ( )
pure virtualinherited
dbTable * OOF_tableBackend::table ( ) const
inlineinherited

Definition at line 1726 of file oof1.h.

Referenced by dbSorter::sortNow(), and dbFieldSorter::sortNow().

bool OOF_tableBackend::tableCachesDirtyRecords ( ) const
inlineprotectedinherited

Definition at line 2518 of file oof1.h.

Referenced by count(), newRecord(), and OOF_ramBackend::SaveContext().

void OOF_simpleRecordBackend::union_with ( const OOF_tableBackend rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1791 of file oofrec2.cpp.

References mSelection, and OOF_tableBackend::union_with().

void OOF_simpleRecordBackend::union_with ( const dbSelection rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1804 of file oofrec2.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::union_with_no_overlap ( const OOF_tableBackend rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1816 of file oofrec2.cpp.

References mSelection, and OOF_tableBackend::union_with_no_overlap().

void OOF_simpleRecordBackend::union_with_no_overlap ( const dbSelection rhs)
virtual

Implements OOF_tableBackend.

Definition at line 1829 of file oofrec2.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::unloadCache ( )
virtual
void OOF_simpleRecordBackend::unloadRecord ( )
virtual
void OOF_simpleRecordBackend::unlockRecord ( )
virtual

Implements OOF_tableBackend.

Reimplemented in OOF_ctreeBackend, and OOF_FServBackend.

Definition at line 1802 of file oofrec3.cpp.

void OOF_simpleRecordBackend::writeBool ( bool  inNum,
const dbField inField 
)
virtual

Encode bool as short to be decoded by readBool.

Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 640 of file oofrec1.cpp.

References GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

void OOF_simpleRecordBackend::writeBytes ( const char *  inBuf,
long  inLen,
const dbField inField 
)
virtual
void OOF_simpleRecordBackend::writeChars ( const char *  inStr,
long  numChars,
long  maxLen,
const dbField inField,
long  startIndex = 0 
)
virtual
void OOF_simpleRecordBackend::writeDouble ( double  inNum,
const dbField inField 
)
virtual
Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 688 of file oofrec1.cpp.

References GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

void OOF_simpleRecordBackend::writeLong ( long  inNum,
const dbField inField 
)
virtual
Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 673 of file oofrec1.cpp.

References GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

void OOF_simpleRecordBackend::writeShort ( short  inNum,
const dbField inField 
)
virtual
Warning
relies on backend returning fields aligned to processor-legal boundaries
Todo:
add assertion testing return address is legally aligned

Implements OOF_tableBackend.

Definition at line 658 of file oofrec1.cpp.

References GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

Friends And Related Function Documentation

friend class OOF_recordCacheCopier
friend

Definition at line 583 of file oofrecs.h.

Referenced by saveRecord().

Member Data Documentation

OOF_ExpandableLongArray* OOF_recordBufferedContext::mBlobFieldBodies
protectedinherited
OOF_ExpandableLongArray* OOF_simpleRecordBackend::mBlobFieldNums
protected
char* OOF_recordBufferedContext::mBuffer
protectedinherited
unsigned long OOF_recordBufferedContext::mCurrLoadedRecOffset
protectedinherited
bool OOF_tableBackend::mDirty
protectedinherited
OOF_dirtyFieldMap OOF_recordBufferedContext::mDirtyMap
protectedinherited
OOF_recordCache* OOF_simpleRecordBackend::mDirtyRecordCache
protected
OOF_recordFieldEntry* OOF_simpleRecordBackend::mFieldBufMap
protected
unsigned int* OOF_simpleRecordBackend::mFieldBufMapRefCount
protected
OOF_Dictionary OOF_tableBackend::mFields
protectedinherited
bool OOF_tableBackend::mHasDefaultCalculators
protectedinherited

Definition at line 1236 of file oof1.h.

Referenced by saveRecord().

bool OOF_tableBackend::mHasStoredCalculators
protectedinherited

Definition at line 1236 of file oof1.h.

Referenced by saveRecord().

bool OOF_simpleRecordBackend::mIgnoreDuplicateRecords
protected
unsigned short OOF_simpleRecordBackend::mNumFiles
protected

Definition at line 563 of file oofrecs.h.

Referenced by OOF_ctreeBackend::buildSchema(), and numFiles().

unsigned short OOF_simpleRecordBackend::mNumIndexes
protected
unsigned short OOF_simpleRecordBackend::mOverheadLeadingBytes
protected

Definition at line 563 of file oofrecs.h.

unsigned long OOF_recordBufferedContext::mRecBufLen
protectedinherited
ERecordState OOF_recordBufferedContext::mRecordState
protectedinherited
OOF_recordSelection OOF_simpleRecordBackend::mSelection
protected
dbTable* OOF_tableBackend::mTable
protectedinherited

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