Inherits System::IO::Stream.
Public Types | |
using | ThisType = STDIOStreamWrapperBase< T > |
using | BaseType = Stream |
using | ThisTypeBaseTypesInfo = BaseTypesInfo< BaseType > |
using | char_type = typename T::char_type |
using | traits_type = typename T::traits_type |
using | int_type = typename T::int_type |
using | pos_type = typename T::pos_type |
using | off_type = typename T::off_type |
Public Types inherited from System::IO::Stream | |
typedef SharedPtr< Stream > | Ptr |
An alias for a shared pointer to this class. More... | |
Public Types inherited from System::Object | |
typedef SmartPtr< Object > | ptr |
Alias for smart pointer type. More... | |
Public Member Functions | |
RTTI_INFO_TEMPLATE_CLASS (ThisType, ThisTypeBaseTypesInfo) | |
RTTI information. More... | |
STDIOStreamWrapperBase (const STDIOStreamWrapperBase &)=delete | |
Copy constructor. Deleted. More... | |
STDIOStreamWrapperBase & | operator= (const STDIOStreamWrapperBase &)=delete |
Copy assignment operator. Deleted. More... | |
virtual int64_t | Seek (int64_t offset, SeekOrigin origin) override |
virtual void | set_Position (int64_t value) override |
virtual int64_t | get_Position () const override |
Returns current position of the stream. More... | |
virtual int64_t | get_Length () const override |
Returns length of the stream. More... | |
virtual bool | get_CanRead () const override |
Determines if the stream supports reading. More... | |
virtual bool | get_CanSeek () const override |
Determines if the stream supports seeking. More... | |
virtual bool | get_CanWrite () const override |
Determines if the stream supports writing. More... | |
Public Member Functions inherited from System::IO::Stream | |
virtual ASPOSECPP_SHARED_API int | ReadByte () |
virtual ASPOSECPP_SHARED_API void | WriteByte (uint8_t value) |
virtual ASPOSECPP_SHARED_API int32_t | Read (const ArrayPtr< uint8_t > &buffer, int32_t offset, int32_t count)=0 |
virtual ASPOSECPP_SHARED_API void | Write (const ArrayPtr< uint8_t > &buffer, int32_t offset, int32_t count)=0 |
virtual ASPOSECPP_SHARED_API int32_t | Read (const System::Details::ArrayView< uint8_t > &buffer, int32_t offset, int32_t count) |
virtual ASPOSECPP_SHARED_API void | Write (const System::Details::ArrayView< uint8_t > &buffer, int32_t offset, int32_t count) |
template<std::size_t N> | |
int32_t | Read (const System::Details::StackArray< uint8_t, N > &buffer, int32_t offset, int32_t count) |
template<std::size_t N> | |
void | Write (const System::Details::StackArray< uint8_t, N > &buffer, int32_t offset, int32_t count) |
virtual ASPOSECPP_SHARED_API void | SetLength (int64_t value)=0 |
virtual ASPOSECPP_SHARED_API void | Flush ()=0 |
Clears this stream's buffers and writes all buffered data to the underlying storage. More... | |
virtual void | Close () |
Closes the stream. More... | |
ASPOSECPP_SHARED_API void | Dispose () override |
Releases all resources used by the current object and closes the stream. More... | |
virtual ASPOSECPP_SHARED_API System::SharedPtr< System::IAsyncResult > | BeginRead (System::ArrayPtr< uint8_t > buffer, int offset, int count, System::AsyncCallback callback, System::SharedPtr< System::Object > state) |
virtual ASPOSECPP_SHARED_API System::SharedPtr< System::IAsyncResult > | BeginWrite (System::ArrayPtr< uint8_t > buffer, int offset, int count, System::AsyncCallback callback, System::SharedPtr< System::Object > state) |
virtual ASPOSECPP_SHARED_API int | EndRead (System::SharedPtr< System::IAsyncResult > asyncResult) |
virtual ASPOSECPP_SHARED_API void | EndWrite (System::SharedPtr< System::IAsyncResult > asyncResult) |
ASPOSECPP_SHARED_API void | CopyTo (const SharedPtr< Stream > &destination) |
ASPOSECPP_SHARED_API void | CopyTo (const SharedPtr< Stream > &destination, int32_t buffer_size) |
virtual ASPOSECPP_SHARED_API bool | get_CanTimeout () const |
virtual ASPOSECPP_SHARED_API void | set_ReadTimeout (int timeout) |
Sets a value that determines whether the current stream can time out. More... | |
virtual ASPOSECPP_SHARED_API int | get_ReadTimeout () const |
virtual ASPOSECPP_SHARED_API void | set_WriteTimeout (int timeout) |
Sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out. More... | |
virtual ASPOSECPP_SHARED_API int | get_WriteTimeout () const |
Gets a value, in milliseconds, that determines how long the stream will attempt to write before timing out. More... | |
Public Member Functions inherited from System::Object | |
ASPOSECPP_SHARED_API | Object () |
Creates object. Initializes all internal data structures. More... | |
virtual ASPOSECPP_SHARED_API | ~Object () |
Destroys object. Frees all internal data structures. More... | |
ASPOSECPP_SHARED_API | Object (Object const &x) |
Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More... | |
Object & | operator= (Object const &x) |
Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More... | |
Object * | SharedRefAdded () |
Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
int | SharedRefRemovedSafe () |
Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
int | RemovedSharedRefs (int count) |
Decreases shared reference count by specified value. More... | |
Detail::SmartPtrCounter * | WeakRefAdded () |
Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
void | WeakRefRemoved () |
Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More... | |
Detail::SmartPtrCounter * | GetCounter () |
Gets reference counter data structure associated with the object. More... | |
int | SharedCount () const |
Gets current value of shared reference counter. More... | |
ASPOSECPP_SHARED_API void | Lock () |
Implements C# lock() statement locking. Call directly or use LockContext sentry object. More... | |
ASPOSECPP_SHARED_API void | Unlock () |
Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More... | |
virtual ASPOSECPP_SHARED_API bool | Equals (ptr obj) |
Compares objects using C# Object.Equals semantics. More... | |
virtual ASPOSECPP_SHARED_API int32_t | GetHashCode () const |
Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More... | |
virtual ASPOSECPP_SHARED_API String | ToString () const |
Analog of C# Object.ToString() method. Enables converting custom objects to string. More... | |
virtual ASPOSECPP_SHARED_API ptr | MemberwiseClone () const |
Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More... | |
virtual ASPOSECPP_SHARED_API const TypeInfo & | GetType () const |
Gets actual type of object. Analog of C# System.Object.GetType() call. More... | |
virtual ASPOSECPP_SHARED_API bool | Is (const TypeInfo &targetType) const |
Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More... | |
virtual ASPOSECPP_SHARED_API void | SetTemplateWeakPtr (uint32_t argument) |
Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More... | |
virtual ASPOSECPP_SHARED_API bool | FastCast (const Details::FastRttiBase &helper, void **out_ptr) const |
For internal purposes only. More... | |
template<> | |
bool | Equals (float const &objA, float const &objB) |
template<> | |
bool | Equals (double const &objA, double const &objB) |
template<> | |
bool | ReferenceEquals (String const &str, std::nullptr_t) |
template<> | |
bool | ReferenceEquals (String const &str1, String const &str2) |
Protected Member Functions | |
STDIOStreamWrapperBase (std::basic_ios< char_type, traits_type > &str, STDIOStreamWrappingMode mode=STDIOStreamWrappingMode::Binary, bool can_read=false, bool can_write=false, bool can_seek=false, STDIOStreamPositionPreference pref_pos=STDIOStreamPositionPreference::Zero) | |
virtual int64_t | Pubseekpos (int64_t value)=0 |
virtual void | Check () const |
Check if the stream has been modified outside the wrapper. More... | |
virtual void | Sync ()=0 |
Synchronizes positions of read or write or both. More... | |
void | DecodeElem (int_type meta) |
void | DecodeElem (int_type meta, ArrayPtr< uint8_t > &destination) |
char_type | EncodeElem () |
char_type | EncodeElem (uint8_t *source) |
void | EncodeElem (uint8_t *source, char_type *destination) |
Protected Member Functions inherited from System::IO::Stream | |
virtual ASPOSECPP_SHARED_API void | Dispose (bool disposing) |
Protected Attributes | |
std::basic_ios< char_type, traits_type > & | m_stream |
Reference to the stream. More... | |
const STDIOStreamWrappingMode | m_wrapping_mode |
Wrapping mode. More... | |
const bool | m_can_read |
CanRead flag. More... | |
const bool | m_can_write |
CanWrite flag. More... | |
const bool | m_can_seek |
CanSeek flag. More... | |
int64_t | m_last_elem_gpos |
Last read position. More... | |
int64_t | m_last_elem_ppos |
Last write position. More... | |
int64_t | m_elem_pos |
Read/write position. More... | |
int64_t | m_byte_pos |
Read/write position in bytes. More... | |
int64_t | m_length |
Stream's length. More... | |
ArrayPtr< uint8_t > | m_decoded_elem |
The last decoded element storage. More... | |
Static Protected Attributes | |
static constexpr uint8_t | m_elem_size = sizeof(char_type) |
char_type size = sizeof(char_type). More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from System::Object | |
static bool | ReferenceEquals (ptr const &objA, ptr const &objB) |
Compares objects by reference. More... | |
template<typename T > | |
static std::enable_if<!IsSmartPtr< T >::value, bool >::type | ReferenceEquals (T const &objA, T const &objB) |
Compares objects by reference. More... | |
template<typename T > | |
static std::enable_if<!IsSmartPtr< T >::value, bool >::type | ReferenceEquals (T const &objA, std::nullptr_t) |
Reference-compares value type object with nullptr. More... | |
template<typename T1 , typename T2 > | |
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type | Equals (T1 const &objA, T2 const &objB) |
Compares reference type objects in C# style. More... | |
template<typename T1 , typename T2 > | |
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type | Equals (T1 const &objA, T2 const &objB) |
Compares value type objects in C# style. More... | |
static const TypeInfo & | Type () |
Implements C# typeof(System.Object) construct. More... | |
Static Public Attributes inherited from System::IO::Stream | |
static const System::SharedPtr< Stream > ASPOSECPP_SHARED_API | Null |
A stream with no underlying storage. More... | |
Represents a base class for System.IO.Stream-like wrappers. 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.
using System::IO::STDIOStreamWrapperBase< T, typename >::BaseType = Stream |
using System::IO::STDIOStreamWrapperBase< T, typename >::char_type = typename T::char_type |
using System::IO::STDIOStreamWrapperBase< T, typename >::int_type = typename T::int_type |
using System::IO::STDIOStreamWrapperBase< T, typename >::off_type = typename T::off_type |
using System::IO::STDIOStreamWrapperBase< T, typename >::pos_type = typename T::pos_type |
using System::IO::STDIOStreamWrapperBase< T, typename >::ThisType = STDIOStreamWrapperBase<T> |
using System::IO::STDIOStreamWrapperBase< T, typename >::ThisTypeBaseTypesInfo = BaseTypesInfo<BaseType> |
using System::IO::STDIOStreamWrapperBase< T, typename >::traits_type = typename T::traits_type |
|
delete |
Copy constructor. Deleted.
|
inlineprotected |
Constructs a new instance of the STDIOStreamWrapperBase.
str | A reference to the std::iostream-like stream |
mode | Wrapping mode |
can_read | CanRead flag |
can_write | CanWrite flag |
can_seek | CanSeek flag |
pref_pos | Position that will prefer as read and write position, if they are different |
|
inlineprotectedvirtual |
Check if the stream has been modified outside the wrapper.
Reimplemented in System::IO::BasicSTDIOStreamWrapper< T, typename >, System::IO::BasicSTDOStreamWrapper< T, typename >, System::IO::BasicSTDOStreamWrapper< T >, System::IO::BasicSTDIStreamWrapper< T, typename >, and System::IO::BasicSTDIStreamWrapper< T >.
|
inlineprotected |
Decodes meta
and store result in the last decoded element storage.
meta | Meta character to decode |
|
inlineprotected |
Decodes meta
and store result in the destination
.
meta | Meta character to decode |
destination | Reference to decoded element storage |
|
inlineprotected |
Encodes the last decoded element storage.
|
inlineprotected |
Encodes source
.
source | Pointer to decoded element storage |
|
inlineprotected |
Encodes source
to destination
.
source | Pointer to decoded element storage |
destination | Pointer to the character to encode |
|
inlineoverridevirtual |
Determines if the stream supports reading.
Implements System::IO::Stream.
|
inlineoverridevirtual |
Determines if the stream supports seeking.
Implements System::IO::Stream.
|
inlineoverridevirtual |
Determines if the stream supports writing.
Implements System::IO::Stream.
|
inlineoverridevirtual |
Returns length of the stream.
Implements System::IO::Stream.
|
inlineoverridevirtual |
Returns current position of the stream.
Implements System::IO::Stream.
|
delete |
Copy assignment operator. Deleted.
|
protectedpure virtual |
Seeks positions of read or write or both on value
.
value | Seeked position |
Implemented in System::IO::BasicSTDIOStreamWrapper< T, typename >, System::IO::BasicSTDOStreamWrapper< T, typename >, System::IO::BasicSTDOStreamWrapper< T >, System::IO::BasicSTDIStreamWrapper< T, typename >, and System::IO::BasicSTDIStreamWrapper< T >.
System::IO::STDIOStreamWrapperBase< T, typename >::RTTI_INFO_TEMPLATE_CLASS | ( | ThisType | , |
ThisTypeBaseTypesInfo | |||
) |
RTTI information.
|
inlineoverridevirtual |
Sets the position of the stream represented by the current object.
offset | The byte offset relative to a position specified by origin |
origin | Specifies the position from which and the direction toward which the offset is calculated |
Implements System::IO::Stream.
|
inlineoverridevirtual |
Sets the stream's position.
value | Value to set the stream's position |
Implements System::IO::Stream.
|
protectedpure virtual |
Synchronizes positions of read or write or both.
Implemented in System::IO::BasicSTDIOStreamWrapper< T, typename >, System::IO::BasicSTDOStreamWrapper< T, typename >, System::IO::BasicSTDOStreamWrapper< T >, System::IO::BasicSTDIStreamWrapper< T, typename >, and System::IO::BasicSTDIStreamWrapper< T >.
|
protected |
Read/write position in bytes.
|
protected |
CanRead flag.
|
protected |
CanSeek flag.
|
protected |
CanWrite flag.
|
protected |
The last decoded element storage.
|
protected |
Read/write position.
|
staticprotected |
char_type size = sizeof(char_type).
|
protected |
Last read position.
|
protected |
Last write position.
|
protected |
Stream's length.
|
protected |
Reference to the stream.
|
protected |
Wrapping mode.