BasicSTDIStreamWrapper

BasicSTDIStreamWrapper class

Represents a System.IO.Stream-like wrapper for std::basic_istream and its derived objects. 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.

template<typename T,typename>class BasicSTDIStreamWrapper : public virtual System::IO::STDIOStreamWrapperBase<T>

Methods

MethodDescription
BasicSTDIStreamWrapper(std::basic_istream<char_type, traits_type>&, STDIOStreamWrappingMode)Constructs a new instance of the BasicSTDIStreamWrapper.
BasicSTDIStreamWrapper(const BasicSTDIStreamWrapper&)Copy constructor. Deleted.
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.
virtual void Close()Closes 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() overrideClears this stream’s buffers and writes all buffered data to the underlying storage. Not supported!
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 supports writing.
int64_t get_Length() const overrideReturns length of the stream.
int64_t get_Position() const overrideReturns 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.
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.
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.
BasicSTDIStreamWrapper& operator=(const BasicSTDIStreamWrapper&)Copy assignment operator. Deleted.
STDIOStreamWrapperBase& operator=(const STDIOStreamWrapperBase&)Copy assignment operator. Deleted.
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) overrideIf wrapping mode is binary, reads the specified number of bytes from the stream, otherwise read the specified number of characters and converts them to uint8_t type. Writes result of the reading 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() overrideIf wrapping mode is binary, reads a single byte from the last decoded character storage, otherwise read a single character from the stream and convert it to uint8_t type.
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.
RTTI_INFO_TEMPLATE_CLASS(ThisType, ThisTypeBaseTypesInfo)RTTI information.
int64_t Seek(int64_t, SeekOrigin) overrideSets the position of the stream represented by the current object.
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. Not supported!
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.
STDIOStreamWrapperBase(const STDIOStreamWrapperBase&)Copy constructor. Deleted.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
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) overrideIf wrapping mode is binary, writes to the stream the specified subrange of bytes from the specified byte array, otherwise convert the specified subrange of bytes from the specified byte array to char_type type ant then writes result to the stream. Not supported!
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) overrideIf wrapping mode is binary, writes to the stream the specified unsigned 8-bit integer value, otherwise convert it to char_type type and then write the result to the stream. Not supported!
virtual ~Object()Destroys object. Frees all internal data structures.

Fields

FieldDescription
static NullA stream with no underlying storage.

Typedefs

TypedefDescription
ThisType
BaseType
ThisTypeBaseTypesInfo
char_type
traits_type

See Also