Class xbSsv

Chapter Updated 04/13/28


Class xbSsv - Shared System Values.

Base class xbSsv is used for maintaining static variables used system wide by the XBase library routines and is a base class that is used by the xbXBase class. See the diagram in chapter 15 to gain an understanding of where the xbSsv class sits in relation to the other classes. Accessing the methods in this class are done via the xbXBase class instance.

Additionally, there are a few other misc routines contained in this class that are available to all subordinate classes/objects.



MethodDescription
void BitDump( unsigned char c ) const
void BitDump( char c ) const
These routines dump the bits for a specified char field to stdout.
xbBool BitSet( unsigned char c, xbInt16 iBitNo ) constThis routine will set a specified bit in a char field.
void DisplayError( xbInt16 ErrorCode ) constThis routine prints a description for a specifed error to stdout.
xbString& GetDataDirectory() const
void SetDataDirectory( const xbString &sDataDirectory )
Get and Set the current directory where the library routines expect to find the .DBF, .DBT, .NDX and .MDX files.
xbString& GetDefaultDateFormat() const
void SetDefaultDateFormat( const xbString &sDefaultDateFormat )
Get and Set the current default date format used by the date formatting routines if no format specifier is provided.
xbInt16 GetEndianType() constReturns the current Endian type of the machine the library is operating on.
const char *GetErrorMessage( xbInt16 ErrorCode ) constReturns a pointer to an error message for a given error number.
xbBool GetDefaultAutoCommit() const
void SetDefaultAutoCommit( xbBool bDefaultAutoCommit )
Get and Set the default auto commit status. If auto commit is on, the library will automatically post any updates to the database when navigating away from an updated record.
xbBool GetHomeDir( xbString &sHomeDirOut )Get the home directory for the current user.
xbString& GetLogDirectory() const
void SetLogDirectory( const xbString &sLogDirectory )
Get and set the directory location for any system generated logfiles.
xbString& GetLogFileName() const
void SetLogFileName( const xbString &sLogFileName )
Returns the default log file name.
xbBool GetMultiUser() const
void SetMultiUser( xbBool bMultiUser )
Get and set multi user status. This turns auto locking on and off. For better performance in single user applications, turn multuser off.
char GetPathSeparator() const Get the path separator value for the current environment. Returns either \ (for Windows environment) or / (for Unix environment).
xbString& GetTempDirectory() const
void SetTempDirectory( const xbString &sTempDirectory )
Get and set the temp folder.
xbInt16 GetUniqueKeyOpt() const
xbInt16 SetUniqueKeyOpt( xbInt16 iUniqueKeyOpt )
Determines library behavior for unique key processing. The original Dbase (tm) product allowed duplicate recrds in the .DBF file when the unique option was specified for a given index tag. The Xbase library supports either the original DBase behavior (XB_EMULATE_DBASE), or the prevention of duplicate records for duplicate keys (XB_HALT_ON_DUPKEY).
xbInt16 GetDefaultLockRetries() const
void SetDefaultLockRetries( xbInt16 iRetryCount )
Get and Set the number of times to attempt a lock
xbInt32 GetDefaultLockWait() const
void SetDefaultLockWait( xbInt32 lRetryWait )
Get and Set the wait time between lock attempts.
xbInt16 GetDefaultLockFlavor() const
void SetDefaultLockFlavor( xbInt16 iLockFlavor )
For future use. With current versions, only DBase (TM) locking offsets are supported.
xbBool GetDefaultAutoLock() const
void SetDefaultAutoLock( xbBool bAutoLock )
void EnableDefaultAutoLock()
void DisableDefaultAutoLock()
Set, Get or update Auto Lock Status
xbInt16 GetCreateMdxBlockSize() const
xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize )
Set or get MDX Index block size. Must be a multiple of 512.
xbUInt32 GetDefaultBlockReadSize() const
void SetDefaultBlockReadSize( xbUInt32 ulDfltBlockReadSize )
Set or Get the default block size for Block Read functionality. Block reading is used to improve sequentential access performance.


Example program using xbSsv methods

