OOFILE  1.9
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dbFixedBinary Class Reference

Persistent field used to store a fixed-length binary object. More...

#include <oof3.h>

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

Public Types

enum  { kKeyLengthAutoCalculated = USHRT_MAX }
 
enum  FieldIsStandaloneT { eFieldIsStandalone }
 

Public Member Functions

virtual const char * asChars () const
 
bool caseSensitive () const
 
void clear ()
 Implemented in fairly simple-minded approach until need shown for better. More...
 
virtual dbFieldclone () const
 
virtual oofString copyString () const
 
virtual void copyValueFrom (const dbField *)
 
virtual void copyValueIfDifferent (const dbField *)
 
 dbFixedBinary (long fieldWidth=4, const char *fieldName=0)
 
 dbFixedBinary (long fieldWidth, const OOF_IndexOptions indexOptions)
 
 dbFixedBinary (long fieldWidth, const char *fieldName, const OOF_IndexOptions indexOptions)
 
 dbFixedBinary (dbField::FieldIsStandaloneT k)
 
virtual void describe (std::ostream &os) const
 Provide human-readable information about object. More...
 
dbFieldequivalentFieldFromTable (dbTable *) const
 
virtual void extract (std::ostream &os) const
 
unsigned long fieldDataLen () const
 
bool fieldIndexIgnoresNulls () const
 
bool fieldIndexIsCompressLeading () const
 
bool fieldIndexIsCompressPadding () const
 
OOF_IndexOptions fieldIndexOptions () const
 
virtual bool fieldIsBinary () const
 
virtual bool fieldIsBlob () const
 
virtual bool fieldIsIndexed () const
 
bool fieldIsJoinKey () const
 Checks if any relationships in field's table use field as join key. More...
 
virtual bool fieldIsKeywordIndexed () const
 
bool fieldIsPartiallyIndexed () const
 
virtual bool fieldIsSameTypeAs (const dbField *) const
 
bool fieldIsStandalone () const
 
virtual bool fieldIsUniqueIndexed () const
 
virtual bool fieldIsVirtual () const
 
unsigned short fieldKeyLen () const
 
virtual unsigned long fieldMinWrapWidth () const
 
virtual const oofStringfieldName () const
 
fieldNumT fieldNumber () const
 
unsigned short fieldNumIndexes () const
 
virtual unsigned long fieldStorageLen () const
 
dbTablefieldTable () const
 
virtual OOF_fieldTypes fieldType () const
 
virtual unsigned long fieldUsualWrapWidth () const
 
virtual void generateTestData (bool generateRandom, unsigned long seedOrCount)
 
virtual void getChars (char *ioBuff, unsigned long &outLen) const
 
bool hasDefaultCalculator () const
 
bool hidden () const
 
void hide (bool hideIt=true)
 
void index (const OOF_IndexOptions=kIndexed)
 
void indexPartialKeyLen (unsigned short)
 
virtual bool insert (std::istream &, char fieldSep, char recSep)
 
bool isDirty () const
 
virtual bool isEmpty () const
 
virtual oofString name () const
 
virtual OOF_fieldTypes nativeType () const
 
dbFixedBinaryoperator= (const dbFixedBinary &rhs)
 
dbFixedBinaryoperator= (const char *str)
 
virtual void postCloneTableCleanup ()
 
void saveDefaultCalculatedValue ()
 
void saveStoredCalculatedValue ()
 
void setByte (char c, unsigned long offset)
 
void setName (const char *name)
 
virtual void setNumber (long)
 
virtual void setString (const char *)
 
void setValue (const void *str)
 Copies buffer for length fieldStorageLen(). More...
 
void storeCalculatedValues ()
 
bool storesCalculatedValues () const
 
const char * tableName () const
 
void useCalculatorOnlyForDefaults ()
 
bool usingCalculator () const
 
virtual bool validateContents ()
 
virtual dbQueryClausevalueAsQueryLiteral () const
 
bool valueIsDuplicate () const
 
virtual oofWordParserwords () const
 
virtual ~dbFixedBinary ()
 

Protected Member Functions

void CalculateWith (dbCalculator *adoptedCalculator, bool useOnlyForDefaults)
 
virtual void CopyCalculatedValueToBuffer ()
 

Protected Attributes

OOF_tableBackendmBackend
 
unsigned long mBodyLength
 
dbCalculatormCalculator
 
fieldNumT mFieldNumber
 
bool mHidden
 
