OOFILE  1.9
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members

Implement the backend for Faircom's c-tree Plus ISAM engine including locking and indexed searches. More...

#include <oofctrex.h>

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

Public Types

enum  { kDataExtendSize =0, kIndexExtendSize =0 }
 
enum  { kCtreeKeySeqenceAddonLength =4 }
 
enum  ERecordState { eNew, eLoaded, eUnloaded }
 

Public Member Functions

virtual void addIndices (const char *newIDXname)
 
virtual bool addOIDtoSelection (oidT)
 
char * buffer () const
 
virtual void buildSchema (bool rebuilding=false)
 
virtual OOF_tableBackendclone (dbTable::selSharingT, dbTable *) const
 
virtual void close ()
 
void copyFrom (const OOF_recordBufferedContext *)
 
virtual void copyFrom (const OOF_recordBufferedContext &)
 
virtual void createTableInConnection (const dbConnect *)
 
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 loadBlob (const dbBLOB *)
 
virtual void noticeDuplicateRecords ()
 
virtual void open ()
 
virtual bool openTableInConnection (const dbConnect *, const bool createIfMissing=false)
 
 operator unsigned long () const
 
bool operator== (unsigned long) const
 
bool operator== (const OOF_recordBufferedContext &) const
 
virtual void rebuild ()
 
virtual bool reloadRecord ()
 
virtual void setBlobLength (fieldNumT, unsigned long len)
 
virtual void setFileExtensions (const char *dataExt, const char *indexExt)
 
virtual void suppressIndices ()
 
virtual ~OOF_ctreeBackend ()
 
public search functions
virtual bool gotoRecord (unsigned long)
 
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 void invert ()
 
recordwise access
virtual void start ()
 
virtual void next ()
 
virtual unsigned long countAll () const
 
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 deleteRecord ()
 
virtual void unloadRecord ()
 
virtual void saveRecord ()
 Save current main record and any cached dirty records. More...
 
reflective operators
virtual unsigned long sequenceNumber () const
 
locking
virtual void lockRecord ()
 
virtual void unlockRecord ()
 
transactions
virtual void beginTransaction (COUNT tMode=0)
 
virtual void abortTransaction (COUNT rMode=0)
 
virtual void commitTransaction (COUNT rMode=0)
 
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 difference_with (const OOF_tableBackend *)
 
virtual void difference_with (const dbSelection &)
 
virtual void intersection_with (const OOF_tableBackend *)
 
virtual void intersection_with (const dbSelection &)
 
virtual void union_with (const OOF_tableBackend *)
 
virtual void union_with (const dbSelection &)
 
virtual void union_with_no_overlap (const OOF_tableBackend *)
 
virtual void union_with_no_overlap (const dbSelection &)
 
public search functions
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 unloadCache ()
 
virtual void revertRecord ()
 
virtual void pack ()
 
sorting public interface
virtual void setSortOrder (dbSorter *adoptSorter)
 
virtual dbSortersorter () const
 
virtual void sortSelectionNow (fieldNumT)
 
virtual void sortSelectionNow (const dbSorter *)
 
virtual void sortSelectionInverseNow (fieldNumT)
 
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 ()
 
transactions
virtual void beginTransaction (short tMode)
 
virtual void abortTransaction (short rMode)
 
virtual void commitTransaction (short rMode)
 
record-level data access
bool isDirty () const
 
void markDirty ()
 
reflective operators
void fieldHasDefaultCalculator (dbField *)
 
void fieldHasStoredCalculator (dbField *)
 
dbTabletable () const
 
dbFieldfield (fieldNumT) const
 

Static Public Member Functions

static OOF_fieldTypes MapCtreeDODATypeToFieldType (const COUNT t)
 

Static Public Attributes

static long sFileMode = SHARED | PERMANENT
 
static long sTransMode = TRNLOG|ENABLE
 
static long sTransReleaseMode = ctKEEP_OUT
 

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)
 backend construction More...
 
void CacheDirtyCurrentRecord ()
 
virtual void CachingContextChange ()
 
