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

dbConnect_dbase Class Reference
[OOFILE Database backend for dBase III+ and IV-compatible data.]

#include <oofdbase.h>

Inheritance diagram for dbConnect_dbase:

Inheritance graph
[legend]
Collaboration diagram for dbConnect_dbase:

Collaboration graph
[legend]
List of all members.

Detailed Description

Database connection to a set of dBase-compatible files.

See also:
OOF_dbaseBackend


Public Member Functions

 dbConnect_dbase (bool isTemporary=false)
virtual ~dbConnect_dbase ()
virtual void newConnection (const char *)
virtual void openConnection (const char *)
virtual bool openOrCreateConnection (const char *connectionName)
virtual void newConnection (const FSSpec &)
virtual void openConnection (const FSSpec &)
virtual void close ()
virtual bool usesSeparateStorageFiles () const
virtual void exitLocking ()
virtual void enterWriteLocking ()
virtual void enterReadLocking ()
void useDbase3Memos ()
virtual oofString name () const
virtual void deleteStorage ()
void gotoDatabaseDir () const
oofDirectorydatabaseDirectory () const
const oofStringconnectionName () const
void attachTable (dbTable *)
dbTabletable (unsigned int) const
dbTabletable (const char *)
unsigned int numTables () const
bool isOpen () const
bool inDeclarativePhase () const
 Connection has been declared but not opened or created.

virtual void describe (std::ostream &) const
 Provide human-readable information about object.

virtual void writeOOFSchema ()
virtual void readOOFSchema (const oofString &schemaFileName)
 Reads & parses oofSchema from the file schemaFileName.

virtual void stats (std::ostream &)
void dumpData (std::ostream &)
void extract (std::ostream &os)
void copyAllFrom (dbConnect *)
void deleteAll ()
void generateTestData (unsigned long maxRecs=10000, bool generateRandom=true, unsigned long seedOrCount=0)
void schemaFileExt (const oofString &)
void suspendSorting () const
void resumeSorting () const
oofWordParsergetDefaultWordParser ()
void setDefaultWordParser (oofWordParser *inParser)
bool hidden () const
void hide (bool hideIt=true)

Static Public Member Functions

dbConnectcurrentlyConstructing ()
bool fileExists (const char *fName)
bool underConstruction ()
void raise (std::ostream &, bool terminateAfterMsg=true)
void raise (const char *, bool terminateAfterMsg=true)
void truncateTrailingSpaces (bool willTruncate=true)
bool willTruncateTrailingSpaces ()

Protected Types

enum  connectionFileStateT {
  eIdle = 0, eStart = 1, eOpenedFile = 2, eCreatedFile = 4,
  eInvalidlyOpenInCreation = 8, eInvalidlyCreationInOpen = 16
}

Protected Member Functions

void MakeAllTablesValid () const
 Final step in construction, can use tables against database after this.

void InitOpenOrCreateState ()
void OpenOrCreateStateTransition (bool inOpenedOrCreated)
 Manage state transitions for FinishOpenOrCreateConnection.

virtual void WriteOOFSchemaFile ()
 Write the oofschema out to the schema file.

virtual oofString MakeSchemaFileName ()
 produce a file name for schema file.

oofString MakeOOFSchemaString ()
 Produce a string containing the oofschema with the length of the schema string aphended to the end.


Protected Attributes

OOF_Dictionary mTables
oofString mConnectionName
oofString mSchemaFileName
bool mOpen
bool mTempDatabase
bool mInDeclarativePhase
oofWordParsermDefaultPrototypeParser
oofDirectorymDatabaseDir
connectionFileStateT mFileState
bool mHidden

Static Protected Attributes

dbConnectsCurrentlyConstructing
 this static gets zeroed in dbTable::postCloneTableCleanup() this is how we avoid passing dbTable pointers around all the time when creating fields particularly in user constructors when it would clutter things up a LOT!

bool sTruncateTrailingSpaces = false
oofString sSchemaFileExt = "osc"


Member Enumeration Documentation

enum dbConnect::connectionFileStateT [protected, inherited]
 

Enumeration values:
eIdle 
eStart 
eOpenedFile 
eCreatedFile 
eInvalidlyOpenInCreation 
eInvalidlyCreationInOpen 


Constructor & Destructor Documentation

dbConnect_dbase::dbConnect_dbase bool  isTemporary = false  ) 
 

dbConnect_dbase::~dbConnect_dbase  )  [virtual]
 


Member Function Documentation

void dbConnect::attachTable dbTable  )  [inherited]
 

void dbConnect_dbase::close  )  [virtual]
 

Implements dbConnect.

const oofString & dbConnect::connectionName  )  const [inline, inherited]
 

void dbConnect::copyAllFrom dbConnect  )  [inherited]
 

dbConnect * dbConnect::currentlyConstructing  )  [inline, static, inherited]
 

oofDirectory * dbConnect::databaseDirectory  )  const [inline, inherited]
 

void dbConnect::deleteAll  )  [inherited]
 

void dbConnect::deleteStorage  )  [virtual, inherited]
 

Reimplemented in dbConnect_ctree, dbConnect_FServ, and dbConnect_ramp.

void dbConnect::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.

void dbConnect::dumpData std::ostream &   )  [inherited]
 

virtual void dbConnect_dbase::enterReadLocking  )  [inline, virtual]
 

Implements dbConnect.

virtual void dbConnect_dbase::enterWriteLocking  )  [inline, virtual]
 

Implements dbConnect.

virtual void dbConnect_dbase::exitLocking  )  [inline, virtual]
 

Implements dbConnect.

void dbConnect::extract std::ostream &  os  )  [inline, inherited]
 