dbTablemTable
 

Detailed Description

Persistent field used to store a fixed-length binary object.

Definition at line 532 of file oof3.h.

Constructor & Destructor Documentation

dbFixedBinary::dbFixedBinary ( long  fieldWidth = 4,
const char *  fieldName = 0 
)

Definition at line 582 of file oof3.cpp.

Referenced by clone().

dbFixedBinary::dbFixedBinary ( long  fieldWidth,
const OOF_IndexOptions  indexOptions 
)

Definition at line 576 of file oof3.cpp.

dbFixedBinary::dbFixedBinary ( long  fieldWidth,
const char *  fieldName,
const OOF_IndexOptions  indexOptions 
)

Definition at line 588 of file oof3.cpp.

dbFixedBinary::dbFixedBinary ( dbField::FieldIsStandaloneT  k)
inline

Definition at line 540 of file oof3.h.

virtual dbFixedBinary::~dbFixedBinary ( )
inlinevirtual

Definition at line 541 of file oof3.h.

Member Function Documentation

const char * dbField::asChars ( ) const
virtualinherited
void dbField::CalculateWith ( dbCalculator adoptedCalculator,
bool  useOnlyForDefaults 
)
protectedinherited
bool dbField::caseSensitive ( ) const
inlineinherited

Definition at line 747 of file oof3.h.

References kIndexCaseSensitive.

void dbFixedBinary::clear ( )
virtual

Implemented in fairly simple-minded approach until need shown for better.

Uses loop writing single byte at a time because this is not widely-used data type and particularly not widely-used method. Simple approach saves having to add another interface responsibility for backends to allow clearing fields.

Reimplemented from dbField.

Definition at line 637 of file oof3.cpp.

References dbField::fieldIsStandalone(), dbTable::markDirty(), mBodyLength, dbField::mTable, OOF_MEM_DEBUG_FORCE_POOL_CHECK, and setByte().

Referenced by operator=().

dbField * dbFixedBinary::clone ( ) const
virtual

Implements dbField.

Definition at line 596 of file oof3.cpp.

References dbFixedBinary().

void dbField::CopyCalculatedValueToBuffer ( )
protectedvirtualinherited
oofString dbField::copyString ( ) const
virtualinherited

Reimplemented in dbText, and dbChar.

Definition at line 472 of file oof3.cpp.

References dbField::extract().

Referenced by dbFieldLink::copyFieldToLink(), dbFieldLink::copyLinkToField(), oofRepGraphBand_CSVRender::draw(), oofRepGraphBand_TSVRender::draw(), oofRepViewBand_HTMLRender::draw(), oofRepViewBand_CSVRender::draw(), oofRepViewBand_TSVRender::draw(), oofRepViewBand_WinRender::draw(), oofRepViewBand_MacRender::draw(), oofRepViewBand_RTFRender::draw(), dbRepHTML::drawColumnar(), dbRepHTMLTable::drawColumnar(), dbRepChar::drawColumnar(), dbRepHTML::drawPageWise(), dbRepHTMLTable::drawPageWise(), dbRepChar::drawPageWise(), dbRep::extract(), oofColumnGraph::finishConstruction(), oofPointGraph::finishConstruction(), oofLineGraph::finishConstruction(), oofBarGraph::finishConstruction(), oofStackedBarGraph::finishConstruction(), oofOrdinalStackedBarGraph::finishConstruction(), oofPieGraph::finishConstruction(), oofRepViewEditLink::getCellText(), oofRepFieldBlock::getCellText(), OOF_mixOutlineItem::GetDrawContentsFromView(), dbDate::getStr255(), dbDateTime::getStr255(), dbFieldLink::linkEqualsField(), oofRepFieldBlock::MiddleText(), oofRepCustomViewDrawer::plainText(), OOF_simpleRecordBackend::recordNumberMatching(), OOF_simpleRecordBackend::SearchEqualNonIndexedWildcard(), OOF_simpleRecordBackend::SearchNotEqualNonIndexedWildcard(), OOF_simpleRecordBackend::searchSelContainsAllOf(), OOF_simpleRecordBackend::searchSelContainsAnyOf(), dbGUIAdaptLPopupButton::setValueList(), OOF_simpleRecordBackend::SubSort(), dbFieldLink::validToLeaveForm(), and oofXMLDBWriter::writeRecord().

virtual void dbField::copyValueFrom ( const dbField )
inlinevirtualinherited

