diff --git a/uppsrc/Core/src.tpp/Stream$en-us.tpp b/uppsrc/Core/src.tpp/Stream$en-us.tpp index 847a01039..18088bc9b 100644 --- a/uppsrc/Core/src.tpp/Stream$en-us.tpp +++ b/uppsrc/Core/src.tpp/Stream$en-us.tpp @@ -10,7 +10,20 @@ topic "Streams"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; Streams&] +[s0; [*@3;4 Stream]&] +[s1;:Stream`:`:class:%- [@(0.0.255)3 class][3 _][*3 Stream]&] +[s0;%- &] +[s0; Stream is the base class of all U`+`+ streams.&] +[s0; U`+`+ streams generally serve in two different roles:&] +[s0;i150;O0; As basic raw binary streams, which includes text input +and output.&] +[s0;i150;O0; As binary serialization target/source. This mainly needs +to store flag indicating serialization direction.&] +[s0; &] +[s0; While Stream offers a basic interface for stream based operations, +more specific operations are handled by one of the following +classes derived from Stream:&] +[s0; &] [ {{993:993:993:993:995:996:987:1013:1016:1021f0;g33;GNl17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^1 Stream]] ::l0/25r0/25t0/15b0/15@2-1 [s0;%- ] :: [s0;%- ] @@ -140,17 +153,9 @@ ompareStream]] :: [s0; ] :: [s0; ] :: [s0; ]}}&] +[s3; &] [s0; &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]Stream&] -[s2; &] -[s2; Stream is the base class of all U`+`+ streams.&] -[s2; U`+`+ streams generally serve in two different roles:&] -[s2;i150;O0; As basic raw binary streams, which includes text input -and output.&] -[s2;i150;O0; As binary serialization target/source. This mainly needs -to store flag indicating serialization direction.&] -[s2; In order to achieve optimal performance of buffered stream operations, +[s0; In order to achieve optimal performance of buffered stream operations, the most frequent operations have a little bit more complicated implementation that demands proper definition of virtual methods, as they must correctly adjust some protected data members of @@ -180,347 +185,416 @@ a part of interface definition:&] [s0; [*C@5 -|return dword(ptr `- buffer) `+ pos;]&] [s0; [*C@5 `}]&] [s0; &] -[s0;3 &] -[s0;%- Protected members for Stream implementation&] [s0; &] -[s5;K%- [^`:`:int64^ int64]_pos&] +[ {{10000F(128)G(128)@1 [s0; [* Protected members]]}}&] +[s0;0%- &] +[s5;:Stream`:`:pos:%- [_^int64^ int64]_[* pos]&] [s6;%- Protected.&] [s2; Position of buffer in the stream.&] -[s0;3 &] -[s5;K%- [^`:`:byte^ byte]_`*buffer&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:buffer:%- [_^byte^ byte]_`*[* buffer]&] [s6; Protected.&] [s2; Pointer to beginning of buffer.&] -[s0;3 &] -[s5;K%- [^`:`:byte^ byte]_`*ptr&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:ptr:%- [_^byte^ byte]_`*[* ptr]&] [s6; Protected.&] [s2; Pointer to current input/output byte.&] -[s0;3 &] -[s5;K%- [^`:`:byte^ byte]_`*rdlim&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:rdlim:%- [_^byte^ byte]_`*[* rdlim]&] [s6; Protected.&] [s2; Read limit. [* Get] method returns values from buffer as long as [* ptr < rdlim].&] -[s0;3 &] -[s5;K%- [^`:`:byte^ byte]_`*wrlim&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:wrlim:%- [_^byte^ byte]_`*[* wrlim]&] [s6; Protected.&] [s2; Write limit. [* Put] method returns values from buffer as long as [* ptr < wrlim].&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]`_Put[@(64) (][@(0.0.255) int][@(64) _][@3 w][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Put`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* `_Put]([@(0.0.255) i +nt]_[*@3 w])&] [s2; Called by [* Put] method in case that output byte cannot be stored into buffer ([* ptr >`= wrlim]). If Stream wants to use buffering, this method should adjust [* buffer], [* ptr] and [* wrlim].&] [s7; [%-*C@3 w]-|Byte to store.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) int][@(64) _]`_Term[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Term`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* `_Term]()&] [s2; Called by [* Term] method in case that input byte is not in buffer ([* ptr >`= rdlim]). If Stream wants to use buffering, this method should adjust [* buffer], [* ptr] and [* rdlim].&] [s7; [*/ Return value]-|Value at current position in the stream. Current position is not advanced.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) int][@(64) _]`_Get[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Get`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* `_Get]()&] [s2; Called by [* Get] method in case that input byte is not in buffer ([* ptr >`= rdlim]). If Stream wants to use buffering, this method should adjust [* buffer], [* ptr] and [* rdlim].&] [s7; [*/ Return value]-|Value read from the stream.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]`_Put[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) vo -id][@(64) _`*][@3 data][@(64) , ][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Put`(const void`*`,dword`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* `_Put]([@(0.0.255) const]_[@(0.0.255) void]_`*[*@3 data], +[_^dword^ dword]_[*@3 size])&] [s2; Directly called by [* Put] method. Writes a block of binary data.&] [s7; [%-*C@3 data]-|Pointer to data.&] [s7; [%-*C@3 size]-|Size.&] -[s0;3 &] -[s5;K%- virtual [^`:`:dword^ dword]_`_Get[@(64) (][@(0.0.255) void][@(64) _`*][@3 data][@(64) , -][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`_Get`(void`*`,dword`):%- [@(0.0.255) virtual] [_^dword^ dword]_[* `_Get]([@(0.0.255) v +oid]_`*[*@3 data], [_^dword^ dword]_[*@3 size])&] [s2; Directly called by [* Get] method. &] [s7; [%-*C@3 data]-|&] [s7; [%-*C@3 size]-|&] [s7; [*/ Return value]-|&] -[s2; &] -[s0; Raw stream&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]Seek[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 pos][@(64) ) -]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s0;0 &] +[s5;:Stream`:`:Stream`(`):%- [* Stream]()&] +[s2; Default constructor. Sets stream into Loading serialization +mode and zero level indentation. All protected variables are +set to 0 / NULL.&] +[s3;%- &] +[s4;%- &] +[s5;:Stream`:`:Stream`(const Stream`&`):%- [* Stream]([@(0.0.255) const]_[* Stream][@(0.0.255) `& +]_[*@3 s])&] +[s2; Default copy constructor..&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:`~Stream`(`):%- [@(0.0.255) `~][* Stream]()&] +[s2; Default destructor.&] +[s3;%- &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Raw Operations]]}}&] +[s0;0%- &] +[s5;:Stream`:`:Seek`(int64`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Seek]([_^int64^ int +64]_[*@3 pos])&] [s2; Seeks to given position.&] [s7; [%-*C@3 pos]-|Position.&] -[s0;3 &] -[s5;K%- virtual [^`:`:int64^ int64]_GetSize[@(64) ()_][@(0.0.255) const]&] -[s7; [*/ Return value]-|Size of stream.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]SetSize[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 si -ze][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetSize`(`)const:%- [@(0.0.255) virtual] [_^int64^ int64]_[* GetSize]()_[@(0.0.255) c +onst]&] +[s7; [* Return value]-|Size of stream.&] +[s3; &] +[s4;%- &] +[s5;K%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetSize]([_^int64^ int64]_[*@3 size])&] [s2; Alters the size of the stream.&] [s7; [%-*C@3 size]-|New size.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]Flush[@(64) ()]&] -[s2; If stream has any internal buffers (like FileStream), writes -these bufers to OS.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]Close[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Flush`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Flush]()&] +[s2; If stream has any internal buffers (like [* FileStream]), writes +these buffers to OS.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&] [s2; Closes stream.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) bool][@(64) _]IsOpen[@(64) ()_][@(0.0.255) const][@(64) _`=_][@3 0]&] -[s7; [*/ Return value]-|true if stream is open.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]IsError[@(64) ()_][@(0.0.255) const]&] -[s7; [*/ Return value]-|true if error was encountered during stream -operations since opening it or last ClearError call `- error -code is non`-zero.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]IsOK[@(64) ()_][@(0.0.255) const]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsOpen`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) c +onst]_`=_[@3 0]&] +[s7; [* Return value]-|true if stream is open.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsError`(`)const:%- [@(0.0.255) bool]_[* IsError]()_[@(0.0.255) const]&] +[s7; [* Return value]-|true if error was encountered during stream operations +since opening it or last [* ClearError] call `- error code is non`-zero.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsOK`(`)const:%- [@(0.0.255) bool]_[* IsOK]()_[@(0.0.255) const]&] [s7; [*/ Return value]-|!IsError().&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SetError[@(64) (][@(0.0.255) int][@(64) _][@3 c][@(64) _`=_][@3 0][@(64) ) -]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetError`(int`):%- [@(0.0.255) void]_[* SetError]([@(0.0.255) int]_[*@3 c]_`=_ +[@3 0])&] [s2; Sets stream error code.&] [s7; [%-*C@3 c]-|Error code.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SetLastError[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetLastError`(`):%- [@(0.0.255) void]_[* SetLastError]()&] [s2; Sets stream error to last OS`-specific error (obtained e.g. by GetLastError call in Win32 or in errno in Posix). This error can be interpreted by GetErrorMessage function.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]GetError[@(64) ()_][@(0.0.255) const]&] +[s3; &] +[s4;%- &] +[s5;K%- [@(0.0.255) int]_[* GetError]()_[@(0.0.255) const]&] [s7; [*/ Return value]-|Current error`-code. Zero indicates no error.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]ClearError[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:ClearError`(`):%- [@(0.0.255) void]_[* ClearError]()&] [s2; Clears error code.&] -[s0;3 &] -[s5;K%- [^`:`:int64^ int64]_GetPos[@(64) ()_][@(0.0.255) const]&] +[s3; &] +[s4;%- &] +[s5;K%- [_^int64^ int64]_[* GetPos]()_[@(0.0.255) const]&] [s7; [*/ Return value]-|Current position in the stream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]IsEof[@(64) ()_][@(0.0.255) const]&] -[s7; [*/ Return value]-|There are no more byte to be read from the stream. +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsEof`(`)const:%- [@(0.0.255) bool]_[* IsEof]()_[@(0.0.255) const]&] +[s7; [* Return value]-|There are no more byte to be read from the stream. Is also true in case of error.&] -[s0;3 &] -[s5;K%- [^`:`:int64^ int64]_GetLeft[@(64) ()_][@(0.0.255) const]&] +[s3; &] +[s4;%- &] +[s5;K%- [_^int64^ int64]_[* GetLeft]()_[@(0.0.255) const]&] [s7; [*/ Return value]-|Bytes between current position and the end of stream `- equivalent to GetSize() `- GetPos().&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SeekEnd[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 rel][@(64) _ -`=_][@3 0][@(64) )]&] +[s4;%- &] +[s5;:Stream`:`:SeekEnd`(int64`):%- [@(0.0.255) void]_[* SeekEnd]([_^int64^ int64]_[*@3 rel]_`= +_[@3 0])&] [s2; Sets current position in the stream relative to the end of stream. Same as Seek(GetSize() `+ rel).&] [s7; [%-*C@3 rel]-|Position `- should be less or equal to zero.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SeekCur[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 rel][@(64) ) -]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SeekCur`(int64`):%- [@(0.0.255) void]_[* SeekCur]([_^int64^ int64]_[*@3 rel])&] [s2; Sets current position in the stream relative to the current position. Same as Seek(GetPos() `+ rel).&] [s7; [%-*C@3 rel]-|Relative offset.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put[@(64) (][@(0.0.255) int][@(64) _][@3 c][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) int]_[*@3 c])&] [s2; Puts single byte into the output stream.&] [s7; [%-*C@3 c]-|Byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Term[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Term`(`):%- [@(0.0.255) int]_[* Term]()&] [s2; Peeks byte from input stream not advancing current position. If there are no more bytes in input stream or error occurred, negative value is returned.&] [s7; [*/ Return value]-|Byte at current position in the stream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get`(`):%- [@(0.0.255) int]_[* Get]()&] [s2; Reads single byte from input stream, advancing current position. If there are no more bytes in input stream or error occurred, negative value is returned.&] [s7; [*/ Return value]-|Byte read from input stream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) void][@(64) _`* -][@3 data][@(64) , ][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(const void`*`,dword`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[@(0.0.255) v +oid]_`*[*@3 data], [_^dword^ dword]_[*@3 size])&] [s2; Writes a block of raw binary data to the output stream.&] [s7; [%-*C@3 data]-|Pointer to data.&] [s7; [%-*C@3 size]-|Number of bytes to write.&] -[s0;3 &] -[s5;K%- [^`:`:dword^ dword]_Get[@(64) (][@(0.0.255) void][@(64) _`*][@3 data][@(64) , -][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get`(void`*`,dword`):%- [_^dword^ dword]_[* Get]([@(0.0.255) void]_`*[*@3 data +], [_^dword^ dword]_[*@3 size])&] [s2; Reads a block of raw binary data from the input stream.&] [s7; [%-*C@3 data]-|Pointer to buffer to receive the data.&] [s7; [%-*C@3 size]-|Number of bytes to read.&] [s7; [*/ Return value]-|Number of bytes actually read (lower or equal to the requested [*@3 size]).&] -[s0;3 &] -[s5;K:`:`:Stream`:`:Get`(`:`:dword`):%- [^`:`:String^ String]_Get[@(64) (][^`:`:dword^@(64) d -word][@(64) _][@3 size][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get`(dword`):%- [_^String^ String]_[* Get]([_^dword^ dword]_[*@3 size])&] [s2; Reads a block of raw binary data from the input stream. The number of bytes read is the length of String.&] -[s0; &] -[s5;K%- [@(0.0.255) void][@(64) _]LoadThrowing[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:LoadThrowing`(`):%- [@(0.0.255) void]_[* LoadThrowing]()&] [s2; Sets stream into the mode that throws LoadingError exception when LoadError is invoked. This mode is typical for serialization usage of stream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]LoadError[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:LoadError`(`):%- [@(0.0.255) void]_[* LoadError]()&] [s2; Performs SetError(ERROR`_LOADING`_FAILED). If Stream set to the LoadThrowing mode (by LoadThrowing() method), LoadingError exception is thrown.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]GetAll[@(64) (][@(0.0.255) void][@(64) _`*][@3 data][@(64) , -][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetAll`(void`*`,dword`):%- [@(0.0.255) bool]_[* GetAll]([@(0.0.255) void]_`* +[*@3 data], [_^dword^ dword]_[*@3 size])&] [s2; Reads a block of raw binary data from the stream. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [%-*C@3 data]-|Pointer to buffer to receive the data.&] [s7; [%-*C@3 size]-|Number of bytes to read.&] [s7; [*/ Return value]-|true if required number of bytes was read.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get8[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get8`(`):%- [@(0.0.255) int]_[* Get8]()&] [s2; Reads a single byte from the stream. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception) `- this is the difference from Get() method.&] [s7; [*/ Return value]-|Byte from stream or `-1.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get16[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get16`(`):%- [@(0.0.255) int]_[* Get16]()&] [s2; Reads 16`-bit value from the stream in platform specific format (either little`-endian or big`-endian). If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|16`-bit value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get32[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get32`(`):%- [@(0.0.255) int]_[* Get32]()&] [s2; Reads 32`-bit value from the stream in platform specific format (either little`-endian or big`-endian). If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|32`-bit value.&] -[s0;3 &] -[s5;K%- [^`:`:int64^ int64]_Get64[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64`(`):%- [_^int64^ int64]_[* Get64]()&] [s2; Reads 64`-bit value from the stream in platform specific format (either little`-endian or big`-endian). If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|64`-bit value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get16le[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get16le`(`):%- [@(0.0.255) int]_[* Get16le]()&] [s2; Reads 16`-bit value from the stream in the little`-endian mode. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|16`-bit value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get32le[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get32le`(`):%- [@(0.0.255) int]_[* Get32le]()&] [s2; Reads 32`-bit value from the stream in the little`-endian mode. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|32`-bit value.&] -[s0;3 &] -[s5;K%- [^`:`:int64^ int64]_Get64le[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64le`(`):%- [_^int64^ int64]_[* Get64le]()&] [s2; Reads 64`-bit value from the stream in the little`-endian mode. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|64`-bit value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get16be[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get16be`(`):%- [@(0.0.255) int]_[* Get16be]()&] [s2; Reads 16`-bit value from the stream in the big`-endian mode. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|16`-bit value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]Get32be[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get32be`(`):%- [@(0.0.255) int]_[* Get32be]()&] [s2; Reads 32`-bit value from the stream in the big`-endian mode. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|32`-bit value.&] -[s0;3 &] -[s5;K%- [^`:`:int64^ int64]_Get64be[@(64) ()]&] -[s2; Reads 32`-bit value from the stream in the big`-endian mode. +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Get64be`(`):%- [_^int64^ int64]_[* Get64be]()&] +[s2; Reads 64`-bit value from the stream in the big`-endian mode. If there is not enough data in the stream, LoadError is invoked (that in turn might throw an exception).&] [s7; [*/ Return value]-|64`-bit value.&] -[s0;3 &] -[s5;K%- [^`:`:String^ String]_GetLine[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetLine`(`):%- [_^String^ String]_[* GetLine]()&] [s2; Reads single line from the stream. Line is delimited by `'`\n`' character or the end of file (or error). `'`\r`' characters are ignored.&] [s7; [*/ Return value]-|Line from the stream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) int][@(64) _]GetUtf8[@(64) ()]&] -[s2; Reads single utf`-8 encoded value from the stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetUtf8`(`):%- [@(0.0.255) int]_[* GetUtf8]()&] +[s2; Reads single Utf8 encoded value from the stream.&] [s7; [*/ Return value]-|Utf`-8 value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put16[@(64) (][^word^@(64) word][@(64) _][@3 q][@(64) )]&] -[s2; Writes 16`-bit value in platform specific format (either little`-endian -or big`-endian).&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put32[@(64) (][@(0.0.255) int][@(64) _][@3 q][@(64) )]&] -[s2; Writes 32`-bit value in platform specific format (either little`-endian -or big`-endian).&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put64[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 q][@(64) )]&] -[s2; Writes 64`-bit value in platform specific format (either little`-endian -or big`-endian).&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put16le[@(64) (][^word^@(64) word][@(64) _][@3 q][@(64) )]&] -[s2; Writes 16`-bit value in little`-endian mode.&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put32le[@(64) (][@(0.0.255) int][@(64) _][@3 q][@(64) )]&] -[s2; Writes 32`-bit value in little`-endian mode.&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put64le[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 q][@(64) )]&] -[s2; Writes 64`-bit value in little`-endian mode.&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put16be[@(64) (][^word^@(64) word][@(64) _][@3 q][@(64) )]&] -[s2; Writes 16`-bit value in big`-endian mode.&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put32be[@(64) (][@(0.0.255) int][@(64) _][@3 q][@(64) )]&] -[s2; Writes 32`-bit value in big`-endian mode.&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put64be[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 q][@(64) )]&] -[s2; Writes 64`-bit value in big`-endian mode.&] -[s7; [%-*C@3 q]-|Value to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]PutUtf8[@(64) (][@(0.0.255) int][@(64) _][@3 c][@(64) )]&] -[s2; Puts a single utf`-8 value to the stream.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put16`(word`):%- [@(0.0.255) void]_[* Put16]([_^word^ word]_[*@3 q])&] +[s2; Writes 16`-bit value [%-*@3 q ]in platform specific format (either +little`-endian or big`-endian).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put32`(dword`):%- [@(0.0.255) void]_[* Put32]([_^dword^ dword]_[*@3 q])&] +[s2; Writes 32`-bit value [%-*@3 q ]in platform specific format (either +little`-endian or big`-endian).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put64`(int64`):%- [@(0.0.255) void]_[* Put64]([_^int64^ int64]_[*@3 q])&] +[s2; Writes 64`-bit value [%-*@3 q ]in platform specific format (either +little`-endian or big`-endian).&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put16le`(word`):%- [@(0.0.255) void]_[* Put16le]([_^word^ word]_[*@3 q])&] +[s2; Writes 16`-bit value [%-*@3 q ]in little`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put32le`(dword`):%- [@(0.0.255) void]_[* Put32le]([_^dword^ dword]_[*@3 q])&] +[s2; Writes 32`-bit value [%-*@3 q ]in little`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put64le`(int64`):%- [@(0.0.255) void]_[* Put64le]([_^int64^ int64]_[*@3 q])&] +[s2; Writes 64`-bit value [%-*@3 q ]in little`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put16be`(word`):%- [@(0.0.255) void]_[* Put16be]([_^word^ word]_[*@3 q])&] +[s2; Writes 16`-bit value [%-*@3 q ]in big`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put32be`(dword`):%- [@(0.0.255) void]_[* Put32be]([_^dword^ dword]_[*@3 q])&] +[s2; Writes 32`-bit value [%-*@3 q ]in big`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put64be`(int64`):%- [@(0.0.255) void]_[* Put64be]([_^int64^ int64]_[*@3 q])&] +[s2; Writes 64`-bit value [%-*@3 q ]in big`-endian mode.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutUtf8`(int`):%- [@(0.0.255) void]_[* PutUtf8]([@(0.0.255) int]_[*@3 c])&] +[s2; Puts a single Utf8 value to the stream.&] [s7; [%-*C@3 c]-|Value.&] -[s0; &] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`* -][@3 s][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(const char`*`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 s])&] [s2; Writes zero terminated string to the stream (zero is not written).&] [s7; [%-*C@3 s]-|String to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put[@(64) (][@(0.0.255) const][@(64) _][^`:`:String^@(64) Strin -g][@(64) `&_][@3 s][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(const String`&`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) const]_[_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] [s2; Writes String to the the stream. String can contain zero characters.&] [s7; [%-*C@3 s]-|String to write.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put[@(64) (][@(0.0.255) int][@(64) _][@3 c][@(64) , -][@(0.0.255) int][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(int`,int`):%- [@(0.0.255) void]_[* Put]([@(0.0.255) int]_[*@3 c], +[@(0.0.255) int]_[*@3 count])&] [s2; Writes single byte to the stream requested number of times.&] [s7; [%-*C@3 c]-|Byte to write.&] [s7; [%-*C@3 count]-|Repeat count.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put0[@(64) (][@(0.0.255) int][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put0`(int`):%- [@(0.0.255) void]_[* Put0]([@(0.0.255) int]_[*@3 count])&] [s2; Writes zero byte to the stream requested number of times. This variation is mainly provided because Put(0, count) causes ambiguity as 0 is considered as NULL pointer too...&] [s7; [%-*C@3 count]-|Repeat count.&] -[s0; &] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]PutW[@(64) (][@(0.0.255) const][@(64) _][^`:`:wchar^@(64) wchar -][@(64) _`*][@3 s][@(64) , ][@(0.0.255) int][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutW`(const wchar`*`,int`):%- [@(0.0.255) void]_[* PutW]([@(0.0.255) const]_ +[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) int]_[*@3 count])&] [s2; Writes a specified number of wchars (16`-bit character values) to the stream in platform specific format (little`-endian or big`-endian).&] [s7; [%-*C@3 s]-|String to write.&] [s7; [%-*C@3 count]-|Length of string.&] -[s0;3 &] -[s5;K%- [^`:`:dword^ dword]_GetW[@(64) (][^`:`:wchar^@(64) wchar][@(64) _`*][@3 s][@(64) , -][@(0.0.255) int][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetW`(wchar`*`,int`):%- [_^dword^ dword]_[* GetW]([_^wchar^ wchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 count])&] [s2; Reads a specified number of wchars (16`-bit character values) from the stream in platform specific format.&] [s7; [%-*C@3 s]-|Pointer to buffer to receive wchars.&] [s7; [%-*C@3 count]-|Number of wchars.&] [s7; [*/ Return value]-|Number of wchars actually read.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]GetAllW[@(64) (][^`:`:wchar^@(64) wchar][@(64) _`*][@3 s][@(64) , - ][@(0.0.255) int][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:GetAllW`(wchar`*`,int`):%- [@(0.0.255) bool]_[* GetAllW]([_^wchar^ wchar]_`* +[*@3 s], [@(0.0.255) int]_[*@3 count])&] [s2; Reads a specified number of wchars (16`-bit character values) from the stream in platform specific format. If there is not enough data in the stream, LoadError is invoked (that in turn @@ -528,281 +602,294 @@ might throw an exception).&] [s7; [%-*C@3 s]-|&] [s7; [%-*C@3 count]-|&] [s7; [*/ Return value]-|&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]PutCrLf[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutCrLf`(`):%- [@(0.0.255) void]_[* PutCrLf]()&] [s2; Writes CR`-LF pair to the stream. &] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]PutEol[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutEol`(`):%- [@(0.0.255) void]_[* PutEol]()&] [s2; Writes platform specific `"end of line`" to the stream. It is CR`-LF pair on Win32 platform or single LF on Posix platform.&] -[s0;3 &] -[s5;K:`:`:Stream`:`:operator`<`<`(EOLenum`):%- [^`:`:Stream^ Stream]`&_operator<<[@(64) ( -][^EOLenum^@(64) EOLenum][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`<`<`(EOLenum`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator<<]( +EOLenum)&] [s2; This is the same as PutEol. EOLenum contains single value, EOL. This is operator allows more convenient way to express PutEol in the chain of << operators.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]PutLine[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ -`*][@3 s][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutLine`(const char`*`):%- [@(0.0.255) void]_[* PutLine]([@(0.0.255) const]_ +[@(0.0.255) char]_`*[*@3 s])&] [s2; Writes a line to stream `- equivalent of Put(s); PutEol();&] [s7; [%-*C@3 s]-|Zero`-terminated string.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]PutLine[@(64) (][@(0.0.255) const][@(64) _][^`:`:String^@(64) S -tring][@(64) `&_][@3 s][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:PutLine`(const String`&`):%- [@(0.0.255) void]_[* PutLine]([@(0.0.255) const +]_[_^String^ String][@(0.0.255) `&]_[*@3 s])&] [s2; Writes a line to stream `- equivalent of Put(s); PutEol();&] [s7; [%-*C@3 s]-|String.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Put[@(64) (][^`:`:Stream^@(64) Stream][@(64) `&_][@3 s][@(64) , -][^`:`:int64^@(64) int64][@(64) _][@3 size][@(64) _`=_INT64`_MAX, ][^`:`:dword^@(64) dword][@(64) _ -][@3 click][@(64) _`=_][@3 4096][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Put`(Stream`&`,int64`,dword`):%- [@(0.0.255) void]_[* Put]([_^Stream^ Stream +][@(0.0.255) `&]_[*@3 s], [_^int64^ int64]_[*@3 size]_`=_INT64`_MAX, +[_^dword^ dword]_[*@3 click]_`=_[@3 4096])&] [s2; Writes a content of specified stream to the stream.&] [s7; [%-*C@3 s]-|Input stream.&] [s7; [%-*C@3 size]-|Maximum number of bytes to write. Default value INT64`_MAX means whole input stream from current position to the end is written.&] [s7; [%-*C@3 click]-|Size of buffer used for copying.&] -[s0; Formated output&] -[s0;3 &] -[s0; Serialization support:&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SetLoading[@(64) ()]&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List: Serialization Support]]}}&] +[s0;0%- &] +[s5;:Stream`:`:SetLoading`(`):%- [@(0.0.255) void]_[* SetLoading]()&] [s2; Sets the stream into the loading mode.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SetStoring[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SetStoring`(`):%- [@(0.0.255) void]_[* SetStoring]()&] [s2; Sets the stream into the storing mode.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]IsLoading[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsLoading`(`):%- [@(0.0.255) bool]_[* IsLoading]()&] [s7; [*/ Return value]-|true if stream is in loading mode.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]IsStoring[@(64) ()]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:IsStoring`(`):%- [@(0.0.255) bool]_[* IsStoring]()&] [s7; [*/ Return value]-|true if stream is in storing mode.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SerializeRaw[@(64) (][^`:`:byte^@(64) byte][@(64) _`*][@3 data][@(64) , - ][^`:`:dword^@(64) dword][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SerializeRaw`(byte`*`,dword`):%- [@(0.0.255) void]_[* SerializeRaw]([_^byte^ b +yte]_`*[*@3 data], [_^dword^ dword]_[*@3 count])&] [s2; Serializes raw 8`-bit data. Might invoke LoadError if there is not enough data to load.&] [s7; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded data.&] [s7; [%-*C@3 count]-|Number of bytes to load/store.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SerializeRaw[@(64) (][^word^@(64) word][@(64) _`*][@3 data][@(64) , - ][^`:`:dword^@(64) dword][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SerializeRaw`(word`*`,dword`):%- [@(0.0.255) void]_[* SerializeRaw]([_^word^ w +ord]_`*[*@3 data], [_^dword^ dword]_[*@3 count])&] [s2; Serializes raw 16`-bit data. Might invoke LoadError if there is not enough data to load.&] [s7; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded data.&] [s7; [%-*C@3 count]-|Number of values to load/store.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SerializeRaw[@(64) (][^`:`:dword^@(64) dword][@(64) _`*][@3 dat -a][@(64) , ][^`:`:dword^@(64) dword][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SerializeRaw`(dword`*`,dword`):%- [@(0.0.255) void]_[* SerializeRaw]([_^dword^ d +word]_`*[*@3 data], [_^dword^ dword]_[*@3 count])&] [s2; Serializes raw 32`-bit data. Might invoke LoadError if there is not enough data to load.&] [s7; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded data.&] [s7; [%-*C@3 count]-|Number of values to load/store.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SerializeRaw[@(64) (][^`:`:uint64^@(64) uint64][@(64) _`*][@3 d -ata][@(64) , ][^`:`:dword^@(64) dword][@(64) _][@3 count][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:SerializeRaw`(uint64`*`,dword`):%- [@(0.0.255) void]_[* SerializeRaw]([_^uint64^ u +int64]_`*[*@3 data], [_^dword^ dword]_[*@3 count])&] [s2; Serializes raw 64`-bit data. Might invoke LoadError if there is not enough data to load.&] [s7; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded data.&] [s7; [%-*C@3 count]-|Number of values to load/store.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) bool][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes bool variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) char][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes char variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) signed][@(64) _][@(0.0.255) char][@(64) `& -_][@3 d][@(64) )]&] -[s2; Serializes signed char variable. Might invoke LoadError if there -is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) unsigned][@(64) _][@(0.0.255) cha -r][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes unsigned char variable. Might invoke LoadError if -there is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) short][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes short variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) unsigned][@(64) _][@(0.0.255) sho -rt][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes unsigned short variable. Might invoke LoadError if -there is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) int][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes int variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) unsigned][@(64) _][@(0.0.255) int -][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes unsigned int variable. Might invoke LoadError if -there is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) long][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes long variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) unsigned][@(64) _][@(0.0.255) lon -g][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes unsigned long variable. Might invoke LoadError if -there is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) float][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes float variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][@(0.0.255) double][@(64) `&_][@3 d][@(64) )]&] -[s2; Serializes double variable. Might invoke LoadError if there -is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][^`:`:int64^@(64) int64][@(64) `&_][@3 d][@(64) ) -]&] -[s2; Serializes int64 variable. Might invoke LoadError if there is -not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][^`:`:uint64^@(64) uint64][@(64) `&_][@3 d][@(64) ) -]&] -[s2; Serializes uint64 variable. Might invoke LoadError if there -is not enough data to load.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][^`:`:String^@(64) String][@(64) `&_][@3 s][@(64) ) -]&] -[s2; Serializes String variable. Might invoke LoadError if there -is not enough data to load or input data are invalid.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator/[@(64) (][^`:`:String^@(64) String][@(64) `&_][@3 s][@(64) ) -]&] -[s2; Serializes String variable using RLE compression and packed -format for length. Might invoke LoadError if there is not enough -data to load or input data are invalid.&] -[s7; [%-*C@3 s]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator%[@(64) (][^`:`:WString^@(64) WString][@(64) `&_][@3 s][@(64) ) -]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(bool`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) b +ool`&]_[*@3 d])&] +[s2; Serializes bool variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) c +har`&]_[*@3 d])&] +[s2; Serializes char variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(signed char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator +%]([@(0.0.255) signed]_[@(0.0.255) char`&]_[*@3 d])&] +[s2; Serializes signed char variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned char`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operat +or%]([@(0.0.255) unsigned]_[@(0.0.255) char`&]_[*@3 d])&] +[s2; Serializes unsigned char variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(short`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) s +hort`&]_[*@3 d])&] +[s2; Serializes short variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned short`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* opera +tor%]([@(0.0.255) unsigned]_[@(0.0.255) short`&]_[*@3 d])&] +[s2; Serializes unsigned short variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) i +nt`&]_[*@3 d])&] +[s2; Serializes int variable [%-*@3 d]. Might invoke LoadError if there +is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operato +r%]([@(0.0.255) unsigned]_[@(0.0.255) int`&]_[*@3 d])&] +[s2; Serializes unsigned int variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(long`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) l +ong`&]_[*@3 d])&] +[s2; Serializes long variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(unsigned long`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operat +or%]([@(0.0.255) unsigned]_[@(0.0.255) long`&]_[*@3 d])&] +[s2; Serializes unsigned long variable [%-*@3 d]. Might invoke LoadError +if there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(float`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) f +loat`&]_[*@3 d])&] +[s2; Serializes float variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(double`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([@(0.0.255) d +ouble`&]_[*@3 d])&] +[s2; Serializes double variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(int64`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^int64^ i +nt64][@(0.0.255) `&]_[*@3 d])&] +[s2; Serializes int64 variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(uint64`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^uint64^ u +int64][@(0.0.255) `&]_[*@3 d])&] +[s2; Serializes uint64 variable [%-*@3 d]. Might invoke LoadError if +there is not enough data to load. Returns [* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(String`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes String variable [%-*@3 s]. Might invoke LoadError if +there is not enough data to load or input data are invalid. Returns +[* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(String`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([_^String^ S +tring][@(0.0.255) `&]_[*@3 s])&] +[s2; Serializes String variable [%-*@3 s ]using RLE compression and +packed format for length. Might invoke LoadError if there is +not enough data to load or input data are invalid. Returns [* `*this] +for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`%`(WString`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator%]([_^WString^ W +String][@(0.0.255) `&]_[*@3 s])&] [s2; Serializes WString variable. Might invoke LoadError if there -is not enough data to load or input data are invalid.&] -[s7; [%-*C@3 d]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator/[@(64) (][^`:`:WString^@(64) WString][@(64) `&_][@3 s][@(64) ) -]&] +is not enough data to load or input data are invalid. Returns +[* `*this] for chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(WString`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([_^WString^ W +String][@(0.0.255) `&]_[*@3 s])&] [s2; Serializes String variable using RLE compression and packed format for length. Might invoke LoadError if there is not enough -data to load or input data are invalid.&] -[s7; [%-*C@3 s]-|Variable to serialize.&] -[s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][^`:`:dword^@(64) dword][@(64) `&_][@3 i][@(64) )]&] +data to load or input data are invalid. Returns [* `*this] for +chaining.&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(dword`&`):%- [@(0.0.255) void]_[* Pack]([_^dword^ dword][@(0.0.255) `&]_ +[*@3 i])&] [s2; Serializes dword value using format optimized for storing small values. Values 0..254 are stored as serializes as single byte, other values result in 5 bytes. Might invoke LoadError if there is not enough data to load or input data are invalid.&] [s7; [%-*C@3 i]-|Variable to serialize.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator/[@(64) (][@(0.0.255) int][@(64) `&_][@3 i][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operator/]([@(0.0.255) i +nt`&]_[*@3 i])&] [s2; Serializes int value using format optimized for storing small values. Might invoke LoadError if there is not enough data to load or input data are invalid.&] [s7; [%-*C@3 i]-|Variable to serialize.&] [s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [^`:`:Stream^ Stream]`&_operator/[@(64) (][@(0.0.255) unsigned][@(64) _][@(0.0.255) int -][@(64) `&_][@3 i][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:operator`/`(unsigned int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* operato +r/]([@(0.0.255) unsigned]_[@(0.0.255) int`&]_[*@3 i])&] [s2; Serializes unsigned int value using format optimized for storing small values. Might invoke LoadError if there is not enough data to load or input data are invalid.&] [s7; [%-*C@3 i]-|Variable to serialize.&] [s7; [*/ Return value]-|`*this for chaining.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Magic[@(64) (][^`:`:dword^@(64) dword][@(64) _][@3 magic][@(64) _ -`=_][@3 0][@(64) x7d674d7b)]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Magic`(dword`):%- [@(0.0.255) void]_[* Magic]([_^dword^ dword]_[*@3 magic]_`=_ +[@3 0]x7d674d7b)&] [s2; Serializes `"magic value`" to ensure stream integrity. When loading, this value is loaded and checked `- mismatch results in invoking LoadError.&] [s7; [%-*C@3 magic]-|Magic value.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 c][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 d][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 e][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 f][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 g][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 h][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) v +oid]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], +[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], +[@(0.0.255) bool`&]_[*@3 f], [@(0.0.255) bool`&]_[*@3 g], [@(0.0.255) bool`&]_[*@3 h])&] [s2; Serializes a set of boolean values compressed into single byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 c][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 d][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 e][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 f][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 g][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) v +oid]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], +[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], +[@(0.0.255) bool`&]_[*@3 f], [@(0.0.255) bool`&]_[*@3 g])&] [s2; Serializes a set of boolean values compressed into single byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 c][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 d][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 e][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 f][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) vo +id]_[* Pack]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], +[@(0.0.255) bool`&]_[*@3 c], [@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e], +[@(0.0.255) bool`&]_[*@3 f])&] [s2; Serializes a set of boolean values compressed into single byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 c][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 d][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 e][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pac +k]([@(0.0.255) bool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c], +[@(0.0.255) bool`&]_[*@3 d], [@(0.0.255) bool`&]_[*@3 e])&] [s2; Serializes a set of boolean values compressed into single byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 c][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 d][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) b +ool`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c], +[@(0.0.255) bool`&]_[*@3 d])&] [s2; Serializes a set of boolean values compressed into single byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) , ][@(0.0.255) bool][@(64) `&_][@3 c][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) boo +l`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c])&] [s2; Serializes a set of boolean values compressed into single byte.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Pack[@(64) (][@(0.0.255) bool][@(64) `&_][@3 a][@(64) , -][@(0.0.255) bool][@(64) `&_][@3 b][@(64) )]&] +[s4;%- &] +[s5;:Stream`:`:Pack`(bool`&`,bool`&`):%- [@(0.0.255) void]_[* Pack]([@(0.0.255) bool`&]_[*@3 a +], [@(0.0.255) bool`&]_[*@3 b])&] [s2; Serializes a set of boolean values compressed into single byte.&] +[s3; &] +[s0;3 &] [s0;3 &] -[s0;:`:`:Stream`:`:Stream`(`): [* Stream]()&] -[s2; Constructor. Sets stream into Loading serialization mode and -zero level indentation. All protected variables are set to 0 -/ NULL.&] [s0;3 &] -[s0;:`:`:Stream`:`:`~Stream`(`): `~[* Stream]()&] -[s2; Destructor.&] [s0;3 &] [s0;3 &] [s0;3 &]