/* xb_ex_ssv.cpp XBase64 Software Library Copyright (c) 1997,2003,2014,2021,2022,2023 Gary A Kunkel The xb64 software library is covered under the terms of the GPL Version 3, 2007 license. Email Contact: XDB-devel@lists.sourceforge.net XDB-users@lists.sourceforge.net This program demonstrates using functionality of the xbSsv class (Shared system values) */ #include "xbase.h" using namespace xb; int main( int ac, char ** av ){ xbXBase x; // set up xbase for business xbString sMsg; // a message string sMsg.Sprintf( "Program [%s] initializing...", av[0] ); std::cout << sMsg.Str() << std::endl; // example code to set up log file usage #ifdef XB_LOGGING_SUPPORT char cSeperator; // is this a unix (/) or windows (\) file system xbString sLog; // general string for log file activities sLog = x.GetLogFqFileName().Str(); // get the system default log file name std::cout << "System default logfile is [" << sLog.Str() << "]" << std::endl; cSeperator = sLog.GetPathSeparator(); // get the seperator from std::cout << "Path seperator = [" << cSeperator << "]" << std::endl; sLog.Sprintf( "..%c", cSeperator ); x.SetLogDirectory( sLog ); std::cout << "sLog = [" << sLog.Str() << "]\n"; sLog = x.GetLogFqFileName().Str(); // get the system default log file name std::cout << "New logfile is [" << sLog.Str() << "]" << std::endl; // turn on logging after file name set x.EnableMsgLogging(); #endif // XB_LOGGING_SUPPORT // const char *GetErrorMessage( xbInt16 ErrorCode ) const; // void DisplayError( xbInt16 ErrorCode ) const; std::cout << "DisplayError( -100 ) - "; x.DisplayError( -100 ); // << "]" << std::endl; // void SetDefaultDateFormat( const xbString &sDefaultDateFormat ); // xbString& GetDefaultDateFormat() const; std::cout << "GetDefaultDateFormat() - " << x.GetDefaultDateFormat() << std::endl; // void SetDataDirectory ( const xbString &sDataDirectory ); // xbString& GetDataDirectory() const; std::cout << "GetDataDirectory() - " << x.GetDataDirectory() << std::endl; // xbInt16 GetEndianType() const; if( x.GetEndianType() == 'L' ) std::cout << "Little Endian Architecture." << std::endl; else std::cout << "Bid Endian Architecture." << std::endl; //xbBool GetDefaultAutoCommit() const; //void SetDefaultAutoCommit( xbBool bDefaultAutoCommit ); if( x.GetDefaultAutoCommit()) std::cout << "AutoCommit is on." << std::endl; else std::cout << "AutoCommit is off." << std::endl; //xbBool GetMultiUser () const; //void SetMultiUser ( xbBool bMultiUser ); if( x.GetMultiUser()) std::cout << "Multi user (locking) is enabled." << std::endl; else std::cout << "Multi user (locking) not enabled." << std::endl; #if defined (XB_NDX_SUPPORT) || defined (XB_MDX_SUPPORT) // xbInt16 GetUniqueKeyOpt () const; // xbInt16 SetUniqueKeyOpt ( xbInt16 iUniqueKeyOpt ); // XB_HALT_ON_DUPKEY // XB_EMULATE_DBASE if( x.GetUniqueKeyOpt() == XB_HALT_ON_DUPKEY ) std::cout << "UniqueKey option - XB_HALT_ON_DUPKEY" << std::endl; else if( x.GetUniqueKeyOpt() == XB_EMULATE_DBASE ) std::cout << "UniqueKey option - XB_EMULATE_DBASE" << std::endl; #endif // (XB_NDX_SUPPORT) || defined (XB_MDX_SUPPORT) #ifdef XB_LOCKING_SUPPORT //xbInt16 GetDefaultLockRetries () const; //void SetDefaultLockRetries ( xbInt16 iRetryCount ); //xbInt32 GetDefaultLockWait () const; //void SetDefaultLockWait ( xbInt32 lRetryWait ); //xbInt16 GetDefaultLockFlavor () const; //void SetDefaultLockFlavor ( xbInt16 iLockFlavor ); //xbBool GetDefaultAutoLock () const; //void SetDefaultAutoLock ( xbBool bAutoLock ); //void EnableDefaultAutoLock (); //void DisableDefaultAutoLock (); std::cout << "GetDefaultLockRetries() - " << x.GetDefaultLockRetries() << std::endl; std::cout << "GetDefaultLockWait() - " << x.GetDefaultLockWait() << std::endl; std::cout << "GetDefaultAutoLock() - " << x.GetDefaultAutoLock() << std::endl; #endif // XB_LOCKING_SUPPORT #ifdef XB_MDX_SUPPORT // xbInt16 GetCreateMdxBlockSize() const; // xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize ); std::cout << "GetCreateMdxBlockSize() - " << x.GetCreateMdxBlockSize() << std::endl; #endif // XB_MDX_SUPPORT #ifdef XB_BLOCKREAD_SUPPORT // xbUInt32 GetDefaultBlockReadSize() const; // void SetDefaultBlockReadSize( xbUInt32 ulDfltBlockReadSize ); std::cout << "GetDefaultBlockReadSize() - " << x.GetDefaultBlockReadSize() << std::endl; #endif // XB_BLOCKREAD_SUPPORT //xbBool BitSet ( unsigned char c, xbInt16 iBitNo ) const; //void BitDump ( unsigned char c ) const; //void BitDump ( char c ) const; std::cout << "BitDump( 'A' ) - "; x.BitDump( 'A' ); return 0; }