Reimplemented in dbDateTime, dbTime, dbDate, dbReal, dbText, dbUlong, dbLong, dbBool, dbUshort, dbChar, and dbShort.

Definition at line 140 of file oof3.h.

Referenced by dbTable::copyRecFrom(), and dbFieldCopier::receiveMsg().

virtual void dbField::copyValueIfDifferent ( const dbField )
inlinevirtualinherited
void dbFixedBinary::describe ( std::ostream &  ) const
virtual

Provide human-readable information about object.

Overriden to provide much more detail particularly for dbTable::describe() which provides full schema.

Reimplemented from dbField.

Definition at line 735 of file oof3.cpp.

References dbField::describe(), and mBodyLength.

dbField * dbField::equivalentFieldFromTable ( dbTable baseTable) const
inherited
void dbFixedBinary::extract ( std::ostream &  os) const
virtual
Bug:
needs implementing with readBytes in loop

Reimplemented from dbField.

Definition at line 705 of file oof3.cpp.

References dbField::asChars(), and mBodyLength.

unsigned long dbField::fieldDataLen ( ) const
inlineinherited
bool dbField::fieldIndexIgnoresNulls ( ) const
inlineinherited

Definition at line 699 of file oof3.h.

References kIndexNoNulls.

Referenced by OOF_ctreeBackend::countAll().

bool dbField::fieldIndexIsCompressLeading ( ) const
inlineinherited

Definition at line 707 of file oof3.h.

References kIndexCompressLeading.

bool dbField::fieldIndexIsCompressPadding ( ) const
inlineinherited

Definition at line 715 of file oof3.h.

References kIndexCompressPadding.

OOF_IndexOptions dbField::fieldIndexOptions ( ) const
inlineinherited

Definition at line 678 of file oof3.h.

Referenced by dbField::describe().

bool dbField::fieldIsBinary ( ) const
virtualinherited

Reimplemented in dbText, and dbChar.

Definition at line 393 of file oof3.cpp.

bool dbField::fieldIsBlob ( ) const
virtualinherited
bool dbField::fieldIsIndexed ( ) const
virtualinherited
bool dbField::fieldIsJoinKey ( ) const
inherited

Checks if any relationships in field's table use field as join key.

Relatively expensive because it's iterating over all fields but all the function calls below are inline queries so will compile down well in release mode.

WARNING Doesn't fan out - if any other tables use this field as a join key then they are doing really weird stuff and the application programmer must add their own checks.

This feature originally added to support OOF_repEditSetupVisitor::VisitViewBandBody

Definition at line 327 of file oof3.cpp.

References dbTable::field(), dbField::fieldIsStandalone(), dbField::fieldType(), dbRelRefBase::joinField(), dbField::mFieldNumber, dbField::mTable, dbTable::numFields(), and relationshipField.

Referenced by OOF_repEditSetupVisitor::VisitIterableBandBody().

bool dbField::fieldIsKeywordIndexed ( ) const
virtualinherited

Reimplemented in dbText, and dbChar.

Definition at line 415 of file oof3.cpp.

Referenced by OOF_ctreeBackend::BuildBackendtables().

bool dbField::fieldIsPartiallyIndexed ( ) const
inlineinherited

Definition at line 692 of file oof3.h.

References dbField::kKeyLengthAutoCalculated.

Referenced by dbField::fieldKeyLen().

bool dbFixedBinary::fieldIsSameTypeAs ( const dbField rhs) const
virtual

Reimplemented from dbField.

Definition at line 743 of file oof3.cpp.

References dbField::fieldIsSameTypeAs(), and mBodyLength.

bool dbField::fieldIsStandalone ( ) const
inlineinherited
bool dbField::fieldIsUniqueIndexed ( ) const
virtualinherited
bool dbField::fieldIsVirtual ( ) const
virtualinherited
unsigned short dbField::fieldKeyLen ( ) const
inherited
unsigned long dbField::fieldMinWrapWidth ( ) const
virtualinherited
const oofString & dbField::fieldName ( ) const
inlinevirtualinherited

Reimplemented in dbRelRefBase.

Definition at line 769 of file oof3.h.

