8#include "Arp/System/Commons/Io/Stream.hpp"
9#include "Arp/System/Commons/Io/FileMode.hpp"
10#include "Arp/System/Commons/Io/FileAccess.hpp"
13namespace Arp {
namespace System {
namespace Ve
18namespace Arp {
namespace System {
namespace Commons {
namespace Io
27 using IFileService = Arp::System::Ve::IFileService;
139 size_t Read(
byte* pBuffer,
size_t bufferSize,
size_t offset,
size_t count)
override;
154 void Write(
const byte* pBuffer,
size_t bufferSize,
size_t offset,
size_t count)
override;
157 void InternalDispose(
void)
override;
165 boolean canRead =
false;
166 boolean canWrite =
false;
167 boolean canSeek =
false;
171 IFileService* pFileService =
nullptr;
184 this->InternalConstructor(path, mode, access);
189 this->InternalConstructor(path, mode, access, sync);
Exposes a Stream around a file, supporting read and write operations.
Definition: FileStream.hpp:25
FileStream(const String &path, FileMode mode)
Initializes a new instance of the FileStream class.
Definition: FileStream.hpp:177
boolean CanWrite(void) override
Checks if the stream is opened for write-access.
boolean CanRead(void) override
Checks if the stream is opened for read-access.
void SetLength(size_t length) override
Reserves a specific amount of bytes for the opened file.
FileStream(const FileStream &arg)=delete
Copy constructor.
boolean CanSeek(void) override
Checks if seek operations are possible.
size_t Seek(size_t offset, SeekOrigin origin) override
Sets a new position if the internal stream pointer relative to a specific position.
~FileStream(void) override
Destructs this instance and frees all resources.
size_t Read(byte *pBuffer, size_t bufferSize, size_t offset, size_t count) override
Reads data from stream into assigned buffer at a specific offset.
void Write(const byte *pBuffer, size_t bufferSize, size_t offset, size_t count) override
Writes data from assigned buffer to stream.
size_t GetPosition(void) override
Returns the byte offset of the internal stream pointer from the beginning of the file.
void SetPosition(size_t position) override
Sets a new position of the internal stream pointer.
FileStream & operator=(const FileStream &arg)=delete
Assignment operator.
void Flush(void) override
Forces a write of all possibly buffered data (input stream) or discards any buffered not yet read by ...
size_t GetLength(void) override
Returns the size of the opened file in bytes.
Provides a generic view of a sequence of bytes.
Definition: Stream.hpp:20
@ System
System components used by the System, Device, Plc or Io domains.
SeekOrigin
Provides seek reference points. To seek to the end of a stream, call stream.Seek(0,...
Definition: SeekOrigin.hpp:20
FileMode
Contains constants for specifying how the OS should open a file.
Definition: FileMode.hpp:24
FileAccess
Contains constants for specifying the access you want for a file. You can have Read,...
Definition: FileAccess.hpp:18
@ ReadWrite
Specifies read and write access to the file. Data can be written to the file and the file pointer can...
Root namespace for the PLCnext API