OWLNext 7.0
Borland's Object Windows Library for the modern age
|
The TFile class encapsulates standard file characteristics and operations. More...
#include <owl/file.h>
Public Types | |
enum | TSeekDir { beg = 0 , cur = 1 , end = 2 } |
enum | TOpenMode { ReadOnly = 0x0001 , WriteOnly = 0x0002 , ReadWrite = WriteOnly|ReadOnly , PermWrite = 0x0010 , PermRead = 0x0020 , PermReadWrite = PermWrite|PermRead , PermExclusive = 0x0040 , PermNone = 0x0080 , CreateNew = 0x0100 , CreateAlways = 0x0200 , OpenExisting = 0x0400 , TruncateExist = 0x0800 , Text = 0x1000 } |
Open mode -> remapped into OS specific value internally. More... | |
enum | TAttribute { Normal = 0x00 , RdOnly = 0x01 , Hidden = 0x02 , System = 0x04 , Volume = 0x08 , Directory = 0x10 , Archive = 0x20 , Temporary = 0x40 } |
file attributes -> internally remapped into OS values More... | |
enum | TBinType { TypeChar , TypeShort , TypeLong , TypeFloat , TypeDouble , TypeLong64 , TypePoint , TypeRect } |
Binary data type enumerations. More... | |
Public Member Functions | |
TFile () | |
Creates a TFile object with a file handle of FileNull. | |
TFile (const tstring &fileName, const uint32 mode=ReadOnly|PermRead|OpenExisting) | |
Creates a TFile object and opens file name with the given attributes. | |
TFile (TFileHandle *handle, bool shouldClose) | |
Creates a TFile object with a file handle of handle. | |
TFile (const TFile &file) | |
virtual | ~TFile () |
If ShouldClose is true the file is closed. | |
virtual TFileHandle * | GetHandle () const |
Returns Handle. | |
const tstring | GetName () const |
Returns Name. | |
virtual bool | Open (const tstring &fileName, const uint32 mode=ReadOnly|PermRead|OpenExisting) |
Opens file name with the given mode. | |
virtual bool | Close () |
Closes the file. Returns true if successful, false otherwise. | |
virtual bool | Length (uint64 newLen) |
Resizes file to newLen. | |
virtual uint64 | Position64 () const |
32 Bit Only: Returns the current position of the file pointer. | |
virtual uint64 | Length64 () const |
Returns the file length. | |
virtual bool | Length (uint32 newLen) |
Resizes file to newLen. | |
virtual uint32 | Position () const |
Returns the current position of the file pointer. | |
virtual uint32 | Length () const |
Returns the file length. | |
virtual uint64 | Seek (int64 offset, TSeekDir origin=beg) |
Repositions the file pointer to offset bytes from the specified origin. | |
virtual uint32 | Seek (long offset, TSeekDir origin=beg) |
Repositions the file pointer to offset bytes from the specified origin. | |
uint64 | SeekToBegin64 () |
Repositions the file pointer to the beginning of the file. | |
uint64 | SeekToEnd64 () |
Repositions the file pointer to the end of the file. | |
uint32 | SeekToBegin () |
Repositions the file pointer to the beginning of the file. | |
uint32 | SeekToEnd () |
Repositions the file pointer to the end of the file. | |
bool | IsOpen () const |
Returns true if the file is open, false otherwise. | |
uint32 | GetOpenMode () const |
Returns OpenMode. | |
uint32 | LastError () |
Returns the last error. | |
virtual uint32 | Read (void *buffer, uint32 numBytes) |
Reads numBytes from the file into buffer. The number of bytes read is returned. | |
virtual bool | Write (const void *buffer, uint32 numBytes) |
Writes numbytes of buffer to the file. | |
virtual bool | Flush () |
Performs any pending I/O functions. Returns true if successful; false otherwise. | |
uint | ReadStruct (void *buffer, TBinType btype, TByteOrderType type) |
Read binary predefined structure from file. | |
uint | ReadStruct (void *buffer, TBinField *fields, TByteOrderType type) |
Read binary structure from file. | |
uint | WriteStruct (void *buffer, TBinType btype, TByteOrderType type) |
Writes predefined structures to binary file. | |
uint | WriteStruct (void *buffer, TBinField *fields, TByteOrderType type) |
Writes structures to binary file based on fields description. | |
virtual bool | LockRange (uint32 position, uint32 count) |
Locks count bytes, beginning at position of the file. | |
virtual bool | UnlockRange (uint32 position, uint32 count) |
Unlocks the range at the given Position. | |
virtual bool | LockRange (uint64 position, uint64 count) |
Locks count bytes, beginning at position of the file. | |
virtual bool | UnlockRange (uint64 position, uint64 count) |
32 Bit Only: Unlocks the range at the given Position. | |
bool | GetStatus (TFileStatus &status) const |
Fills status with the current file status. | |
virtual uint8 | readUint8 () |
virtual uint16 | readUint16 () |
virtual uint32 | readUint32 () |
virtual uint64 | readUint64 () |
virtual float | readFloat () |
virtual double | readDouble () |
virtual TCHAR * | readString (tchar *) |
virtual void | writeUint8 (const uint8) |
virtual void | writeUint16 (const uint16) |
virtual void | writeUint32 (const uint32) |
virtual void | writeUint64 (const uint64) |
virtual void | writeFloat (const float) |
virtual void | writeDouble (const double) |
virtual void | writeString (const tchar *) |
Static Public Member Functions | |
static uint | ReadStruct (uint8 *readBuf, void *buffer, TBinField *fields, TByteOrderType type) |
Read binary structure from buffer. | |
static uint | WriteStruct (uint8 *writeBuf, void *buffer, TBinField *fields, TByteOrderType type) |
Writes structures to buffer based on fields description. | |
static uint | StructSize (TBinField *fields) |
Returns the number of bytes in a binary data structure. | |
Protected Attributes | |
TFileHandle * | Handle |
Low-level C file handle. | |
bool | ShouldClose |
Should C++ object close file on dtor. | |
uint8 * | Buffer |
Buffer used with structure read/write. | |
uint | BufSize |
Size of Buffer used with structure read/write. | |
The TFile class encapsulates standard file characteristics and operations.
Open mode -> remapped into OS specific value internally.
|
inline |
|
inline |
|
inline |
owl::TFile::TFile | ( | const TFile & | file | ) |
Definition at line 411 of file file.cpp.
References CHECK, Close(), FileNull, Handle, owl::TXNotSupportedCall::Raise(), and ShouldClose.
|
virtual |
|
virtual |
Closes the file. Returns true if successful, false otherwise.
Reimplemented in owl::TBufferedFile.
Definition at line 445 of file file.cpp.
References owl::TFileHandle::Close(), FileNull, Handle, IsOpen(), and ShouldClose.
|
virtual |
Performs any pending I/O functions. Returns true if successful; false otherwise.
Reimplemented in owl::TBufferedFile.
Definition at line 460 of file file.cpp.
References owl::TFileHandle::Flush(), Handle, and PRECONDITION.
|
inlinevirtual |
|
inline |
Returns Name.
Definition at line 748 of file file.h.
References owl::TFileHandle::GetName(), Handle, and PRECONDITION.
|
inline |
Returns OpenMode.
Definition at line 760 of file file.h.
References owl::TFileHandle::GetOpenMode(), Handle, and PRECONDITION.
|
inline |
Fills status with the current file status.
Returns true if successful, false otherwise.
Definition at line 899 of file file.h.
References owl::TFileHandle::GetStatus(), Handle, and PRECONDITION.
|
inline |
|
inline |
Returns the last error.
Under Windows 9x/NT this is a call to GetLastError().
Definition at line 798 of file file.h.
References Handle, owl::TFileHandle::LastError(), and PRECONDITION.
|
inlinevirtual |
Returns the file length.
Reimplemented in owl::TBufferedFile.
Definition at line 828 of file file.h.
References Handle, owl::TFileHandle::Length(), and PRECONDITION.
Resizes file to newLen.
Returns true if successful, false otherwise. The file must first be opened for success.
Reimplemented in owl::TBufferedFile.
Definition at line 836 of file file.h.
References Handle, owl::TFileHandle::Length(), and PRECONDITION.
Resizes file to newLen.
Returns true if successful, false otherwise. The file must first be opened for success.
Reimplemented in owl::TBufferedFile.
Definition at line 853 of file file.h.
References Handle, owl::TFileHandle::Length(), and PRECONDITION.
|
inlinevirtual |
Returns the file length.
Reimplemented in owl::TBufferedFile.
Definition at line 867 of file file.h.
References Handle, owl::TFileHandle::Length64(), and PRECONDITION.
Locks count bytes, beginning at position of the file.
Returns true if successful; false otherwise.
Definition at line 469 of file file.cpp.
References Handle, owl::TFileHandle::LockRange(), and PRECONDITION.
Locks count bytes, beginning at position of the file.
Returns true if successful; false otherwise.
Definition at line 883 of file file.h.
References Handle, owl::TFileHandle::LockRange(), and PRECONDITION.
|
virtual |
Opens file name with the given mode.
Returns true if successful, false otherwise. Calling Open when the file is already open will fail.
Reimplemented in owl::TStreamFile.
Definition at line 429 of file file.cpp.
References FileNull, Handle, IsOpen(), owl::TFileHandle::IsOpen(), and ShouldClose.
|
inlinevirtual |
Returns the current position of the file pointer.
Returns TFILE_ERROR to indicate an error. To get extended error information, call LastError.
Reimplemented in owl::TBufferedFile.
Definition at line 821 of file file.h.
References Handle, owl::TFileHandle::Position(), and PRECONDITION.
|
inlinevirtual |
32 Bit Only: Returns the current position of the file pointer.
Returns TFILE64_ERROR to indicate an error. To get extended error information, call LastError.
Reimplemented in owl::TBufferedFile.
Definition at line 861 of file file.h.
References Handle, owl::TFileHandle::Position64(), and PRECONDITION.
Reads numBytes from the file into buffer. The number of bytes read is returned.
Reimplemented in owl::TBufferedFile.
Definition at line 805 of file file.h.
References Handle, PRECONDITION, and owl::TFileHandle::Read().
|
virtual |
Reimplemented in owl::TTextFile.
Definition at line 997 of file file.cpp.
References owl::boLittle_Endian, ReadStruct(), and TypeDouble.
|
virtual |
Reimplemented in owl::TTextFile.
Definition at line 988 of file file.cpp.
References owl::boLittle_Endian, ReadStruct(), and TypeFloat.
Reimplemented in owl::TTextFile.
Definition at line 906 of file file.h.
References Read(), and TFILE_ERROR.
|
static |
Read binary structure from buffer.
Returns # of bytes read
Definition at line 775 of file file.cpp.
References BINCHECKNBYTES, BINCHECKRTYPE, owl::boBig_Endian, owl::EndianType(), and StructSize().
uint owl::TFile::ReadStruct | ( | void * | buffer, |
TBinField * | fields, | ||
TByteOrderType | type ) |
Read binary structure from file.
Returns # of bytes read
Definition at line 667 of file file.cpp.
References BINCHECKNBYTES, BINCHECKRTYPE, owl::boBig_Endian, Buffer, BufSize, owl::EndianType(), Read(), and StructSize().
uint owl::TFile::ReadStruct | ( | void * | buffer, |
TBinType | btype, | ||
TByteOrderType | type ) |
Read binary predefined structure from file.
Returns # of bytes read
Definition at line 908 of file file.cpp.
References ReadStruct().
|
virtual |
Reimplemented in owl::TTextFile.
Definition at line 962 of file file.cpp.
References owl::boLittle_Endian, ReadStruct(), and TypeShort.
|
virtual |
Reimplemented in owl::TTextFile.
Definition at line 972 of file file.cpp.
References owl::boLittle_Endian, ReadStruct(), and TypeLong.
|
virtual |
Reimplemented in owl::TTextFile.
Definition at line 980 of file file.cpp.
References owl::boLittle_Endian, ReadStruct(), and TypeLong64.
|
virtual |
Repositions the file pointer to offset bytes from the specified origin.
Returns the position moved to or TFILE64_ERROR on error. To get extended error information, call LastError.
Reimplemented in owl::TBufferedFile.
Definition at line 875 of file file.h.
References Handle, PRECONDITION, and owl::TFileHandle::Seek().
Repositions the file pointer to offset bytes from the specified origin.
Returns the position moved to or TFILE_ERROR on error. To get extended error information, call LastError.
Reimplemented in owl::TBufferedFile.
Definition at line 845 of file file.h.
References Handle, PRECONDITION, and owl::TFileHandle::Seek().
|
inline |
|
inline |
|
inline |
|
inline |
Unlocks the range at the given Position.
Returns true if successful; false otherwise.
Definition at line 477 of file file.cpp.
References Handle, PRECONDITION, and owl::TFileHandle::UnlockRange().
32 Bit Only: Unlocks the range at the given Position.
Returns true if successful; false otherwise.
Definition at line 891 of file file.h.
References Handle, PRECONDITION, and owl::TFileHandle::UnlockRange().
Writes numbytes of buffer to the file.
Returns true if the operation is successful; false otherwise.
Reimplemented in owl::TBufferedFile.
Definition at line 813 of file file.h.
References Handle, PRECONDITION, and owl::TFileHandle::Write().
Reimplemented in owl::TTextFile.
Definition at line 1039 of file file.cpp.
References owl::boLittle_Endian, TypeDouble, and WriteStruct().
Reimplemented in owl::TTextFile.
Definition at line 1032 of file file.cpp.
References owl::boLittle_Endian, TypeFloat, and WriteStruct().
Reimplemented in owl::TTextFile.
|
static |
Writes structures to buffer based on fields description.
Returns # of bytes written
Definition at line 820 of file file.cpp.
References BINCHECKNBYTES, BINCHECKRTYPE, owl::boBig_Endian, owl::EndianType(), and StructSize().
uint owl::TFile::WriteStruct | ( | void * | buffer, |
TBinField * | fields, | ||
TByteOrderType | type ) |
Writes structures to binary file based on fields description.
Returns # of bytes written
Definition at line 723 of file file.cpp.
References BINCHECKNBYTES, BINCHECKRTYPE, owl::boBig_Endian, Buffer, BufSize, owl::EndianType(), StructSize(), and Write().
uint owl::TFile::WriteStruct | ( | void * | buffer, |
TBinType | btype, | ||
TByteOrderType | type ) |
Writes predefined structures to binary file.
Definition at line 914 of file file.cpp.
References WriteStruct().
Reimplemented in owl::TTextFile.
Definition at line 1011 of file file.cpp.
References owl::boLittle_Endian, TypeShort, and WriteStruct().
Reimplemented in owl::TTextFile.
Definition at line 1018 of file file.cpp.
References owl::boLittle_Endian, TypeLong, and WriteStruct().
Reimplemented in owl::TTextFile.
Definition at line 1025 of file file.cpp.
References owl::boLittle_Endian, TypeLong64, and WriteStruct().
|
protected |
|
protected |
|
protected |
|
protected |