MemoryStream

MemoryStream class

Represents a stream that reads from and writes to memory. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

class MemoryStream : public System::IO::Stream

Methods

MethodDescription
virtual System::SharedPtr<System::IAsyncResult> BeginRead(System::ArrayPtr<uint8_t>, int, int, System::AsyncCallback, System::SharedPtr<System::Object>)Initiates an asynchronous read operation.
virtual System::SharedPtr<System::IAsyncResult> BeginWrite(System::ArrayPtr<uint8_t>, int, int, System::AsyncCallback, System::SharedPtr<System::Object>)Initiates an asynchronous write operation.
void Close() overrideCloses the stream.
void CopyTo(const SharedPtr<Stream>&)Copies bytes to the specified stream.
void CopyTo(const SharedPtr<Stream>&, int32_t)Copies bytes to the specified stream, using the specified buffer size.
void Dispose() overrideReleases all resources used by the current object and closes the stream.
virtual int EndRead(System::SharedPtr<System::IAsyncResult>)Waits until the specified asynchronous read operation completes.
virtual void EndWrite(System::SharedPtr<System::IAsyncResult>)Ends an asynchronous write operation. Waits until the specified asynchronous write operation completes.
virtual bool Equals(ptr)Compares objects using C# Object.Equals semantics.
static std::enable_if<IsSmartPtr<T1>::value&&IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares reference type objects in C# style.
static std::enable_if<!IsSmartPtr<T1>::value&&!IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares value type objects in C# style.
static bool Equals(float const&, float const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
static bool Equals(double const&, double const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
virtual bool FastCast(const Details::FastRttiBase&, void **) constFor internal purposes only.
void Flush() overrideDoes nothing.
bool get_CanRead() const overrideDetermines if the stream is readable.
bool get_CanSeek() const overrideDetermines if the stream supports seeking.
virtual bool get_CanTimeout() constGets a value that determines whether the current stream can time out.
bool get_CanWrite() const overrideDetermines if the stream is writable.
int get_Capacity()Returns the current capacity of the underlying memory buffer.
int64_t get_Length() const overrideReturns the length of the stream in bytes.
int64_t get_Position() const overrideReturns the current position of the stream.
virtual int get_ReadTimeout() constGets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.
virtual int get_WriteTimeout() constGets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.
virtual ArrayPtr<uint8_t> GetBuffer()Returns a pointer to the underlying buffer.
Detail::SmartPtrCounter * GetCounter()Gets reference counter data structure associated with the object.
virtual int32_t GetHashCode() constAnalog of C# Object.GetHashCode() method. Enables hashing of custom objects.
virtual const TypeInfo& GetType() constGets actual type of object. Analog of C# System.Object.GetType() call.
virtual bool Is(const TypeInfo&) constCheck if object represents an instance of type described by targetType. Analog of C# ‘is’ operator.
void Lock()Implements C# lock() statement locking. Call directly or use LockContext sentry object.
virtual ptr MemberwiseClone() constAnalog of C# Object.MemberwiseClone() method. Enables cloning custom types.
MemoryStream()Constructs a new instance of the MemoryStream class with initial capacity equal to 0.
MemoryStream(int)Constructs a new instance of the MemoryStream class that represents a stream based on a memory buffer of the specified size.
MemoryStream(const ArrayPtr<uint8_t>&, bool)Constructs a new instance of the MemoryStream class that represents a memory stream which is connected to the specified memory buffer. A parameter specifies if the stream is writable.
MemoryStream(const ArrayPtr<uint8_t>&, int, int, bool, bool)Constructs a new instance of the MemoryStream class that represents a memory stream which is connected to a segment of the specified memory buffer starting at the specified index and including the specified number of elements. Parameters specifies if the stream is writable and if method GetBytes() can be called.
Object()Creates object. Initializes all internal data structures.
Object(Object const&)Copy constructor. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
Object& operator=(Object const&)Assignment operator. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
int32_t Read(const ArrayPtr<uint8_t>&, int32_t, int32_t) overrideReads the specified number of bytes from the stream and writes them to the specified byte array.
int32_t Read(const System::Details::ArrayView<uint8_t>&, int32_t, int32_t) overrideReads the specified number of bytes from the stream and writes them to the specified byte array.
int32_t Read(const System::Details::StackArray<uint8_t, N>&, int32_t, int32_t)Reads the specified number of bytes from the stream and writes them to the specified byte array.
int ReadByte() overrideReads a single byte from the stream and returns a 32-bit integer value equivalent to the value of the read byte.
static bool ReferenceEquals(ptr const&, ptr const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, T const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, std::nullptr_t)Reference-compares value type object with nullptr.
bool ReferenceEquals(String const&, std::nullptr_t)Specialization of Object::ReferenceEquals for case of string and nullptr.
bool ReferenceEquals(String const&, String const&)Specialization of Object::ReferenceEquals for case of strings.
int RemovedSharedRefs(int)Decreases shared reference count by specified value.
int64_t Seek(int64_t, SeekOrigin) overrideSets the position of the stream represented by the current object.
void set_Capacity(int)Sets the capacity of the underlying memory buffer.
void set_Position(int64_t) overrideSets the stream’s position.
virtual void set_ReadTimeout(int)Sets a value that determines whether the current stream can time out.
virtual void set_WriteTimeout(int)Sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.
void SetLength(int64_t) overrideSets the length of the stream represented by the current object.
virtual void SetTemplateWeakPtr(uint32_t)Set n’th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode.
int SharedCount() constGets current value of shared reference counter.
Object * SharedRefAdded()Increments shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
int SharedRefRemovedSafe()Decrements and returns shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual ArrayPtr<uint8_t> ToArray()Returns a copy of underlying memory buffer as an array of bytes.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
bool TryGetBuffer(ArraySegment<uint8_t>&)Returns the array of unsigned bytes from which this stream was created.
static const TypeInfo& Type()Implements C# typeof(System.Object) construct.
void Unlock()Implements C# lock() statement unlocking. Call directly or use LockContext sentry object.
Detail::SmartPtrCounter * WeakRefAdded()Increments weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void WeakRefRemoved()Decrements weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void Write(const ArrayPtr<uint8_t>&, int32_t, int32_t) overrideWrites the specified subrange of bytes from the specified byte array to the stream.
void Write(const System::Details::ArrayView<uint8_t>&, int32_t, int32_t) overrideWrites the specified subrange of bytes from the specified byte array to the stream.
void Write(const System::Details::StackArray<uint8_t, N>&, int32_t, int32_t)Writes the specified subrange of bytes from the specified byte array to the stream.
void WriteByte(uint8_t) overrideWrites the specified unsigned 8-bit integer value to the stream.
virtual void WriteTo(SharedPtr<Stream>)Writes the content of the underlying buffer to the specified stream.
virtual ~Object()Destroys object. Frees all internal data structures.

Fields

FieldDescription
static NullA stream with no underlying storage.

Typedefs

TypedefDescription
PtrAn alias for a shared pointer to the self.

See Also