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

oofDateTime Class Reference
[Local variables compatible with database fields.]

#include <oof4.h>

Inheritance diagram for oofDateTime:

Inheritance graph
[legend]
Collaboration diagram for oofDateTime:

Collaboration graph
[legend]
List of all members.

Detailed Description

Use to have local non-persistent variable of type dbDateTime.


Public Types

enum  { NUMDATETIMETOKENS = 42 }
enum  FieldIsStandaloneT { eFieldIsStandalone }
enum  { kKeyLengthAutoCalculated = USHRT_MAX }

Public Member Functions

 oofDateTime ()
 oofDateTime (const char *initialTime)
 oofDateTime (const tm &)
 oofDateTime (const dbDateTime &)
 oofDateTime (const oofDateTime &)
virtual ~oofDateTime ()
virtual dbFieldclone () const
oofDateTimeoperator= (const char *)
oofDateTimeoperator= (const tm &)
oofDateTimeoperator= (const oofDateTime &)
oofDateTimeoperator= (const dbDateTime &)
dbDateTimecalculateWith (dbDateTimeCalculator *adoptedCalculator, bool useOnlyForDefaults=false)
dbDateTimeCalculatorcalculator () const
virtual dbDateTimeoperator++ ()
virtual dbDateTimeoperator-- ()
dbDateTimeoperator+= (long numDays)
void operator+= (double)
dbDateTimeoperator-= (long numDays)
void operator-= (double)
unsigned long operator+ (const dbDateTime &) const
dbDateTime operator+ (long numDays) const
unsigned long operator- (const dbDateTime &) const
dbDateTime operator- (long numDays) const
dbQueryTrinary between (const char *, const char *) const
dbQueryTrinary between (const dbDateTime &, const dbDateTime &) const
dbQueryTrinary between (long, long) const
dbQueryTrinary outside (const char *, const char *) const
dbQueryTrinary outside (const dbDateTime &, const dbDateTime &) const
dbQueryTrinary outside (long, long) const
dbQueryBinary operator== (const char *) const
dbQueryBinary operator== (const dbDateTime &) const
dbQueryBinary operator== (long) const
dbQueryBinary operator!= (const char *) const
dbQueryBinary operator!= (const dbDateTime &) const
dbQueryBinary operator!= (long) const
dbQueryBinary operator< (const char *) const
dbQueryBinary operator< (const dbDateTime &) const
dbQueryBinary operator< (long) const
dbQueryBinary operator<= (const char *) const
dbQueryBinary operator<= (const dbDateTime &) const
dbQueryBinary operator<= (long) const
dbQueryBinary operator> (const char *) const
dbQueryBinary operator> (const dbDateTime &) const
dbQueryBinary operator> (long) const
dbQueryBinary operator>= (const char *) const
dbQueryBinary operator>= (const dbDateTime &) const
dbQueryBinary operator>= (long) const
virtual unsigned long fieldStorageLen () const
virtual OOF_fieldTypes fieldType () const
virtual OOF_fieldTypes nativeType () const
bool isEmpty () const
bool isValid () const
virtual void generateTestData (bool generateRandom, unsigned long seedOrCount)
virtual void setNumber (long)
virtual void setString (const char *)
void setDateTime (unsigned long numberSecondsSinceBaseDate)
void setDateTime (unsigned short year, unsigned short month, unsigned short day, unsigned short hour, unsigned short minute, unsigned short second)
void setDateTime (const tm &unixTime)
void setTimeToCurrentTime ()
virtual void copyValueFrom (const dbField *)
virtual void copyValueIfDifferent (const dbField *)
void setStr255 (const Str255 s)
virtual bool insert (std::istream &, char fieldSep, char recSep)
 operator unsigned long () const
unsigned long getDateTime () const
void getDateTime (unsigned short &year, unsigned short &month, unsigned short &day, unsigned short &hour, unsigned short &minute, unsigned short &second) const
void getDateTime (tm &unixTime) const
unsigned long value () const
virtual dbQueryClausevalueAsQueryLiteral () const
unsigned short year () const
unsigned short month () const
unsigned short day () const
unsigned short hour () const
unsigned short minute () const
unsigned short second () const
void getStr255 (Str255 s) const
virtual void extract (std::ostream &os) const
virtual unsigned long fieldMinWrapWidth () const
const oofStringformatMask () const
void formatMask (const char *)
virtual void clear ()
dbQueryBinary equal (long) const
dbQueryBinary lessThan (long) const
dbQueryBinary lessThanOrEqual (long) const
dbQueryBinary greaterThanOrEqual (long) const
dbQueryBinary greaterThan (long) const
dbQueryBinary notEqual (long) const
void operator *= (long)
void operator *= (double)
void operator/= (long)
void operator/= (double)
virtual dbQueryLiteralmakeQueryLiteral (long) const
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 fieldUsualWrapWidth () 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 fieldIsKeywordIndexed () const
virtual bool fieldIsUniqueIndexed () const
unsigned short fieldNumIndexes () const
unsigned short fieldKeyLen () const
bool caseSensitive () const
virtual bool fieldIsBlob () const
virtual bool fieldIsBinary () 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 oofString copyString () const
virtual void getChars (char *ioBuff, unsigned long &outLen) const
virtual const char * asChars () const
virtual bool validateContents ()
virtual oofWordParserwords () const
void saveDefaultCalculatedValue ()
void saveStoredCalculatedValue ()
bool hidden () const
void hide (bool hideIt=true)

