Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dbText Class Reference
[OOFILE Database package]

#include <oof3.h>

Inheritance diagram for dbText:

Inheritance graph
[legend]
Collaboration diagram for dbText:

Collaboration graph
[legend]
List of all members.

Detailed Description

Persistent field used to store a variable length string.

Usually lazily evaluated, so only loaded on access to field rather than with main record.


Public Types

enum  FieldIsStandaloneT { eFieldIsStandalone }
enum  { kKeyLengthAutoCalculated = USHRT_MAX }

Public Member Functions

 dbText (const OOF_IndexOptions)
 dbText (const char *fieldName=0)
 dbText (const char *fieldName, const OOF_IndexOptions)
 dbText (dbField::FieldIsStandaloneT)
 dbText (const dbText &)
virtual ~dbText ()
virtual dbFieldclone () const
dbTextcalculateWith (dbTextCalculator *adoptedCalculator, bool useOnlyForDefaults=false)
dbTextCalculatorcalculator () const
virtual OOF_fieldTypes fieldType () const
virtual OOF_fieldTypes nativeType () const
virtual unsigned long fieldUsualWrapWidth () const
virtual bool fieldIsKeywordIndexed () const
virtual bool fieldIsBinary () const
dbQueryBinary operator== (const char *) const
dbQueryBinary operator< (const char *) const
dbQueryBinary operator<= (const char *) const
dbQueryBinary operator>= (const char *) const
dbQueryBinary operator> (const char *) const
dbQueryBinary operator!= (const char *) const
const char * value () const
virtual dbQueryClausevalueAsQueryLiteral () const
virtual unsigned long length () const
virtual const char * asChars () const
virtual oofString copyString () const
virtual void getChars (char *ioBuff, unsigned long &outLen) const
 operator const char * () const
virtual void clear ()
virtual void setString (const char *)
virtual void setNumber (long)
virtual void setString (const oofString &)
dbTextoperator= (char)
dbTextoperator= (const char *)
dbTextoperator= (const dbText &)
void operator+= (char)
void operator+= (const char *)
virtual void append (const void *appendBody, unsigned long bodyLen=ULONG_MAX, unsigned long usedLen=ULONG_MAX)
void setChars (const char *str, unsigned long charLen)
void adoptString (oofString &adoptedString) const
virtual void generateTestData (bool generateRandom, unsigned long seedOrCount)
virtual void extract (std::ostream &os) const
virtual bool insert (std::istream &, char fieldSep, char recSep)
virtual void copyValueFrom (const dbField *)
virtual void copyValueIfDifferent (const dbField *)
virtual oofWordParserwords () const
virtual unsigned long fieldStorageLen () const
virtual bool isEmpty () const
virtual bool fieldIsBlob () const
bool isDirty () const
bool loaded () const
char * bodyAddress () const
void reset () const
char * allocRoomFor (unsigned long) const
char * orphanBody () const
void adoptBody (void *body, unsigned long bodyLen) const
void adoptBody (void *body, unsigned long bodyLen, unsigned long usedLen) const
void append (const dbBLOB &)
void setBytes (const void *buf, unsigned long bufLen)
 Copy the incoming buffer into our local buffer in mStorage.

void markDirty () const
void operator+= (const dbBLOB &)
virtual void postCloneTableCleanup ()
virtual oofString name () const
void index (const OOF_IndexOptions=kIndexed)
void indexPartialKeyLen (unsigned short)
void setName (const char *name)
bool hasDefaultCalculator () const
void useCalculatorOnlyForDefaults ()
bool storesCalculatedValues () const
void storeCalculatedValues ()
bool usingCalculator () const
const char * tableName () const
bool fieldIsStandalone () const
virtual bool fieldIsSameTypeAs (const dbField *) const
virtual void describe (std::ostream &) const
 Provide human-readable information about object.

