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

dbChar Class Reference
[OOFILE Database package]

#include <oof3.h>

Inheritance diagram for dbChar:

Inheritance graph
[legend]
Collaboration diagram for dbChar:

Collaboration graph
[legend]
List of all members.

Detailed Description

Persistent field used to store a fixed-length string.


Public Types

enum  FieldIsStandaloneT { eFieldIsStandalone }
enum  { kKeyLengthAutoCalculated = USHRT_MAX }

Public Member Functions

 dbChar (unsigned long fieldWidth=80, const char *fieldName=0)
 dbChar (unsigned long fieldWidth, const OOF_IndexOptions indexOptions)
 dbChar (unsigned long fieldWidth, const char *fieldName, const OOF_IndexOptions indexOptions)
 dbChar (dbField::FieldIsStandaloneT k, unsigned long fieldWidth=80)
 dbChar (const dbChar &)
virtual ~dbChar ()
virtual dbFieldclone () const
dbCharcalculateWith (dbCharCalculator *adoptedCalculator, bool useOnlyForDefaults=false)
dbCharCalculatorcalculator () const
virtual bool fieldIsSameTypeAs (const dbField *) const
virtual void describe (std::ostream &) const
 Provide human-readable information about object.

virtual OOF_fieldTypes fieldType () const
virtual bool fieldIsKeywordIndexed () const
virtual bool fieldIsBinary () const
virtual unsigned long fieldUsualWrapWidth () const
 Returns fixed width of the field.

virtual unsigned long fieldStorageLen () const
virtual bool isEmpty () const
unsigned short length () const
virtual dbQueryClausevalueAsQueryLiteral () 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
dbQueryBinary startsWith (const char *) const
dbQueryTrinary between (const char *, const char *) const
dbQueryTrinary outside (const char *, const char *) const
const char * value () const
virtual const char * asChars () const
virtual oofString copyString () const
virtual void getChars (char *ioBuff, unsigned long &ioLen) const
 operator const char * () const
virtual void extract (std::ostream &os) const
virtual void copyValueFrom (const dbField *)
virtual void copyValueIfDifferent (const dbField *)
virtual oofWordParserwords () const
void getStr255 (Str255 s) const
void setStr255 (const Str255 s)
virtual void clear ()
virtual void setString (const char *)
virtual void setNumber (long)
virtual void setString (const oofString &)
dbCharoperator= (const char *)
dbCharoperator= (char)
void operator+= (char)
void operator+= (const char *)
void setChars (const char *str, unsigned long charLen)
 Copy string up to the specified length or maximum size of this fixed length string.

dbCharoperator= (const dbChar &)
virtual bool insert (std::istream &, char fieldSep, char recSep)
virtual void generateTestData (bool generateRandom, unsigned long seedOrCount)
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 OOF_fieldTypes nativeType () const
virtual unsigned long fieldMinWrapWidth () const
dbTablefieldTable () const
unsigned long fieldDataLen () const
bool isDirty () 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 fieldIsBlob () 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 *)

Protected Member Functions

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

Protected Attributes

unsigned long mMaxLength
 Maximum length that can be stored in the field.

OOF_tableBackendmBackend
dbTablemTable
fieldNumT mFieldNumber
dbCalculatormCalculator
bool mHidden
oofWordParsermParser
dbFieldmThisField

Friends

class OOF_dbaseBackend


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumeration values:
kKeyLengthAutoCalculated 

enum dbField::FieldIsStandaloneT [inherited]
 

Enumeration values:
eFieldIsStandalone 


Constructor & Destructor Documentation

dbChar::dbChar unsigned long  fieldWidth = 80,
const char *  fieldName = 0
 

dbChar::dbChar unsigned long  fieldWidth,
const OOF_IndexOptions  indexOptions
 

dbChar::dbChar unsigned long  fieldWidth,
const char *  fieldName,
const OOF_IndexOptions  indexOptions
 

dbChar::dbChar dbField::FieldIsStandaloneT  k,
unsigned long  fieldWidth = 80
 

dbChar::dbChar const dbChar  ) 
 

dbChar::~dbChar  )  [virtual]
 


Member Function Documentation

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

Reimplemented from dbField.

dbQueryTrinary dbChar::between const char *  ,
const char * 
const
 

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

dbChar & dbChar::calculateWith dbCharCalculator adoptedCalculator,
bool  useOnlyForDefaults = false
 

dbCharCalculator * dbChar::calculator  )  const [inline]
 

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