Static Public Member Functions

bool checkTime (unsigned short year, unsigned short month, unsigned short day, unsigned short hour, unsigned short minute, unsigned short second)
bool checkTime (const char *)
void ulong2ymdhms (long binaryTime, unsigned short &year, unsigned short &month, unsigned short &day, unsigned short &hour, unsigned short &minute, unsigned short &second)
unsigned long ymdhms2ulong (unsigned short year, unsigned short month, unsigned short day, unsigned short hour=0, unsigned short minute=0, unsigned short second=0)
bool istream2ymdhms (std::istream &is, unsigned short &year, unsigned short &month, unsigned short &day, unsigned short &hour, unsigned short &minute, unsigned short &second, dbDate::dateFieldOrder)
bool istream2ymdhms (std::istream &is, unsigned short &year, unsigned short &month, unsigned short &day, unsigned short &hour, unsigned short &minute, unsigned short &second, char fieldSep, char recSep, dbDate::dateFieldOrder)
std::ostream & ymdhms2stream (unsigned short year, unsigned short month, unsigned short day, unsigned short hour, unsigned short minute, unsigned short second, std::ostream &os)
std::ostream & ymdhms2stream (const char *mask, unsigned short year, unsigned short month, unsigned short day, unsigned short hour, unsigned short minute, unsigned short second, std::ostream &os)
unsigned long str2ulong (const char *str)
bool str2ymdhms (const char *str, unsigned short &year, unsigned short &month, unsigned short &day, unsigned short &hour, unsigned short &minute, unsigned short &second)
unsigned long secsInYear (unsigned short year)
unsigned long secsInMonth (unsigned short year, unsigned short month)
unsigned short daysInMonth (unsigned short year, unsigned short month)
std::ostream & now (std::ostream &os)
void currentTime2ymdhms (unsigned short &year, unsigned short &month, unsigned short &day, unsigned short &hour, unsigned short &minute, unsigned short &second)
dbDateTime currentTime ()
unsigned short currentYear ()
unsigned short currentMonth ()
unsigned short currentDay ()
unsigned short currentHour ()
unsigned short currentMinute ()
unsigned short currentSecond ()
const oofStringdefaultFormatMask ()
void defaultFormatMask (const oofString &)
void setMacCompatibleBaseYear ()
TOKEN get_token (const char **s, const OOF_TOKENTYPE *m, unsigned int len)
void parseMask (const char *s, TOKEN *r, const OOF_TOKENTYPE *map, unsigned int len)

Public Attributes

OOF_String mFormatMask

Static Public Attributes

unsigned int sBaseYear = 1970

Protected Member Functions

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

Static Protected Member Functions

void CheckRange (double d, long minL, long maxL, const char *file, int line)
void CheckRange (long l, long minL, long maxL, const char *file, int line)
void CheckRange (unsigned long l, unsigned long max, const char *file, int line)

Protected Attributes

OOF_tableBackendmBackend
dbTablemTable
fieldNumT mFieldNumber
dbCalculatormCalculator
bool mHidden

Static Protected Attributes

OOF_TOKENTYPE tokenMap [NUMDATETIMETOKENS]
oofString sDefaultFormatMask


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumeration values:
NUMDATETIMETOKENS 

anonymous enum [inherited]
 

Enumeration values:
kKeyLengthAutoCalculated 

enum dbField::FieldIsStandaloneT [inherited]
 

Enumeration values:
eFieldIsStandalone 


Constructor & Destructor Documentation

oofDateTime::oofDateTime  ) 
 

oofDateTime::oofDateTime const char *  initialTime  ) 
 

oofDateTime::oofDateTime const tm &   ) 
 

oofDateTime::oofDateTime const dbDateTime  ) 
 

oofDateTime::oofDateTime const oofDateTime  ) 
 

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


Member Function Documentation

const char * dbField::asChars  )  const [virtual, inherited]
 

Reimplemented in dbChar, and dbText.

dbQueryTrinary dbNumericField::between long  ,
long 
const [inherited]
 

dbQueryTrinary dbDateTime::between const dbDateTime ,
const dbDateTime
const [inherited]
 

