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

dbConnect_ram Class Reference
[OOFILE Database backend for simple streamable RAM databases.]

#include <oofram.h>

Inheritance diagram for dbConnect_ram:

Inheritance graph
[legend]
Collaboration diagram for dbConnect_ram:

Collaboration graph
[legend]
List of all members.

Detailed Description

Database backend for a single RAM-resident table.

See also:
dbConnect_ram


Public Member Functions

 dbConnect_ram (bool isTemporary=true)
virtual ~dbConnect_ram ()
virtual void newConnection (const char *connectionName=0)
virtual void openConnection (const char *connectionName=0)
virtual bool openOrCreateConnection (const char *connectionName=0)
virtual void writeOOFSchema ()
virtual void newConnection (const FSSpec &)
virtual void openConnection (const FSSpec &)
virtual void close ()
virtual void exitLocking ()
virtual void enterWriteLocking ()
virtual void enterReadLocking ()
virtual oofString name () const
virtual void deleteStorage ()
virtual bool usesSeparateStorageFiles () const
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 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

OOF_tableBackendjustMakeTableBackend (dbTable *)
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 SetupConnection (const OOF_String &connectionName)
virtual OOF_tableBackendMakeTableBackend (dbTable *)
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_ram::dbConnect_ram bool  isTemporary = true  ) 
 

dbConnect_ram::~dbConnect_ram  )  [virtual]
 


Member Function Documentation

void dbConnect::attachTable dbTable  )  [inherited]
 

void dbConnect_ram::close  )  [virtual]
 

Implements dbConnect.

Reimplemented in dbConnect_ramp.

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_ram::enterReadLocking  )  [inline, virtual]
 

Implements dbConnect.

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

Implements dbConnect.

virtual void dbConnect_ram::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]
 

OOF_tableBackend * dbConnect_ram::justMakeTableBackend dbTable  )  [static]
 

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

OOF_tableBackend * dbConnect_ram::MakeTableBackend dbTable  )  [protected, virtual]
 

Implements dbConnect.

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

Reimplemented from OOF_PublicBase.

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

Implements dbConnect.

Reimplemented in dbConnect_ramp.

void dbConnect_ram::newConnection const char *  connectionName = 0  )  [virtual]
 

Implements dbConnect.

Reimplemented in dbConnect_ramp.

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

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

Implements dbConnect.

Reimplemented in dbConnect_ramp.

void dbConnect_ram::openConnection const char *  connectionName = 0  )  [virtual]
 

Implements dbConnect.

Reimplemented in dbConnect_ramp.

bool dbConnect_ram::openOrCreateConnection const char *  connectionName = 0  )  [virtual]
 

Reimplemented in dbConnect_ramp.

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_ram::SetupConnection const OOF_String connectionName  )  [protected]
 

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]
 

bool dbConnect::usesSeparateStorageFiles  )  const [virtual, inherited]
 

Reimplemented in dbConnect_ctree, dbConnect_dbase, and dbConnect_FServ.

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

void dbConnect_ram::writeOOFSchema  )  [virtual]
 

Reimplemented from dbConnect.

Reimplemented in 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:29 2004 for OOFILE by doxygen 1.3.5