virtual unsigned long fieldMinWrapWidth () const
dbTablefieldTable () const
unsigned long fieldDataLen () const
fieldNumT fieldNumber () const
virtual const oofStringfieldName () const
OOF_IndexOptions fieldIndexOptions () const
bool fieldIndexIgnoresNulls () const
bool fieldIndexIsCompressLeading () const
bool fieldIndexIsCompressPadding () const
virtual bool fieldIsIndexed () const
bool fieldIsPartiallyIndexed () const
virtual bool fieldIsUniqueIndexed () const
unsigned short fieldNumIndexes () const
unsigned short fieldKeyLen () const
bool caseSensitive () const
virtual bool fieldIsVirtual () const
dbFieldequivalentFieldFromTable (dbTable *) const
bool valueIsDuplicate () const
bool fieldIsJoinKey () const
 Checks if any relationships in field's table use field as join key.

virtual bool validateContents ()
void saveDefaultCalculatedValue ()
void saveStoredCalculatedValue ()
bool hidden () const
void hide (bool hideIt=true)
void indexWords (oofWordParser *adoptedParser=0)
oofWordParserwordParser () const
dbQueryBinary hasWord (const char *str) const
dbQueryBinary hasAnyWordsDelimited (const char *, char delimiter)
dbQueryBinary hasAllWordsDelimited (const char *, char delimiter)
dbQueryBinary hasAnyWordsOf (const char **schStrs, unsigned long count)
dbQueryBinary hasAnyWordsOf (oofWordParser *)
dbQueryBinary hasAllWordsOf (const char **schStrs, unsigned long count)
dbQueryBinary hasAllWordsOf (oofWordParser *)
dbQueryBinary hasWordStartsWith (const char *str) const
dbQueryBinary hasAnyWordsStartsWithDelimited (const char *, char delimiter)
dbQueryBinary hasAllWordsStartsWithDelimited (const char *, char delimiter)
dbQueryBinary hasAnyWordsStartsWithOf (const char **schStrs, unsigned long count)
dbQueryBinary hasAnyWordsStartsWithOf (oofWordParser *)
dbQueryBinary hasAllWordsStartsWithOf (const char **schStrs, unsigned long count)
dbQueryBinary hasAllWordsStartsWithOf (oofWordParser *)

Static Public Member Functions

void convertsLineEndingsOnLoad (bool willConvert)
bool convertsLineEndingsOnLoad ()

Protected Member Functions

virtual void CopyCalculatedValueToBuffer ()
void SetLength (unsigned long len) const
void LoadField () const
void CalculateWith (dbCalculator *adoptedCalculator, bool useOnlyForDefaults)

Protected Attributes

dbBLOBstoragemStorage
bool mIsTextField
OOF_tableBackendmBackend
dbTablemTable
fieldNumT mFieldNumber
dbCalculatormCalculator
bool mHidden
oofWordParsermParser
dbFieldmThisField

Static Protected Attributes

bool sConvertsLineEndingsOnLoad = false

Friends

void dbBLOBstorage::setChars (const char *str, unsigned long charLen)
void dbBLOBstorage::setBytes (const char *buf, unsigned long bufLen)


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumeration values:
kKeyLengthAutoCalculated 

enum dbField::FieldIsStandaloneT [inherited]
 

Enumeration values:
eFieldIsStandalone 


Constructor & Destructor Documentation

dbText::dbText const  OOF_IndexOptions  ) 
 

dbText::dbText const char *  fieldName = 0  ) 
 

dbText::dbText const char *  fieldName,
const  OOF_IndexOptions
 

dbText::dbText dbField::FieldIsStandaloneT   ) 
 

dbText::dbText const dbText  ) 
 

virtual dbText::~dbText  )  [inline, virtual]
 


Member Function Documentation

void dbBLOB::adoptBody void *  body,
unsigned long  bodyLen,
unsigned long  usedLen
const [inherited]
 

void dbBLOB::adoptBody void *  body,
unsigned long  bodyLen
const [inherited]
 

void dbText::adoptString oofString adoptedString  )  const
 

char * dbBLOB::allocRoomFor unsigned  long  )  const [inline, inherited]
 

void dbBLOB::append const dbBLOB  )  [inherited]
 

void dbText::append const void *  appendBody,
unsigned long  bodyLen = ULONG_MAX,
unsigned long  usedLen = ULONG_MAX
[virtual]
 