dbQueryTrinary dbDateTime::between const char *  ,
const char * 
const [inherited]
 

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

dbDateTime & dbDateTime::calculateWith dbDateTimeCalculator adoptedCalculator,
bool  useOnlyForDefaults = false
[inherited]
 

dbDateTimeCalculator * dbDateTime::calculator  )  const [inline, inherited]
 

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

void dbNumericField::CheckRange unsigned long  l,
unsigned long  max,
const char *  file,
int  line
[static, protected, inherited]
 

void dbNumericField::CheckRange long  l,
long  minL,
long  maxL,
const char *  file,
int  line
[static, protected, inherited]
 

void dbNumericField::CheckRange double  d,
long  minL,
long  maxL,
const char *  file,
int  line
[static, protected, inherited]
 

bool dbDateTime::checkTime const char *   )  [static, inherited]
 

bool dbDateTime::checkTime unsigned short  year,
unsigned short  month,
unsigned short  day,
unsigned short  hour,
unsigned short  minute,
unsigned short  second
[static, inherited]
 

void dbNumericField::clear  )  [virtual, inherited]
 

Reimplemented from dbField.

dbField * oofDateTime::clone  )  const [virtual]
 

Reimplemented from dbDateTime.

void dbDateTime::CopyCalculatedValueToBuffer  )  [protected, virtual, inherited]
 

Reimplemented from dbField.

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

Reimplemented in dbChar, and dbText.

void dbDateTime::copyValueFrom const dbField  )  [virtual, inherited]
 

Reimplemented from dbField.

void dbDateTime::copyValueIfDifferent const dbField  )  [virtual, inherited]
 

Reimplemented from dbField.

unsigned short dbDateTime::currentDay  )  [static, inherited]
 

unsigned short dbDateTime::currentHour  )  [static, inherited]
 

unsigned short dbDateTime::currentMinute  )  [static, inherited]
 

unsigned short dbDateTime::currentMonth  )  [static, inherited]
 

unsigned short dbDateTime::currentSecond  )  [static, inherited]
 

dbDateTime dbDateTime::currentTime  )  [static, inherited]
 

void dbDateTime::currentTime2ymdhms unsigned short &  year,
unsigned short &  month,
unsigned short &  day,
unsigned short &  hour,
unsigned short &  minute,
unsigned short &  second
[static, inherited]
 

unsigned short dbDateTime::currentYear  )  [static, inherited]
 

unsigned short dbDateTime::day  )  const [inherited]
 

unsigned short dbDateTime::daysInMonth unsigned short  year,
unsigned short  month
[static, inherited]
 

void dbDateTime::defaultFormatMask const oofString  )  [inline, static, inherited]
 

const oofString & dbDateTime::defaultFormatMask  )  [inline, static, inherited]
 

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.

dbQueryBinary dbNumericField::equal long   )  const [inherited]
 

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

void dbDateTime::extract std::ostream &  os  )  const [virtual, inherited]
 

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 dbField::fieldIsBinary  )  const [virtual, inherited]
 

Reimplemented in dbChar, and dbText.

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 dbField::fieldIsKeywordIndexed  )  const [virtual, inherited]
 

Reimplemented in dbChar, and dbText.

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 dbNumericField::fieldMinWrapWidth  )  const [virtual, inherited]
 

Reimplemented from dbField.

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 dbDateTime::fieldStorageLen  )  const [virtual, inherited]
 

Implements dbField.

dbTable * dbField::fieldTable  )  const [inherited]
 

OOF_fieldTypes dbDateTime::fieldType  )  const [virtual, inherited]
 

Implements dbField.

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

Reimplemented in dbChar, and dbText.

void dbNumericField::formatMask const char *   )  [inline, inherited]
 

const oofString & dbNumericField::formatMask  )  const [inline, inherited]
 

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

Reimplemented from dbField.

TOKEN dbNumericField::get_token const char **  s,
const OOF_TOKENTYPE m,
unsigned int  len
[static, inherited]
 

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

Reimplemented in dbChar, and dbText.

void dbDateTime::getDateTime tm &  unixTime  )  const [inherited]
 

void dbDateTime::getDateTime unsigned short &  year,
unsigned short &  month,
unsigned short &  day,
unsigned short &  hour,
unsigned short &  minute,
unsigned short &  second
const [inherited]
 

unsigned long dbDateTime::getDateTime  )  const [inline, inherited]
 

void dbDateTime::getStr255 Str255  s  )  const [inherited]
 

dbQueryBinary dbNumericField::greaterThan long   )  const [inherited]
 

dbQueryBinary dbNumericField::greaterThanOrEqual long   )  const [inherited]
 

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

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

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

unsigned short dbDateTime::hour  )  const [inherited]
 

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