virtual bool CanUseIndex (const dbField *theFld, 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 IgnoringDuplicateRecords () const
 
bool Invariant (const char *optionalComment=0) const
 Check combination of member variables defining Invariant state. More...
 
oofString InvariantDescription () const
 
bool MaybeLoadRecordFromCache (unsigned long offset)
 
unsigned long PadFieldWidthForAlignment (const dbField *fld) const
 
void ResetBlobs ()
 
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
 
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
 
COUNT mBlobFilNo
 
char * mBuffer
 
dbConnect_ctreemConnection
 
unsigned long mCurrLoadedRecOffset
 
bool mDirty
 
OOF_dirtyFieldMap mDirtyMap
 
OOF_recordCachemDirtyRecordCache
 
OOF_recordFieldEntrymFieldBufMap
 
unsigned int * mFieldBufMapRefCount
 
OOF_Dictionary mFields
 
bool mHasDefaultCalculators
 
bool mHasStoredCalculators
 
bool mIgnoreDuplicateRecords
 
COUNT mISAMdatno
 
unsigned short mNumFiles
 
unsigned short mNumIndexes
 
unsigned short mOverheadLeadingBytes
 
unsigned long mRecBufLen
 
ERecordState mRecordState
 
OOF_recordSelection mSelection
 
dbTablemTable
 

Friends

OOF_tableBackenddbConnect_ctree::MakeTableBackend (dbTable *)
 
void dbConnect_ctree::SetupConnection (const OOF_String &)
 
void dbTable::ContextChange ()
 

Detailed Description

Implement the backend for Faircom's c-tree Plus ISAM engine including locking and indexed searches.

Using the ISAM mode of c-tree Plus means that the maintenance of keys is automatic - as fields are updated, c-tree will update keys affected (a given field update may affect multiple keys due to compound fields, or keys defined with different constraints). The schema generation in OOF_ctreeBackend generates schema resources (DODA) in the c-tree files matching the Faircom standard so external tools and ODBC drivers can access OOFILE files.

Todo:
OOFILE mapping of date and time fields is currently to a numeric c-tree field, not Faircom dates.
Note
relationship information is additional OOFILE meta-info so is not stored in the DODA.
private ctors mean // can only be manufactured by a dbConnect subclass, eg our friend dbConnect_ctree.

Definition at line 288 of file oofctrex.h.

Constructor & Destructor Documentation

OOF_ctreeBackend::~OOF_ctreeBackend ( )
virtual

Definition at line 460 of file oofctre1.cpp.

References OOF_mixRefCount::decRefs().

Member Function Documentation

void OOF_ctreeBackend::abortTransaction ( COUNT  rMode = 0)
virtual
void OOF_simpleRecordBackend::abortTransaction ( short  rMode)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1822 of file oofrec3.cpp.

void OOF_ctreeBackend::addIndices ( const char *  newIDXname)
virtual
bool OOF_simpleRecordBackend::addOIDtoSelection ( oidT  inOID)
virtualinherited
void OOF_simpleRecordBackend::AdoptBuffer ( OOF_recordBufferedContext buf)
protectedinherited
void OOF_recordBufferedContext::AllocBuffer ( )
protectedinherited
bool OOF_simpleRecordBackend::allSelected ( ) const
virtualinherited
bool OOF_simpleRecordBackend::atFirst ( ) const
virtualinherited
bool OOF_simpleRecordBackend::atLast ( ) const
virtualinherited
bool OOF_simpleRecordBackend::atRelative ( unsigned long  rel) const
virtualinherited
void OOF_ctreeBackend::beginTransaction ( COUNT  tMode = 0)
virtual
void OOF_simpleRecordBackend::beginTransaction ( short  tMode)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1808 of file oofrec3.cpp.

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

Definition at line 239 of file oofrec1.cpp.

References OOF_simpleRecordBackend::mFieldBufMap.

unsigned long OOF_simpleRecordBackend::blobPointerReferenceSize ( ) const
virtualinherited

Implements OOF_tableBackend.

Definition at line 1408 of file oofrec1.cpp.

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

Definition at line 247 of file oofrec1.cpp.

References OOF_simpleRecordBackend::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().

void OOF_ctreeBackend::BuildBackendtables ( bool  rebuilding)
protectedvirtual
void OOF_ctreeBackend::buildSchema ( bool  rebuilding = false)
virtual
void OOF_simpleRecordBackend::CacheDirtyCurrentRecord ( )
protectedinherited
void OOF_simpleRecordBackend::CachingContextChange ( )
protectedvirtualinherited
bool OOF_ctreeBackend::CanUseIndex ( const dbField theFld,
dbQueryClause::BinaryQueryOps  theOp = dbQueryClause::equals 
) const
protectedvirtual
bool OOF_ctreeBackend::checkDuplicate ( const dbQueryClause qClause)
virtual
OOF_tableBackend * OOF_ctreeBackend::clone ( dbTable::selSharingT  selSharing,
dbTable theTable 
) const
virtual

Implements OOF_simpleRecordBackend.

Definition at line 902 of file oofctre1.cpp.

void OOF_ctreeBackend::close ( )
virtual
void OOF_ctreeBackend::commitTransaction ( COUNT  rMode = 0)
virtual
void OOF_simpleRecordBackend::commitTransaction ( short  rMode)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1815 of file oofrec3.cpp.

bool OOF_simpleRecordBackend::CommonSimpleDelete ( )
protectedinherited
bool OOF_simpleRecordBackend::contains ( oidT  inOID) const
virtualinherited
void OOF_simpleRecordBackend::ContextChange ( )
protectedvirtualinherited
void OOF_recordBufferedContext::copyFrom ( const OOF_recordBufferedContext rhs)
inlineinherited
void OOF_recordBufferedContext::copyFrom ( const OOF_recordBufferedContext rhs)
virtualinherited
unsigned long OOF_simpleRecordBackend::count ( ) const
virtualinherited
unsigned long OOF_ctreeBackend::countAll ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 311 of file oofctre3.cpp.

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

void OOF_ctreeBackend::createTableInConnection ( const dbConnect theDB_)
virtual
unsigned long OOF_recordBufferedContext::currentOffset ( ) const
inlineinherited
oidT OOF_simpleRecordBackend::currentOID ( )
virtualinherited
dbSelection OOF_simpleRecordBackend::currentSelection ( ) const
virtualinherited
void OOF_ctreeBackend::deleteRecord ( )
virtual
void OOF_ctreeBackend::deleteStorage ( )
virtual
void OOF_simpleRecordBackend::describeInvariant ( std::ostream &  ) const
virtualinherited

debugging

Implements OOF_tableBackend.

Definition at line 2025 of file oofrec3.cpp.

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

Implements OOF_tableBackend.

Definition at line 1753 of file oofrec2.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::DonateBlobBodiesTo ( OOF_recordBufferedContext rhs)
protectedinherited
void OOF_simpleRecordBackend::dropRecordFromSelection ( unsigned long  inRecNum)
virtualinherited
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
protectedinherited
unsigned long OOF_simpleRecordBackend::fieldDataLen ( const dbField fld) const
virtualinherited
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 BuildBackendtables().

bool OOF_simpleRecordBackend::fieldIsDirty ( fieldNumT  fldNum) const
virtualinherited

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 
)
virtualinherited

