diff options
Diffstat (limited to 'src/include/xbfile.h')
-rwxr-xr-x | src/include/xbfile.h | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/src/include/xbfile.h b/src/include/xbfile.h deleted file mode 100755 index af04e98..0000000 --- a/src/include/xbfile.h +++ /dev/null @@ -1,197 +0,0 @@ -/* xbfile.h - -XBase64 Software Library - -Copyright (c) 1997,2003,2014,2022 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 - -*/ - -#ifndef __XB_FILE_H__ -#define __XB_FILE_H__ - -#ifdef CMAKE_COMPILER_IS_GNUCC -#pragma interface -#endif - -/*****************************/ -/* File Open Modes */ -#define XB_READ 0 -#define XB_READ_WRITE 1 -#define XB_WRITE 2 - -/*****************************/ -/* File Access Modes */ -#define XB_SINGLE_USER 0 // file buffering on -#define XB_MULTI_USER 1 // file buffering off - -namespace xb{ - -/*! @brief Class for handling low level file I/O. -*/ - -/*! -The xbFile class is used as an abstraction layer to isolate the library from the nuances -of different operating systems and machine architectures. - -This module handles low level file I/O and is a base class -for the (dbf) table, (dbt) memo and (ndx,mdx) index classes. -Files are opened and manipulated via methods in the xbFile class.<br> -This class handles:<br> -1) Big and little endian reads/writes<br> -2) 32 or 64 bit system calls, depending on OS<br> -3) Various different c/c++ calls to open/close/read/write based on OS and compiler version<br> -<br> -If you are wanting to port this library to a new platform, start with this class. -This class could be used if you want to write a platform independent program that needs R/W file access. -*/ - - -class XBDLLEXPORT xbFile : public xbSsv { - - public: - // xbFile(); - xbFile( xbXBase * x ); - - ~xbFile(); - - xbInt16 SetHomeFolders(); - - xbInt16 CreateUniqueFileName( const xbString &sDirIn, const xbString &sExtIn, xbString &sFqnOut ); - xbInt16 CreateUniqueFileName( const xbString &sDirIn, const xbString &sExtIn, xbString &sFqnOut, xbInt16 iOption ); - - const xbString& GetDirectory() const; - const xbString& GetFileName() const; - const xbString& GetFqFileName() const; - - void SetDirectory ( const xbString &sDirectory); - void SetFileName ( const xbString &sFileName ); - void SetFqFileName( const xbString &sFqName ); - - xbUInt32 GetBlockSize () const; - xbInt16 SetBlockSize ( xbUInt32 ulBlockSize ); - - xbInt16 GetOpenMode () const; - xbInt16 GetShareMode () const; - - xbInt16 GetFileDirPart ( xbString &sFileDirPartOut ) const; - xbInt16 GetFileDirPart ( const xbString &sCompleteFileNameIn, xbString &sFileDirPartOut ) const; - xbInt16 GetFileExtPart ( xbString &sFileExtPartOut ) const; - xbInt16 GetFileExtPart ( const xbString &sCompleteFileNameIn, xbString &sFileExtPartOut ) const; - xbInt16 GetFileNamePart( xbString &sFileNamePartOut ) const; - xbInt16 GetFileNamePart( const xbString &sCompleteFileNameIn, xbString &sFileNamePartOut ) const; - xbInt16 GetFileType ( xbString &sFileType ) const; - - xbInt16 GetXbaseFileTypeByte( const xbString &sFileName, xbInt16 &iVersion ); - xbInt16 GetXbaseFileTypeByte( const xbString &sFileName, unsigned char &cFileTypeByte ); - xbInt16 GetXbaseFileTypeByte( const xbString &sFileName, unsigned char &cFileTypeByte, xbInt16 &iVersion ); - xbInt16 DetermineXbaseTableVersion( unsigned char cFileTypeByte ) const; - xbInt16 DetermineXbaseMemoVersion( unsigned char cFileTypeByte ) const; - - xbBool FileExists () const; - xbBool FileExists ( xbInt16 iOption ) const; - xbBool FileExists ( const xbString &sFileName ) const; - xbBool FileExists ( const xbString &sFileName, xbInt16 iOption ) const; - - xbBool FileIsOpen () const; - - xbInt16 ReadBlock ( xbUInt32 ulBlockNo, size_t readSize, void *buf ); - xbInt16 ReadBlock ( xbUInt32 ulBlockNo, xbUInt32 ulBlockSize, size_t readSize, void *buf ); - xbInt16 WriteBlock( xbUInt32 ulBlockNo, size_t writeSize, void *buf ); - - xbInt16 GetFileSize( xbUInt64 &ullFileSize ); - xbInt16 GetFileMtime( time_t &mtime ); - - xbDouble eGetDouble( const char *p ) const; - xbInt32 eGetInt32 ( const char *p ) const; - xbUInt32 eGetUInt32( const char *p ) const; - xbInt16 eGetInt16 ( const char *p ) const; - xbUInt16 eGetUInt16( const char *p ) const; - void ePutDouble( char *p, xbDouble d ); - void ePutInt32 ( char *p, xbInt32 l ); - void ePutUInt32( char *p, xbUInt32 ul ); - void ePutInt16 ( char *p, xbInt16 s ); - void ePutUInt16( char *p, xbUInt16 s ); - - xbInt16 xbFclose (); - xbInt16 xbFeof (); - xbInt16 xbFflush (); - xbInt16 xbFgetc ( xbInt32 &c ); - xbInt16 xbFgetc ( char &c ); - - #ifdef XB_LOCKING_SUPPORT - xbInt16 xbLock ( xbInt16 iFunction, xbInt64 llOffset, size_t stLen ); - xbInt16 GetLockRetryCount() const; - void SetLockRetryCount( xbInt16 iLockRetries ); - #endif - - xbInt16 xbFopen ( xbInt16 iOpenMode ); - xbInt16 xbFopen ( const xbString &sOpenMode, xbInt16 iShareMode ); - xbInt16 xbFopen ( xbInt16 iOpenMode, xbInt16 iShareMode ); - xbInt16 xbFopen ( const xbString &sMode, const xbString &sFileName, xbInt16 iShareMode ); - - xbInt16 xbFputc ( xbInt32 c ); - xbInt16 xbFputc ( xbInt32 c, xbInt32 iNoTimes ); - xbInt16 xbFputs ( const xbString &s ); - xbInt16 xbFread ( void *ptr, size_t size, size_t nmemb ); - xbInt16 xbFgets ( size_t lSize, xbString &sLine ); - - size_t xbFtell (); - xbInt16 xbFseek ( xbInt64 llOffset, xbInt32 whence ); - - void xbFTurnOffFileBuffering(); - xbInt16 xbFwrite ( const void *ptr, size_t lSize, size_t lNmemb ); - - xbInt16 xbReadUntil ( const char cDelim, xbString &sOut ); - xbInt16 xbRemove ( const xbString &sFileName, xbInt16 iOption ); - xbInt16 xbRemove ( const xbString &sFileName ); - xbInt16 xbRemove (); - - xbInt16 xbRename ( const xbString &sOldName, const xbString &sNewName ); - void xbRewind (); - - xbInt16 xbTruncate ( xbInt64 llSize ); - xbInt16 NameSuffixMissing( const xbString &sFileName, xbInt16 iOption ) const; - - #ifdef XB_DEBUG_SUPPORT - xbInt16 DumpBlockToDisk( xbUInt32 ulBlockNo, size_t lBlockSize ); - xbInt16 DumpMemToDisk ( char *p, size_t lBlockSize ); - #endif - - - protected: - - xbXBase *xbase; /* pointer to the main structures */ - - private: - FILE *fp; - xbString sFqFileName; /* fully qualified file name */ - xbString sFileName; /* file name */ - xbString sDirectory; /* directory, ends with / or \ */ - xbBool bFileOpen; /* true if file is open */ - xbUInt32 ulBlockSize; /* used for memo and index files */ - - xbInt16 iOpenMode; /* XB_READ || XB_READ_WRITE || XB_WRITE */ - xbInt16 iShareMode; /* XB_SINGLE_USER || XB_MULTI_USER - set file buffering */ - xbInt32 iFileNo; /* Library File No */ - - #ifdef XB_LOCKING_SUPPORT - xbInt16 iLockRetries; /* file override number of lock attempts */ - #endif - - #ifdef HAVE_SETENDOFFILE_F - HANDLE fHandle; - #endif - - -}; - -} /* namespace */ -#endif /* __XBFILE_H__ */ - |