Referenced by dbView::AppendOwnedField(), OOF_ramBackend::BuildBackendtables(), OOF_dbaseBackend::BuildBackendtables(), OOF_ctreeBackend::BuildBackendtables(), dbShort::copyValueFrom(), dbChar::copyValueFrom(), dbUshort::copyValueFrom(), dbBool::copyValueFrom(), dbLong::copyValueFrom(), dbUlong::copyValueFrom(), dbText::copyValueFrom(), dbReal::copyValueFrom(), dbDate::copyValueFrom(), dbTime::copyValueFrom(), dbDateTime::copyValueFrom(), dbShort::copyValueIfDifferent(), dbChar::copyValueIfDifferent(), dbUshort::copyValueIfDifferent(), dbBool::copyValueIfDifferent(), dbLong::copyValueIfDifferent(), dbUlong::copyValueIfDifferent(), dbText::copyValueIfDifferent(), dbReal::copyValueIfDifferent(), dbDate::copyValueIfDifferent(), dbTime::copyValueIfDifferent(), dbDateTime::copyValueIfDifferent(), OOF_dbaseBackend::createTableInConnection(), dbView::currentHeading(), dbRelRefBase::describe(), dbQueryField::describe(), dbRepHTML::drawHeader(), dbRepHTMLTable::drawHeader(), dbRepChar::drawHeader(), dbRepHTML::drawPageWise(), dbRepHTMLTable::drawPageWise(), dbRepChar::drawPageWise(), oofXMLdataParser::EnterNestedData(), dbRep::extract(), oofE_CtreeBlobError::extract(), dbRelRefBase::fieldName(), oofColumnGraph::finishConstruction(), oofPointGraph::finishConstruction(), oofLineGraph::finishConstruction(), oofXYGraph::finishConstruction(), oofBarGraph::finishConstruction(), oofStackedBarGraph::finishConstruction(), oofOrdinalStackedBarGraph::finishConstruction(), dbView::getHeading(), dbQueryField::getSearchTables(), dbChar::insert(), dbText::insert(), dbField::name(), OOF_simpleRecordBackend::sortSelectionInverseNow(), OOF_simpleRecordBackend::sortSelectionNow(), oofXMLdataParser::startElement(), oofXMLDBWriter::startSchema(), OOF_repXMLschemaVisitor::UniquifyTables(), dbFieldLink::validToLeaveForm(), and oofXMLDBWriter::writeRecord().

fieldNumT dbField::fieldNumber ( ) const
inlineinherited
unsigned short dbField::fieldNumIndexes ( ) const
inlineinherited

Definition at line 723 of file oof3.h.

References kNotIndexed.

Referenced by OOF_ctreeBackend::BuildBackendtables().

unsigned long dbFixedBinary::fieldStorageLen ( ) const
virtual

Implements dbField.

Definition at line 610 of file oof3.cpp.

References mBodyLength.

dbTable * dbField::fieldTable ( ) const
inherited
OOF_fieldTypes dbFixedBinary::fieldType ( ) const
virtual

Implements dbField.

Definition at line 603 of file oof3.cpp.

References fixedBinaryField.

unsigned long dbField::fieldUsualWrapWidth ( ) const
virtualinherited

Reimplemented in dbText, and dbChar.

Definition at line 235 of file oof3.cpp.

References dbField::fieldMinWrapWidth().

Referenced by oofViewFieldDefaultsColSizer::CalculateDefaultWidths().

void dbFixedBinary::generateTestData ( bool  generateRandom,
unsigned long  seedOrCount 
)
virtual

Reimplemented from dbField.

Definition at line 719 of file oof3.cpp.

References oofString::makeRandomChars(), mBodyLength, and setString().

void dbField::getChars ( char *  ioBuff,
unsigned long &  outLen 
) const
virtualinherited

Reimplemented in dbText, and dbChar.

Definition at line 481 of file oof3.cpp.

References dbField::extract().

Referenced by dbViewAsTableStorage::GetCellData().

bool dbField::hasDefaultCalculator ( ) const
inlineinherited
bool OOF_PublicBase::hidden ( ) const
inlineinherited

Definition at line 51 of file oof1.h.

Referenced by OOF_Dictionary::EntryMatchesVisibility().

void OOF_PublicBase::hide ( bool  hideIt = true)
inlineinherited

Definition at line 52 of file oof1.h.

void dbField::index ( const OOF_IndexOptions  indexOpt = kIndexed)
inherited

Definition at line 212 of file oof3.cpp.

Referenced by dbRelRefBase::joinField(), and dbRelRefBase::SetCommonRelationshipFields().

void dbField::indexPartialKeyLen ( unsigned short  inLen)
inlineinherited