Implements OOF_tableBackend.

Definition at line 740 of file oofrec1.cpp.

References OOF_simpleRecordBackend::GetFieldWriteDest().

void * OOF_simpleRecordBackend::GetFieldReadFrom ( fieldNumT  fldNum) const
protectedinherited
void * OOF_simpleRecordBackend::GetFieldWriteDest ( const dbField inField)
protectedinherited
void OOF_simpleRecordBackend::gotoBOF ( )
inlineinherited

Definition at line 756 of file oofrecs.h.

References OOF_recordBufferedContext::mCurrLoadedRecOffset.

bool OOF_ctreeBackend::gotoRecord ( unsigned long  relativeNum)
virtual
void OOF_simpleRecordBackend::ignoreDuplicateRecords ( )
virtualinherited

Implements OOF_tableBackend.

Definition at line 312 of file oofrec1.cpp.

References OOF_simpleRecordBackend::mIgnoreDuplicateRecords.

bool OOF_simpleRecordBackend::IgnoringDuplicateRecords ( ) const
inlineprotectedinherited

Definition at line 763 of file oofrecs.h.

References OOF_simpleRecordBackend::mIgnoreDuplicateRecords.

void OOF_simpleRecordBackend::intersection_with ( const OOF_tableBackend rhs)
virtualinherited
void OOF_simpleRecordBackend::intersection_with ( const dbSelection rhs)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1779 of file oofrec2.cpp.

