BazisLib::AIFile Class Reference

Represents a file or a file-like object. More...

#include <file.h>

Inherited by BazisLib::BasicFileBase.

List of all members.

Public Member Functions

virtual size_t Read (void *pBuffer, size_t size, ActionStatus *pStatus=NULL, bool IncompleteReadSupported=false)=0
 Reads data from the file (or stream).
virtual size_t Write (const void *pBuffer, size_t size, ActionStatus *pStatus=NULL)=0
virtual LONGLONG GetSize (ActionStatus *pStatus=NULL)=0
virtual LONGLONG Seek (LONGLONG Offset, FileFlags::SeekType seekType=FileFlags::FileBegin, ActionStatus *pStatus=NULL)=0
virtual LONGLONG GetPosition (ActionStatus *pStatus=NULL)=0
virtual void Close ()=0
virtual bool Valid ()=0
virtual ActionStatus Crop ()=0
 Sets the end of file to current position.
virtual SecurityDescriptor * GetFileSecurity (ActionStatus *pStatus=NULL)=0
virtual ActionStatus SetFileSecurity (SecurityDescriptor *pDescriptor)=0
virtual ActionStatus GetFileTimes (DateTime *pCreationTime, DateTime *pLastWriteTime, DateTime *pLastReadTime)=0
virtual ActionStatus SetFileTimes (const DateTime *pCreationTime, const DateTime *pLastWriteTime, const DateTime *pLastReadTime)=0
virtual bool AsynchronousIOSupported ()=0
virtual size_t ReadAt (void *pBuffer, ULONGLONG offset, size_t size, IoCompletion *pCompletion=NULL, ActionStatus *pStatus=NULL)=0
virtual size_t WriteAt (const void *pBuffer, ULONGLONG offset, size_t size, IoCompletion *pCompletion=NULL, ActionStatus *pStatus=NULL)=0


Detailed Description

Represents a file or a file-like object.

The AIFile interface represents any object that supports Read/Write operations, such as OS file, memory buffer, or virtual file inside an archive. To implement a custom file with a limited functionality, consider subclassing BasicFileBase class.


Member Function Documentation

virtual bool BazisLib::AIFile::AsynchronousIOSupported (  )  [pure virtual]

Implemented in BazisLib::BasicFileBase.

virtual void BazisLib::AIFile::Close (  )  [pure virtual]

virtual ActionStatus BazisLib::AIFile::Crop (  )  [pure virtual]

Sets the end of file to current position.

Implemented in BazisLib::BasicFileBase.

virtual SecurityDescriptor* BazisLib::AIFile::GetFileSecurity ( ActionStatus pStatus = NULL  )  [pure virtual]

Implemented in BazisLib::BasicFileBase.

virtual ActionStatus BazisLib::AIFile::GetFileTimes ( DateTime pCreationTime,
DateTime pLastWriteTime,
DateTime pLastReadTime 
) [pure virtual]

Implemented in BazisLib::BasicFileBase.

virtual LONGLONG BazisLib::AIFile::GetPosition ( ActionStatus pStatus = NULL  )  [pure virtual]

virtual LONGLONG BazisLib::AIFile::GetSize ( ActionStatus pStatus = NULL  )  [pure virtual]

virtual size_t BazisLib::AIFile::Read ( void *  pBuffer,
size_t  size,
ActionStatus pStatus = NULL,
bool  IncompleteReadSupported = false 
) [pure virtual]

Reads data from the file (or stream).

Parameters:
IncompleteReadSupported If this parameter is true, the Read() method can return a value different from the size parameter even when the EOF is not reached. For example, this can happen if a file is actually a network stream and some data is already in the buffer. However, if this parameter is false, the stream will wait till the end of connection, or till the requested amount of bytes will be received. Non-stream implementations can safely ignore this parameter and always wait for the end-of-file, or exactly the requested number of bytes.

Implemented in BazisLib::ACMemoryFile, BazisLib::BasicFileBase, and BazisLib::Network::HTTP::HTTPFile.

virtual size_t BazisLib::AIFile::ReadAt ( void *  pBuffer,
ULONGLONG  offset,
size_t  size,
IoCompletion *  pCompletion = NULL,
ActionStatus pStatus = NULL 
) [pure virtual]

virtual LONGLONG BazisLib::AIFile::Seek ( LONGLONG  Offset,
FileFlags::SeekType  seekType = FileFlags::FileBegin,
ActionStatus pStatus = NULL 
) [pure virtual]

virtual ActionStatus BazisLib::AIFile::SetFileSecurity ( SecurityDescriptor *  pDescriptor  )  [pure virtual]

Implemented in BazisLib::BasicFileBase.

virtual ActionStatus BazisLib::AIFile::SetFileTimes ( const DateTime pCreationTime,
const DateTime pLastWriteTime,
const DateTime pLastReadTime 
) [pure virtual]

Implemented in BazisLib::BasicFileBase.

virtual bool BazisLib::AIFile::Valid (  )  [pure virtual]

virtual size_t BazisLib::AIFile::Write ( const void *  pBuffer,
size_t  size,
ActionStatus pStatus = NULL 
) [pure virtual]

virtual size_t BazisLib::AIFile::WriteAt ( const void *  pBuffer,
ULONGLONG  offset,
size_t  size,
IoCompletion *  pCompletion = NULL,
ActionStatus pStatus = NULL 
) [pure virtual]

Implemented in BazisLib::BasicFileBase.


The documentation for this class was generated from the following file:
SourceForge.net Logo