Definition at line 685 of file oof3.h.

bool dbField::insert ( std::istream &  ,
char  fieldSep,
char  recSep 
)
virtualinherited

Reimplemented in dbDateTime, dbTime, dbDate, dbReal, dbText, dbUlong, dbLong, dbBool, dbUshort, dbChar, and dbShort.

Definition at line 513 of file oof3.cpp.

Referenced by dbChar::insert(), dbText::insert(), dbTable::insert(), and operator>>().

bool dbField::isDirty ( ) const
inherited
bool dbField::isEmpty ( ) const
virtualinherited

Reimplemented in dbDateTime, dbDate, dbBLOB, and dbChar.

Definition at line 170 of file oof3.cpp.

Referenced by OOF_ctreeKeywordIndex::updateWords().

oofString dbField::name ( ) const
virtualinherited

Reimplemented from OOF_PublicBase.

Definition at line 156 of file oof3.cpp.

References dbField::fieldName().

Referenced by dbField::setName().

OOF_fieldTypes dbField::nativeType ( ) const
virtualinherited
dbFixedBinary & dbFixedBinary::operator= ( const dbFixedBinary rhs)
Bug:
needs implementing with readBytes in loop

Definition at line 620 of file oof3.cpp.

Referenced by setString().

dbFixedBinary & dbFixedBinary::operator= ( const char *  str)

Definition at line 658 of file oof3.cpp.

References clear(), mBodyLength, and setValue().

virtual void dbField::postCloneTableCleanup ( )
inlinevirtualinherited

Reimplemented in dbRelRefBase.

Definition at line 77 of file oof3.h.

Referenced by dbTable::postCloneTableCleanup().

void dbField::saveDefaultCalculatedValue ( )
inherited
void dbField::saveStoredCalculatedValue ( )
inherited

Definition at line 282 of file oof3.cpp.

References dbField::CopyCalculatedValueToBuffer().

Referenced by OOF_simpleRecordBackend::saveRecord().

void dbFixedBinary::setByte ( char  c,
unsigned long  offset 
)
void dbField::setName ( const char *  name)
inherited

Definition at line 195 of file oof3.cpp.

References dbField::name().

Referenced by dbView::AppendOwnedField(), and OOF_repXMLschemaVisitor::UniquifyTables().

virtual void dbField::setNumber ( long  )
inlinevirtualinherited

Reimplemented in dbDateTime, dbDate, dbReal, dbText, dbUlong, dbLong, dbBool, dbUshort, dbChar, and dbShort.

Definition at line 133 of file oof3.h.

Referenced by dbNumericField::clear().

void dbFixedBinary::setString ( const char *  str)
virtual

Reimplemented from dbField.

Definition at line 651 of file oof3.cpp.

References operator=().

Referenced by generateTestData().

void dbFixedBinary::setValue ( const void *  str)
void dbField::storeCalculatedValues ( )
inlineinherited

Definition at line 813 of file oof3.h.

Referenced by OOF_ctreeBackend::BuildBackendtables().

bool dbField::storesCalculatedValues ( ) const
inlineinherited

Definition at line 806 of file oof3.h.

Referenced by OOF_simpleRecordBackend::GetFieldWriteDest().

const char * dbField::tableName ( ) const
inherited
void dbField::useCalculatorOnlyForDefaults ( )
inlineinherited

Definition at line 799 of file oof3.h.

Referenced by dbField::CalculateWith().

bool dbField::usingCalculator ( ) const
inherited
bool dbField::validateContents ( )
virtualinherited

Definition at line 177 of file oof3.cpp.

dbQueryClause * dbField::valueAsQueryLiteral ( ) const
virtualinherited
bool dbField::valueIsDuplicate ( ) const
inherited
oofWordParser * dbField::words ( ) const
virtualinherited

Reimplemented in dbText, and dbChar.

Definition at line 251 of file oof3.cpp.

Referenced by OOF_simpleRecordBackend::SearchWordNonIndexed(), and OOF_ctreeKeywordIndex::updateWords().

Member Data Documentation

OOF_tableBackend* dbField::mBackend
protectedinherited
unsigned long dbFixedBinary::mBodyLength
protected
dbCalculator* dbField::mCalculator
protectedinherited
fieldNumT dbField::mFieldNumber
protectedinherited
bool OOF_PublicBase::mHidden
protectedinherited

Definition at line 61 of file oof1.h.

dbTable* dbField::mTable
protectedinherited

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