References dbSelection::internalSelection().

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

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

oofString OOF_simpleRecordBackend::InvariantDescription ( ) const
protectedinherited
void OOF_ctreeBackend::invert ( )
virtual
bool OOF_tableBackend::isDirty ( ) const
inlineinherited
bool OOF_recordBufferedContext::isNew ( ) const
inlineinherited
bool OOF_simpleRecordBackend::isNewRecord ( ) const
virtualinherited
bool OOF_simpleRecordBackend::isRecordLoaded ( ) const
virtualinherited
void OOF_ctreeBackend::loadBlob ( const dbBLOB blob)
virtual
bool OOF_simpleRecordBackend::loadRelatedContextJoiningFromTo ( const dbField fldFrom,
const dbField fldTo 
)
virtualinherited

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_ctreeBackend::lockRecord ( )
virtual
dbSelection OOF_simpleRecordBackend::makeEmptySelection ( ) const
virtualinherited

Implements OOF_tableBackend.

Definition at line 1319 of file oofrec1.cpp.

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

OOF_fieldTypes OOF_ctreeBackend::MapCtreeDODATypeToFieldType ( const COUNT  t)
static
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)
protectedinherited
bool OOF_simpleRecordBackend::more ( ) const
virtualinherited
void OOF_ctreeBackend::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.

Reimplemented from OOF_simpleRecordBackend.

Definition at line 502 of file oofctre1.cpp.

References OOF_simpleRecordBackend::Invariant(), dbConnect_ctree::isReadLocked(), mConnection, OOF_simpleRecordBackend::newRecord(), and dbConnect::raise().

void OOF_ctreeBackend::next ( )
virtual
void OOF_simpleRecordBackend::noticeDuplicateRecords ( )
virtualinherited

Implements OOF_tableBackend.

Definition at line 319 of file oofrec1.cpp.

References OOF_simpleRecordBackend::mIgnoreDuplicateRecords.

unsigned int OOF_simpleRecordBackend::numFiles ( ) const
virtualinherited

Implements OOF_tableBackend.

Definition at line 1394 of file oofrec1.cpp.

References OOF_simpleRecordBackend::mNumFiles.

unsigned int OOF_simpleRecordBackend::numIndexes ( ) const
virtualinherited

Implements OOF_tableBackend.

Definition at line 1387 of file oofrec1.cpp.

References OOF_simpleRecordBackend::mNumIndexes.

oidT OOF_simpleRecordBackend::oidOfRecord ( unsigned long  recno)
virtualinherited
void OOF_ctreeBackend::open ( )
virtual
bool OOF_ctreeBackend::openTableInConnection ( const dbConnect theDB_,
const bool  createIfMissing = false 
)
virtual
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 ( )
virtualinherited

Implements OOF_tableBackend.

Reimplemented in OOF_dbaseBackend.

Definition at line 1380 of file oofrec1.cpp.

unsigned long OOF_simpleRecordBackend::PadFieldWidthForAlignment ( const dbField fld) const
protectedinherited
void OOF_simpleRecordBackend::prev ( )
virtualinherited
bool OOF_simpleRecordBackend::readBool ( const dbField inField) const
virtualinherited

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 OOF_simpleRecordBackend::GetFieldReadFrom().

const char * OOF_simpleRecordBackend::readChars ( const dbField inField) const
virtualinherited
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 OOF_simpleRecordBackend::GetFieldReadFrom().

double OOF_simpleRecordBackend::readDouble ( const dbField inField) const
virtualinherited
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 OOF_simpleRecordBackend::GetFieldReadFrom().

long OOF_simpleRecordBackend::readLong ( const dbField inField) const
virtualinherited
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 OOF_simpleRecordBackend::GetFieldReadFrom().

short OOF_simpleRecordBackend::readShort ( const dbField inField) const
virtualinherited
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 OOF_simpleRecordBackend::GetFieldReadFrom().

oofString OOF_simpleRecordBackend::readString ( const dbField ) const
virtualinherited

Copy field data into a string.

Implements OOF_tableBackend.

Definition at line 627 of file oofrec1.cpp.

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

