8 #include "Arp/System/Commons/Io/Stream.hpp" 9 #include "Arp/System/Commons/Exceptions/Exceptions.h" 11 namespace Arp {
namespace System {
namespace Commons {
namespace Io
50 MemoryStream(
byte* buffer,
size_t bufferSize,
size_t index,
size_t count,
boolean writable);
60 MemoryStream(
byte* buffer,
size_t bufferSize,
size_t index,
size_t count,
boolean writable,
boolean publiclyVisible);
73 boolean CanRead(
void)
override;
74 boolean CanWrite(
void)
override;
75 boolean CanSeek(
void)
override;
76 size_t GetLength(
void)
override;
77 void SetLength(
size_t argLength)
override;
78 size_t GetPosition(
void)
override;
79 void SetPosition(
size_t argPostion)
override;
81 virtual size_t GetCapacity(
void);
82 virtual void SetCapacity(
size_t argCapacity);
85 void Flush(
void)
override;
86 size_t Seek(
size_t offset,
SeekOrigin origin)
override;
87 size_t Read(
byte* pBuffer,
size_t bufferSize,
size_t offset,
size_t count)
override;
88 void Write(
const byte* pBuffer,
size_t bufferSize,
size_t offset,
size_t count)
override;
90 virtual void WriteTo(
Stream& stream);
93 void InternalDispose(
void)
override;
98 void InternalConstructor(
byte* buffer,
size_t bufferSize,
size_t index,
size_t count,
boolean writable,
boolean publicallyVisible);
99 void EnsureSize(
size_t newSize);
104 size_t streamBufferSize;
118 boolean allowGetBuffer;
123 static size_t minCapacity;
134 : streamBuffer(nullptr), writeable(true), position(0), length(0), expandable(false), capacity(capacity), bufferOffset(0), allowGetBuffer(true), selfCreated(true)
141 this->streamBuffer =
new byte[capacity];
142 this->streamBufferSize = capacity;
143 memset(this->streamBuffer, 0, capacity);
147 : streamBuffer(nullptr), writeable(true), position(0), length(0), expandable(false), capacity(0), bufferOffset(0), allowGetBuffer(true), selfCreated(false)
149 if (buffer ==
nullptr)
154 this->InternalConstructor(buffer, bufferSize, 0, bufferSize,
true,
false);
158 : streamBuffer(nullptr), writeable(true), position(0), length(0), expandable(false), capacity(0), bufferOffset(0), allowGetBuffer(true), selfCreated(false)
160 if (buffer ==
nullptr)
165 this->InternalConstructor(buffer, bufferSize, 0,
sizeof(buffer), writable,
false);
169 : streamBuffer(nullptr), writeable(true), position(0), length(0), expandable(false), capacity(0), bufferOffset(0), allowGetBuffer(true), selfCreated(false)
171 if (buffer ==
nullptr)
176 this->InternalConstructor(buffer, bufferSize, index, count,
true,
false);
180 : streamBuffer(nullptr), writeable(true), position(0), length(0), expandable(false), capacity(0), bufferOffset(0), allowGetBuffer(true), selfCreated(false)
182 this->InternalConstructor(buffer, bufferSize, index, count, writable,
false);
186 : streamBuffer(nullptr), writeable(true), position(0), length(0), expandable(false), capacity(0), bufferOffset(0), allowGetBuffer(true), selfCreated(false)
188 if (buffer ==
nullptr)
193 this->InternalConstructor(buffer, bufferSize, index, count, writable, publiclyVisible);
Definition: MemoryStream.hpp:14
virtual ~MemoryStream(void)
Destructs this instance and frees all resources.
Definition: MemoryStream.hpp:196
MemoryStream(void)
Initializes a new instance of the T:System.IO.MemoryStream class with an expandable capacity initiali...
Definition: MemoryStream.hpp:128
This exception is used when an invalid <null> argument occurs.
Definition: ArgumentNullException.hpp:15
Provides a generic view of a sequence of bytes.
Definition: Stream.hpp:16
MemoryStream & operator=(const MemoryStream &arg)=delete
Assignment operator.
This exception is used when an invalid argument occurs.
Definition: ArgumentException.hpp:14
Root namespace for the PLCnext API
SeekOrigin
Provides seek reference points. To seek to the end of a stream, call stream.Seek(0, SeekOrigin.End).
Definition: SeekOrigin.hpp:19
System components used by the System, Device, Plc or Io domains.
unsigned char byte
The Arp character type.
Definition: PrimitiveTypes.hpp:23