Reimplemented from dbBLOB.

const char * dbText::asChars  )  const [virtual]
 

Reimplemented from dbField.

char * dbBLOB::bodyAddress  )  const [inherited]
 

void dbField::CalculateWith dbCalculator adoptedCalculator,
bool  useOnlyForDefaults
[protected, inherited]
 

dbText & dbText::calculateWith dbTextCalculator adoptedCalculator,
bool  useOnlyForDefaults = false
 

dbTextCalculator * dbText::calculator  )  const [inline]
 

bool dbField::caseSensitive  )  const [inline, inherited]
 

void dbText::clear  )  [virtual]
 

Reimplemented from dbField.

dbField * dbText::clone  )  const [virtual]
 

Reimplemented from dbBLOB.

Reimplemented in oofText.

bool dbText::convertsLineEndingsOnLoad  )  [inline, static]
 

void dbText::convertsLineEndingsOnLoad bool  willConvert  )  [inline, static]
 

void dbText::CopyCalculatedValueToBuffer  )  [protected, virtual]
 

Reimplemented from dbField.

oofString dbText::copyString  )  const [virtual]
 

Reimplemented from dbField.

void dbText::copyValueFrom const dbField  )  [virtual]
 

Reimplemented from dbField.

void dbText::copyValueIfDifferent const dbField  )  [virtual]
 

Reimplemented from dbField.

void dbField::describe std::ostream &  os  )  const [virtual, inherited]
 

Provide human-readable information about object.

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

Reimplemented from OOF_PublicBase.

Reimplemented in dbChar, dbFixedBinary, and dbRelRefBase.

dbField * dbField::equivalentFieldFromTable dbTable  )  const [inherited]
 

void dbText::extract std::ostream &  os  )  const [virtual]
 

Reimplemented from dbBLOB.

unsigned long dbField::fieldDataLen  )  const [inline, inherited]
 

bool dbField::fieldIndexIgnoresNulls  )  const [inline, inherited]
 

bool dbField::fieldIndexIsCompressLeading  )  const [inline, inherited]
 

bool dbField::fieldIndexIsCompressPadding  )  const [inline, inherited]
 

OOF_IndexOptions dbField::fieldIndexOptions  )  const [inline, inherited]
 

bool dbText::fieldIsBinary  )  const [virtual]
 

Reimplemented from dbField.

bool dbBLOB::fieldIsBlob  )  const [virtual, inherited]
 

Reimplemented from dbField.

bool dbField::fieldIsIndexed  )  const [virtual, inherited]
 

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

bool dbText::fieldIsKeywordIndexed  )  const [virtual]
 

Reimplemented from dbField.

bool dbField::fieldIsPartiallyIndexed  )  const [inline, inherited]
 

bool dbField::fieldIsSameTypeAs const dbField  )  const [virtual, inherited]
 

Reimplemented in dbChar, dbFixedBinary, dbCompoundField, and dbRelRefBase.

bool dbField::fieldIsStandalone  )  const [inline, inherited]
 

bool dbField::fieldIsUniqueIndexed  )  const [virtual, inherited]
 

bool dbField::fieldIsVirtual  )  const [virtual, inherited]
 

Reimplemented in dbCompoundField, and dbRelRefBase.

unsigned short dbField::fieldKeyLen  )  const [inherited]
 

unsigned long dbField::fieldMinWrapWidth  )  const [virtual, inherited]
 

Reimplemented in dbNumericField.

const oofString & dbField::fieldName  )  const [inline, virtual, inherited]
 

Reimplemented in dbRelRefBase.

fieldNumT dbField::fieldNumber  )  const [inline, inherited]
 

unsigned short dbField::fieldNumIndexes  )  const [inline, inherited]
 

unsigned long dbBLOB::fieldStorageLen  )  const [virtual, inherited]
 

Implements dbField.

dbTable * dbField::fieldTable  )  const [inherited]
 

OOF_fieldTypes dbText::fieldType  )  const [virtual]
 

Reimplemented from dbBLOB.