void OOF_ctreeBackend::rebuild ( )
virtual
unsigned long OOF_simpleRecordBackend::recordNumber ( ) const
virtualinherited
unsigned long OOF_ctreeBackend::recordNumberMatching ( const dbQueryClause qClause,
bool *  outFoundIt = 0 
) const
virtual
unsigned long OOF_simpleRecordBackend::recordNumberOfOID ( oidT  inOID)
virtualinherited
bool OOF_simpleRecordBackend::reloadRecord ( )
virtualinherited
void OOF_simpleRecordBackend::ResetBlobs ( )
protectedinherited
void OOF_simpleRecordBackend::revertRecord ( )
virtualinherited
void OOF_ctreeBackend::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.

Reimplemented from OOF_simpleRecordBackend.

Definition at line 517 of file oofctre1.cpp.

References dbConnect_ctree::activateConnection(), OOF_simpleRecordBackend::Invariant(), mConnection, and OOF_simpleRecordBackend::saveRecord().

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

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 
)
protectedinherited
bool OOF_simpleRecordBackend::SearchComparativeNonIndexed ( const dbField schField,
const char *  schStr,
dbQueryClause::BinaryQueryOps  theOp 
)
protectedinherited
bool OOF_simpleRecordBackend::SearchComparativeNonIndexed ( const dbField schField,
const void *  schAddress,
dbQueryClause::BinaryQueryOps  theOp 
)
protectedinherited
bool OOF_ctreeBackend::searchEqual ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
virtual
bool OOF_ctreeBackend::searchEqual ( const dbField schField,
const VOID *  schAddress 
)
virtual
bool OOF_simpleRecordBackend::searchEqual ( const dbField schField,
const void *  schAddress 
)
virtualinherited

Implements OOF_tableBackend.

Definition at line 176 of file oofrec3.cpp.

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

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 
)
protectedinherited
bool OOF_simpleRecordBackend::SearchNotEqualNonIndexed ( const dbField schField,
const char *  schStr,
bool  matchEntireKey = true 
)
protectedinherited
bool OOF_simpleRecordBackend::SearchNotEqualNonIndexed ( const dbField schField,
const void *  schAddress 
)
protectedinherited

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 
)
protectedinherited
bool OOF_simpleRecordBackend::SearchOutsideNonIndexed ( const dbField schField,
const char *  strFrom,
const char *  strTo 
)
protectedinherited

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 
)
protectedinherited
bool OOF_simpleRecordBackend::searchSelContainsAllDelimited ( const dbField schField,
const char *  schStr,
char  delim 
)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1422 of file oofrec3.cpp.

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

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 
)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1350 of file oofrec3.cpp.

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

Implements OOF_tableBackend.

Definition at line 1317 of file oofrec3.cpp.

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

bool OOF_ctreeBackend::searchSelection ( const dbQueryClause qClause)
virtual

Reimplemented from OOF_simpleRecordBackend.

Definition at line 1545 of file oofctre3.cpp.

References OOF_simpleRecordBackend::searchSelection().

bool OOF_simpleRecordBackend::SearchSelectionTrinaryFieldToLiterals ( const dbQueryTrinary qClause)
protectedinherited
bool OOF_simpleRecordBackend::SearchWordNonIndexed ( const dbField schField,
const char *  schStr,
bool  startsWith = false 
)
protectedinherited
void OOF_simpleRecordBackend::selectAll ( )
virtualinherited
void OOF_simpleRecordBackend::selectJustCurrent ( )
virtualinherited
bool OOF_simpleRecordBackend::selectJustOID ( oidT  inOID)
virtualinherited
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 OOF_simpleRecordBackend::Invariant(), OOF_simpleRecordBackend::mSelection, dbConnect::raise(), OOF_simpleRecordBackend::selectNone(), OOF_recordSelection::selectOneRec(), and OOF_tableBackend::start().

Referenced by OOF_simpleRecordBackend::selectJustCurrent().

void OOF_simpleRecordBackend::selectNone ( )
virtualinherited
unsigned long OOF_ctreeBackend::sequenceNumber ( ) const
virtual

Implements OOF_tableBackend.

Definition at line 1866 of file oofctre1.cpp.

References dbConnect_ctree::activateConnection(), mConnection, and mISAMdatno.

void OOF_simpleRecordBackend::setBlobLength ( fieldNumT  fldNum,
unsigned long  len 
)
virtualinherited
void OOF_simpleRecordBackend::SetBlobLenInBuffer ( fieldNumT  fldNum,
unsigned long  len,
const char *  theirBuffer 
) const
protectedinherited