bool dbConnect::fileExists const char *  fName  )  [static, inherited]
 

void dbConnect::generateTestData unsigned long  maxRecs = 10000,
bool  generateRandom = true,
unsigned long  seedOrCount = 0
[inherited]
 

oofWordParser * dbConnect::getDefaultWordParser  )  [inherited]
 

void dbConnect::gotoDatabaseDir  )  const [inherited]
 

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

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

bool dbConnect::inDeclarativePhase  )  const [inline, inherited]
 

Connection has been declared but not opened or created.

Only one connection at a time can be in this state.

Todo:
cope if declare 2nd connections before opening either, which is legal.

void dbConnect::InitOpenOrCreateState  )  [protected, inherited]
 

bool dbConnect::isOpen  )  const [inline, inherited]
 

void dbConnect::MakeAllTablesValid  )  const [protected, inherited]
 

Final step in construction, can use tables against database after this.

Note:
resets dbTable::sCurrentlyConstructing to detect fields declared outside tables

oofString dbConnect::MakeOOFSchemaString  )  [protected, inherited]
 

Produce a string containing the oofschema with the length of the schema string aphended to the end.

The length is used as an offset in dbConnect_rampBackend to find the schema beginning

oofString dbConnect::MakeSchemaFileName  )  [protected, virtual, inherited]
 

produce a file name for schema file.

If a file name exists for the data base use it with the extension sSchemaFileExt (default "osc") else use the connection name with sSchemaFileExt appended.

Todo:
rewrite

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

Reimplemented from OOF_PublicBase.

void dbConnect_dbase::newConnection const FSSpec &   )  [virtual]
 

Implements dbConnect.

void dbConnect_dbase::newConnection const char *   )  [virtual]
 

Implements dbConnect.

unsigned int dbConnect::numTables  )  const [inline, inherited]
 

void dbConnect_dbase::openConnection const FSSpec &   )  [virtual]
 

Implements dbConnect.

void dbConnect_dbase::openConnection const char *   )  [virtual]
 

Implements dbConnect.

bool dbConnect_dbase::openOrCreateConnection const char *  connectionName  )  [virtual]
 

void dbConnect::OpenOrCreateStateTransition bool  inOpenedVSCreated  )  [protected, inherited]
 

Manage state transitions for FinishOpenOrCreateConnection.

Parameters:
inOpenedVSCreated is true if just created file, false if opened

void dbConnect::raise const char *  ,
bool  terminateAfterMsg = true
[static, inherited]
 

void dbConnect::raise std::ostream &  ,
bool  terminateAfterMsg = true
[static, inherited]
 

void dbConnect::readOOFSchema const oofString schemaFileName  )  [virtual, inherited]
 

Reads & parses oofSchema from the file schemaFileName.

Populates the dbConnect::sCurrentlyConstructing connection with extra tables.

Todo:
make a version that takes oofFileRef

void dbConnect::resumeSorting  )  const [inherited]
 

void dbConnect::schemaFileExt const oofString  )  [inherited]
 

void dbConnect::setDefaultWordParser oofWordParser inParser  )  [inherited]
 

void dbConnect::stats std::ostream &   )  [virtual, inherited]
 

void dbConnect::suspendSorting  )  const [inherited]
 

dbTable * dbConnect::table const char *   )  [inherited]
 

dbTable * dbConnect::table unsigned  int  )  const [inherited]
 

void dbConnect::truncateTrailingSpaces bool  willTruncate = true  )  [inline, static, inherited]
 

bool dbConnect::underConstruction  )  [inline, static, inherited]
 

void dbConnect_dbase::useDbase3Memos  ) 
 

bool dbConnect_dbase::usesSeparateStorageFiles  )  const [virtual]
 

Reimplemented from dbConnect.

bool dbConnect::willTruncateTrailingSpaces  )  [inline, static, inherited]
 

void dbConnect::writeOOFSchema  )  [virtual, inherited]
 

Reimplemented in dbConnect_ctree, dbConnect_ram, and dbConnect_ramp.

void dbConnect::WriteOOFSchemaFile  )  [protected, virtual, inherited]
 

Write the oofschema out to the schema file.

Note:
temporarily changes current directory whilst writing file.


Member Data Documentation

oofString dbConnect::mConnectionName [protected, inherited]
 

oofDirectory* dbConnect::mDatabaseDir [protected, inherited]
 

oofWordParser* dbConnect::mDefaultPrototypeParser [protected, inherited]
 

connectionFileStateT dbConnect::mFileState [protected, inherited]
 

bool OOF_PublicBase::mHidden [protected, inherited]
 

bool dbConnect::mInDeclarativePhase [protected, inherited]
 

bool dbConnect::mOpen [protected, inherited]
 

oofString dbConnect::mSchemaFileName [protected, inherited]
 

OOF_Dictionary dbConnect::mTables [protected, inherited]
 

bool dbConnect::mTempDatabase [protected, inherited]
 

dbConnect * dbConnect::sCurrentlyConstructing [static, protected, inherited]
 

this static gets zeroed in dbTable::postCloneTableCleanup() this is how we avoid passing dbTable pointers around all the time when creating fields particularly in user constructors when it would clutter things up a LOT!

Warning:
this is NOT thread-safe - do not construct tables in simultaneous threads

oofString dbConnect::sSchemaFileExt = "osc" [static, protected, inherited]
 

bool dbConnect::sTruncateTrailingSpaces = false [static, protected, inherited]
 


The documentation for this class was generated from the following files:
Generated on Fri Jan 2 00:50:18 2004 for OOFILE by doxygen 1.3.5