void dbChar::clear  )  [virtual]
 

Reimplemented from dbField.

dbField * dbChar::clone  )  const [virtual]
 

Implements dbField.

Reimplemented in oofChar.

void dbChar::CopyCalculatedValueToBuffer  )  [protected, virtual]
 

Reimplemented from dbField.

oofString dbChar::copyString  )  const [virtual]
 

Reimplemented from dbField.

void dbChar::copyValueFrom const dbField  )  [virtual]
 

Reimplemented from dbField.

void dbChar::copyValueIfDifferent const dbField  )  [virtual]
 

Reimplemented from dbField.

void dbChar::describe std::ostream &  os  )  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.

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

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

Reimplemented from dbField.

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 dbChar::fieldIsBinary  )  const [virtual]
 

Reimplemented from dbField.

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

Reimplemented in dbBLOB.

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 dbChar::fieldIsKeywordIndexed  )  const [virtual]
 

Reimplemented from dbField.

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

bool dbChar::fieldIsSameTypeAs const dbField  )  const [virtual]
 

Reimplemented from dbField.

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 dbChar::fieldStorageLen  )  const [virtual]
 

Implements dbField.

dbTable * dbField::fieldTable  )  const [inherited]
 

OOF_fieldTypes dbChar::fieldType  )  const [virtual]
 

Implements dbField.

unsigned long dbChar::fieldUsualWrapWidth  )  const [virtual]
 

Returns fixed width of the field.

For empty oofChar (standalone subclass) it still returns a non-zero value so we don't run into problems with wrapping or other output algorithms.

Returns:
a minimum of 1.
Todo:
Make fieldUsualWrapWidth a settable attribute.

Reimplemented from dbField.

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

Reimplemented from dbField.

void dbChar::getChars char *  ioBuff,
unsigned long &  ioLen
const [virtual]
 

Reimplemented from dbField.

void dbChar::getStr255 Str255  s  )  const
 

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 dbChar::insert std::istream &  ,
char  fieldSep,
char  recSep
[virtual]
 

Reimplemented from dbField.

bool dbField::isDirty  )  const [inherited]
 

Reimplemented in dbBLOB.

bool dbChar::isEmpty  )  const [virtual]
 

Reimplemented from dbField.

unsigned short dbChar::length  )  const
 

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

Reimplemented from OOF_PublicBase.

OOF_fieldTypes dbField::nativeType  )  const [virtual, inherited]
 

Reimplemented in dbText, dbBool, dbDate, dbTime, dbDateTime, and dbRelRefBase.

dbChar::operator const char *  )  const
 

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

void dbChar::operator+= const char *   ) 
 

void dbChar::operator+= char   ) 
 

dbQueryBinary dbChar::operator< const char *   )  const
 

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

dbChar & dbChar::operator= const dbChar  ) 
 

Reimplemented in oofChar.

dbChar & dbChar::operator= char   ) 
 

Reimplemented in oofChar.

dbChar & dbChar::operator= const char *   ) 
 

Reimplemented from dbField.

Reimplemented in oofChar.

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

dbQueryBinary dbChar::operator> const char *   )  const
 

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

dbQueryTrinary dbChar::outside const char *  ,
const char * 
const
 

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

Reimplemented in dbRelRefBase.

void dbField::saveDefaultCalculatedValue  )  [inherited]
 

void dbField::saveStoredCalculatedValue  )  [inherited]
 

void dbChar::setChars const char *  str,
unsigned long  charLen
 

Copy string up to the specified length or maximum size of this fixed length string.

Gives message in OOF_DEBUG mode warning of truncation but carries on.

void dbField::setName const char *  name  )  [inherited]
 

void dbChar::setNumber long   )  [virtual]
 

Reimplemented from dbField.

void dbChar::setStr255 const Str255  s  ) 
 

void dbChar::setString const oofString  )  [inline, virtual]
 

void dbChar::setString const char *   )  [virtual]
 

Reimplemented from dbField.

dbQueryBinary dbChar::startsWith const char *   )  const
 

void dbField::storeCalculatedValues  )  [inline, inherited]
 

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

const char * dbField::tableName  )  const [inherited]
 

void dbField::useCalculatorOnlyForDefaults  )  [inline, inherited]
 

bool dbField::usingCalculator  )  const [inherited]
 

bool dbField::validateContents  )  [virtual, inherited]
 

const char * dbChar::value  )  const [inline]
 

dbQueryClause * dbChar::valueAsQueryLiteral