Definition at line 254 of file oofrec1.cpp.

References OOF_simpleRecordBackend::mFieldBufMap.

void OOF_simpleRecordBackend::SetBlobPosInBuffer ( fieldNumT  fldNum,
unsigned long  pos,
const char *  theirBuffer 
) const
protectedinherited
void OOF_ctreeBackend::setFileExtensions ( const char *  dataExt,
const char *  indexExt 
)
virtual

Reimplemented from OOF_simpleRecordBackend.

Definition at line 541 of file oofctre1.cpp.

void OOF_simpleRecordBackend::setSelection ( const dbSelection rhs)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1326 of file oofrec1.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::setSelection ( const OOF_Selection rhs)
virtualinherited
void OOF_simpleRecordBackend::setSortOrder ( dbSorter adoptSorter)
virtualinherited
dbSorter * OOF_simpleRecordBackend::sorter ( ) const
virtualinherited
void OOF_simpleRecordBackend::sortSelectionInverseNow ( fieldNumT  sortFieldNo)
virtualinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbUlong theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbLong theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbUshort theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbShort theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbReal theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbChar theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbText theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionInverseNow ( const dbField theFld,
unsigned long  fixedBinaryLength 
)
protectedinherited
void OOF_simpleRecordBackend::sortSelectionNow ( fieldNumT  sortFieldNo)
virtualinherited
void OOF_simpleRecordBackend::sortSelectionNow ( const dbSorter theSorter)
virtualinherited
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)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbLong theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbUshort theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbShort theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbReal theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbChar theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbText theFld)
protectedinherited
void OOF_simpleRecordBackend::SortSelectionNow ( const dbField theFld,
unsigned long  fixedBinaryLength 
)
protectedinherited
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().

void OOF_ctreeBackend::start ( )
virtual
unsigned long OOF_simpleRecordBackend::state ( ) const
protectedinherited
void OOF_simpleRecordBackend::SubSort ( const dbSorter theSorter,
const unsigned long  level,
unsigned long *  theData,
const unsigned long  count 
)
protectedinherited
void OOF_ctreeBackend::suppressIndices ( )
virtual
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
void OOF_simpleRecordBackend::union_with ( const OOF_tableBackend rhs)
virtualinherited
void OOF_simpleRecordBackend::union_with ( const dbSelection rhs)
virtualinherited

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)
virtualinherited
void OOF_simpleRecordBackend::union_with_no_overlap ( const dbSelection rhs)
virtualinherited

Implements OOF_tableBackend.

Definition at line 1829 of file oofrec2.cpp.

References dbSelection::internalSelection().

void OOF_simpleRecordBackend::unloadCache ( )
virtualinherited
void OOF_ctreeBackend::unloadRecord ( )
virtual

Reimplemented from OOF_simpleRecordBackend.

Definition at line 529 of file oofctre1.cpp.

References OOF_simpleRecordBackend::Invariant(), and OOF_simpleRecordBackend::unloadRecord().

Referenced by deleteRecord().

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

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 OOF_simpleRecordBackend::GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

void OOF_simpleRecordBackend::writeBytes ( const char *  inBuf,
long  inLen,
const dbField inField 
)
virtualinherited
void OOF_simpleRecordBackend::writeChars ( const char *  inStr,
long  numChars,
long  maxLen,
const dbField inField,
long  startIndex = 0 
)
virtualinherited
void OOF_simpleRecordBackend::writeDouble ( double  inNum,
const dbField inField 
)
virtualinherited
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 OOF_simpleRecordBackend::GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

void OOF_simpleRecordBackend::writeLong ( long  inNum,
const dbField inField 
)
virtualinherited
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 OOF_simpleRecordBackend::GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

void OOF_simpleRecordBackend::writeShort ( short  inNum,
const dbField inField 
)
virtualinherited
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 OOF_simpleRecordBackend::GetFieldWriteDest(), dbTable::markDirty(), and OOF_tableBackend::mTable.

Friends And Related Function Documentation

OOF_tableBackend* dbConnect_ctree::MakeTableBackend ( dbTable )
friend
void dbConnect_ctree::SetupConnection ( const OOF_String )
friend
void dbTable::ContextChange ( )
friend

