#include <file.h>
Inherited by BazisLib::BasicFileBase.
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 |
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.
virtual bool BazisLib::AIFile::AsynchronousIOSupported | ( | ) | [pure virtual] |
Implemented in BazisLib::BasicFileBase.
virtual void BazisLib::AIFile::Close | ( | ) | [pure virtual] |
Implemented in BazisLib::ACMemoryFile, and BazisLib::BasicFileBase.
virtual ActionStatus BazisLib::AIFile::Crop | ( | ) | [pure virtual] |
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] |
Implemented in BazisLib::ACMemoryFile, BazisLib::BasicFileBase, and BazisLib::Network::HTTP::HTTPFile.
virtual LONGLONG BazisLib::AIFile::GetSize | ( | ActionStatus * | pStatus = NULL |
) | [pure virtual] |
Implemented in BazisLib::ACMemoryFile, BazisLib::BasicFileBase, and BazisLib::Network::HTTP::HTTPFile.
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).
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] |
Implemented in BazisLib::BasicFileBase, and BazisLib::Network::HTTP::HTTPFile.
virtual LONGLONG BazisLib::AIFile::Seek | ( | LONGLONG | Offset, | |
FileFlags::SeekType | seekType = FileFlags::FileBegin , |
|||
ActionStatus * | pStatus = NULL | |||
) | [pure virtual] |
Implemented in BazisLib::ACMemoryFile, BazisLib::BasicFileBase, and BazisLib::Network::HTTP::HTTPFile.
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] |
Implemented in BazisLib::ACMemoryFile, BazisLib::BasicFileBase, and BazisLib::Network::HTTP::HTTPFile.
virtual size_t BazisLib::AIFile::Write | ( | const void * | pBuffer, | |
size_t | size, | |||
ActionStatus * | pStatus = NULL | |||
) | [pure virtual] |
Implemented in BazisLib::ACMemoryFile, and BazisLib::BasicFileBase.
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.