unsigned long dbText::fieldUsualWrapWidth  )  const [virtual]
 

Reimplemented from dbField.

void dbText::generateTestData bool  generateRandom,
unsigned long  seedOrCount
[virtual]
 

Reimplemented from dbBLOB.

void dbText::getChars char *  ioBuff,
unsigned long &  outLen
const [virtual]
 

Reimplemented from dbField.

dbQueryBinary OOF_mixKeywordableField::hasAllWordsDelimited const char *  ,
char  delimiter
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAllWordsOf oofWordParser  )  [inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAllWordsOf const char **  schStrs,
unsigned long  count
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAllWordsStartsWithDelimited const char *  ,
char  delimiter
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAllWordsStartsWithOf oofWordParser  )  [inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAllWordsStartsWithOf const char **  schStrs,
unsigned long  count
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAnyWordsDelimited const char *  ,
char  delimiter
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAnyWordsOf oofWordParser  )  [inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAnyWordsOf const char **  schStrs,
unsigned long  count
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAnyWordsStartsWithDelimited const char *  ,
char  delimiter
[inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAnyWordsStartsWithOf oofWordParser  )  [inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasAnyWordsStartsWithOf const char **  schStrs,
unsigned long  count
[inherited]
 

bool dbField::hasDefaultCalculator  )  const [inline, inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasWord const char *  str  )  const [inherited]
 

dbQueryBinary OOF_mixKeywordableField::hasWordStartsWith const char *  str  )  const [inherited]
 

bool OOF_PublicBase::hidden  )  const [inline, inherited]
 

void OOF_PublicBase::hide bool  hideIt = true  )  [inline, inherited]
 

void dbField::index const  OOF_IndexOptions = kIndexed  )  [inherited]
 

void dbField::indexPartialKeyLen unsigned  short  )  [inline, inherited]
 

void OOF_mixKeywordableField::indexWords oofWordParser adoptedParser = 0  )  [inherited]
 

bool dbText::insert std::istream &  ,
char  fieldSep,
char  recSep
[virtual]
 

Reimplemented from dbField.

bool dbBLOB::isDirty  )  const [inline, inherited]
 

Reimplemented from dbField.

bool dbBLOB::isEmpty  )  const [virtual, inherited]
 

Reimplemented from dbField.

unsigned long dbText::length  )  const [virtual]
 

Reimplemented from dbBLOB.

bool dbBLOB::loaded  )  const [inline, inherited]
 

void dbBLOB::LoadField  )  const [protected, inherited]
 

void dbBLOB::markDirty  )  const [inline, inherited]
 

oofString dbField::name  )  const [virtual, inherited]
 

Reimplemented from OOF_PublicBase.

OOF_fieldTypes dbText::nativeType  )  const [virtual]
 

Reimplemented from dbField.

dbText::operator const char *  )  const
 

dbQueryBinary dbText::operator!= const char *   )  const
 

void dbBLOB::operator+= const dbBLOB  )  [inherited]
 

void dbText::operator+= const char *   ) 
 

void dbText::operator+= char   ) 
 

dbQueryBinary dbText::operator< const char *   )  const
 

dbQueryBinary dbText::operator<= const char *   )  const
 

dbText & dbText::operator= const dbText  ) 
 

Reimplemented in oofText.

dbText & dbText::operator= const char *   ) 
 

Reimplemented from dbField.

Reimplemented in oofText.

dbText & dbText::operator= char   ) 
 

Reimplemented in oofText.

dbQueryBinary dbText::operator== const char *   )  const
 

dbQueryBinary dbText::operator> const char *   )  const
 

dbQueryBinary dbText::operator>= const char *   )  const
 

char * dbBLOB::orphanBody  )  const [inline, inherited]
 

virtual void dbField::postCloneTableCleanup  )  [inline, virtual, inherited]
 

Reimplemented in dbRelRefBase.

void dbBLOB::reset  )  const [inline, inherited]
 

void dbField::saveDefaultCalculatedValue  )  [inherited]
 

void dbField::saveStoredCalculatedValue (&nb