Member Data Documentation

OOF_ExpandableLongArray* OOF_recordBufferedContext::mBlobFieldBodies
protectedinherited
OOF_ExpandableLongArray* OOF_simpleRecordBackend::mBlobFieldNums
protectedinherited
COUNT OOF_ctreeBackend::mBlobFilNo
protected

Definition at line 442 of file oofctrex.h.

Referenced by buildSchema(), deleteRecord(), and loadBlob().

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

Definition at line 1236 of file oof1.h.

Referenced by OOF_simpleRecordBackend::saveRecord().

bool OOF_tableBackend::mHasStoredCalculators
protectedinherited

Definition at line 1236 of file oof1.h.

Referenced by OOF_simpleRecordBackend::saveRecord().

bool OOF_simpleRecordBackend::mIgnoreDuplicateRecords
protectedinherited
COUNT OOF_ctreeBackend::mISAMdatno
protected
unsigned short OOF_simpleRecordBackend::mNumFiles
protectedinherited

Definition at line 563 of file oofrecs.h.

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

unsigned short OOF_simpleRecordBackend::mNumIndexes
protectedinherited
unsigned short OOF_simpleRecordBackend::mOverheadLeadingBytes
protectedinherited

Definition at line 563 of file oofrecs.h.

unsigned long OOF_recordBufferedContext::mRecBufLen
protectedinherited
ERecordState OOF_recordBufferedContext::mRecordState
protectedinherited
OOF_recordSelection OOF_simpleRecordBackend::mSelection
protectedinherited

Definition at line 560 of file oofrecs.h.

Referenced by OOF_simpleRecordBackend::addOIDtoSelection(), OOF_simpleRecordBackend::AdoptBuffer(), OOF_simpleRecordBackend::allSelected(), OOF_simpleRecordBackend::atFirst(), OOF_simpleRecordBackend::atLast(), OOF_simpleRecordBackend::atRelative(), OOF_simpleRecordBackend::CommonSimpleDelete(), OOF_simpleRecordBackend::contains(), OOF_simpleRecordBackend::count(), OOF_simpleRecordBackend::currentOID(), OOF_simpleRecordBackend::currentSelection(), OOF_ramBackend::deleteRecord(), OOF_dbaseBackend::deleteRecord(), deleteRecord(), OOF_simpleRecordBackend::describeState(), OOF_simpleRecordBackend::difference_with(), OOF_simpleRecordBackend::dropRecordFromSelection(), OOF_ramBackend::gotoRecord(), OOF_dbaseBackend::gotoRecord(), OOF_simpleRecordBackend::GotoRecordForAllUnindexed(), OOF_simpleRecordBackend::intersection_with(), OOF_simpleRecordBackend::more(), OOF_simpleRecordBackend::newRecord(), OOF_dbaseBackend::next(), OOF_ramBackend::next(), OOF_simpleRecordBackend::oidOfRecord(), OOF_simpleRecordBackend::OOF_simpleRecordBackend(), OOF_simpleRecordBackend::prev(), OOF_simpleRecordBackend::recordNumber(), OOF_simpleRecordBackend::recordNumberOfOID(), OOF_rampBackend::save(), OOF_ramBackend::SaveContext(), OOF_simpleRecordBackend::selectAll(), OOF_simpleRecordBackend::selectJustOID(), OOF_simpleRecordBackend::selectNone(), OOF_simpleRecordBackend::setSelection(), OOF_simpleRecordBackend::setSortOrder(), OOF_simpleRecordBackend::sorter(), OOF_ramBackend::start(), OOF_dbaseBackend::start(), OOF_simpleRecordBackend::union_with(), OOF_simpleRecordBackend::union_with_no_overlap(), and OOF_simpleRecordBackend::unloadRecord().

dbTable* OOF_tableBackend::mTable
protectedinherited
long OOF_ctreeBackend::sFileMode = SHARED | PERMANENT
static
long OOF_ctreeBackend::sTransMode = TRNLOG|ENABLE
static

Definition at line 446 of file oofctrex.h.

Referenced by beginTransaction().

long OOF_ctreeBackend::sTransReleaseMode = ctKEEP_OUT
static

Definition at line 447 of file oofctrex.h.

Referenced by abortTransaction(), and commitTransaction().


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