mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-08-12 06:12:46 -06:00
1109 lines
No EOL
45 KiB
C++
1109 lines
No EOL
45 KiB
C++
topic "Streams";
|
|
[2 $$0,0#00000000000000000000000000000000:Default]
|
|
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
|
|
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
|
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
|
|
[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param]
|
|
[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item]
|
|
[*+117 $$6,6#14700283458701402223321329925657:header]
|
|
[l288;a17;*1 $$7,7#70004532496200323422659154056402:requirement]
|
|
[{_}%EN-US
|
|
[s3; Streams&]
|
|
[ {{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;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:StringStream`:`:class StringStream^1 S
|
|
tringStream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemStream`:`:class MemStream^1 MemStre
|
|
am]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemReadStream`:`:class MemReadStream^1 M
|
|
emReadStream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^1 B
|
|
ufferStream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BlockStream`:`:class BlockStream^1 Blo
|
|
ckStream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^1 FileS
|
|
tream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileIn`:`:class FileIn^1 FileIn]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileOut`:`:class FileOut^1 FileOut]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileAppend`:`:class FileAppend^1 FileA
|
|
ppend]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:SizeStream`:`:class SizeStream^1 SizeS
|
|
tream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
::l17/25r17/4t17/0b17/0@7-2 [s0; [^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:CompareStream`:`:class CompareStream^1 C
|
|
ompareStream]]
|
|
::l0/25r0/25t0/15b0/15@2-1 [s0;%- ]
|
|
:: [s0;%- ]
|
|
::r/4t/0b/0 [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]
|
|
:: [s0; ]}}&]
|
|
[s0; &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 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,
|
|
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
|
|
Stream. Therefore the implementation of some method can be considered
|
|
a part of interface definition:&]
|
|
[s0; &]
|
|
[s0; [*C@5 void Stream`::Put(int c)]&]
|
|
[s0; [*C@5 `{]&]
|
|
[s0; [*C@5 -|if(ptr < wrlim)]&]
|
|
[s0; [*C@5 -|-|`*ptr`+`+ `= c;]&]
|
|
[s0; [*C@5 -|else]&]
|
|
[s0; [*C@5 -|-|`_Put(c);]&]
|
|
[s0; [*C@5 `}]&]
|
|
[s0;*C@5 &]
|
|
[s0; [*C@5 int Stream`::Term()]&]
|
|
[s0; [*C@5 `{]&]
|
|
[s0; [*C@5 -|return ptr < rdlim ? `*ptr : `_Term();]&]
|
|
[s0; [*C@5 `}]&]
|
|
[s0;*C@5 &]
|
|
[s0; [*C@5 int Stream`::Get()]&]
|
|
[s0; [*C@5 `{]&]
|
|
[s0; [*C@5 -|return ptr < rdlim ? `*ptr`+`+ : `_Get();]&]
|
|
[s0; [*C@5 `}]&]
|
|
[s0;*C@5 &]
|
|
[s0; [*C@5 int64 Stream`::GetPos() const]&]
|
|
[s0; [*C@5 `{]&]
|
|
[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]_[@0 pos]&]
|
|
[s0;%- Protected.&]
|
|
[s2; Position of buffer in the stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:byte^ byte]_`*[@0 buffer]&]
|
|
[s0; Protected.&]
|
|
[s2; Pointer to beginning of buffer.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:byte^ byte]_`*[@0 ptr]&]
|
|
[s0; Protected.&]
|
|
[s2; Pointer to current input/output byte.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:byte^ byte]_`*[@0 rdlim]&]
|
|
[s0; Protected.&]
|
|
[s2; Read limit. [* Get] method returns values from buffer as long
|
|
as [* ptr < rdlim].&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:byte^ byte]_`*[@0 wrlim]&]
|
|
[s0; Protected.&]
|
|
[s2; Write limit. [* Put] method returns values from buffer as long
|
|
as [* ptr < wrlim].&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 `_Put]([@(0.0.255) int]_[@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].&]
|
|
[s4; [%-*C@3 w]-|Byte to store.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) int]_[@0 `_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].&]
|
|
[s4; [*/ Return value]-|Value at current position in the stream. Current
|
|
position is not advanced.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) int]_[@0 `_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].&]
|
|
[s4; [*/ Return value]-|Value read from the stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 `_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.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data.&]
|
|
[s4; [%-*C@3 size]-|Size.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [^`:`:dword^ dword]_[@0 `_Get]([@(0.0.255) void]_`*[@3 data],
|
|
[^`:`:dword^ dword]_[@3 size])&]
|
|
[s2; Directly called by [* Get] method. &]
|
|
[s4; [%-*C@3 data]-|&]
|
|
[s4; [%-*C@3 size]-|&]
|
|
[s4; [*/ Return value]-|&]
|
|
[s2; &]
|
|
[s0; Raw stream&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 Seek]([^`:`:int64^ int64]_[@3 pos])&]
|
|
[s2; Seeks to given position.&]
|
|
[s4; [%-*C@3 pos]-|Position.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [^`:`:int64^ int64]_[@0 GetSize]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|Size of stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 SetSize]([^`:`:int64^ int64]_[@3 size])&]
|
|
[s2; Alters the size of the stream.&]
|
|
[s4; [%-*C@3 size]-|New size.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 Flush]()&]
|
|
[s2; If stream has any internal buffers (like FileStream), writes
|
|
these bufers to OS.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 Close]()&]
|
|
[s2; Closes stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) bool]_[@0 IsOpen]()_[@(0.0.255) const]_`=_[@3 0]&]
|
|
[s4; [*/ Return value]-|true if stream is open.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 IsError]()_[@(0.0.255) const]&]
|
|
[s4; [*/ 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]_[@0 IsOK]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|!IsError().&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SetError]([@(0.0.255) int]_[@3 c]_`=_[@3 0])&]
|
|
[s2; Sets stream error code.&]
|
|
[s4; [%-*C@3 c]-|Error code.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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]_[@0 GetError]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|Current error`-code. Zero indicates no error.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 ClearError]()&]
|
|
[s2; Clears error code.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:int64^ int64]_[@0 GetPos]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|Current position in the stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 IsEof]()_[@(0.0.255) const]&]
|
|
[s4; [*/ 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]_[@0 GetLeft]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|Bytes between current position and the end of
|
|
stream `- equivalent to GetSize() `- GetPos().&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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).&]
|
|
[s4; [%-*C@3 rel]-|Position `- should be less or equal to zero.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SeekCur]([^`:`:int64^ int64]_[@3 rel])&]
|
|
[s2; Sets current position in the stream relative to the current
|
|
position. Same as Seek(GetPos() `+ rel).&]
|
|
[s4; [%-*C@3 rel]-|Relative offset.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put]([@(0.0.255) int]_[@3 c])&]
|
|
[s2; Puts single byte into the output stream.&]
|
|
[s4; [%-*C@3 c]-|Byte.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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.&]
|
|
[s4; [*/ Return value]-|Byte at current position in the stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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.&]
|
|
[s4; [*/ Return value]-|Byte read from input stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put]([@(0.0.255) const]_[@(0.0.255) void]_`*[@3 data],
|
|
[^`:`:dword^ dword]_[@3 size])&]
|
|
[s2; Writes a block of raw binary data to the output stream.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data.&]
|
|
[s4; [%-*C@3 size]-|Number of bytes to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:dword^ dword]_[@0 Get]([@(0.0.255) void]_`*[@3 data], [^`:`:dword^ dword]_[@3 size])
|
|
&]
|
|
[s2; Reads a block of raw binary data from the input stream.&]
|
|
[s4; [%-*C@3 data]-|Pointer to buffer to receive the data.&]
|
|
[s4; [%-*C@3 size]-|Number of bytes to read.&]
|
|
[s4; [*/ Return value]-|Number of bytes actually read (lower or equal
|
|
to the requested [*@3 size]).&]
|
|
[s0;3 &]
|
|
[s5;K:`:`:Stream`:`:Get`(`:`:dword`):%- [^`:`:String^ String]_[@0 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]_[@0 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]_[@0 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]_[@0 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).&]
|
|
[s4; [%-*C@3 data]-|Pointer to buffer to receive the data.&]
|
|
[s4; [%-*C@3 size]-|Number of bytes to read.&]
|
|
[s4; [*/ Return value]-|true if required number of bytes was read.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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.&]
|
|
[s4; [*/ Return value]-|Byte from stream or `-1.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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).&]
|
|
[s4; [*/ Return value]-|16`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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).&]
|
|
[s4; [*/ Return value]-|32`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:int64^ int64]_[@0 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).&]
|
|
[s4; [*/ Return value]-|64`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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).&]
|
|
[s4; [*/ Return value]-|16`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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).&]
|
|
[s4; [*/ Return value]-|32`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:int64^ int64]_[@0 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).&]
|
|
[s4; [*/ Return value]-|64`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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).&]
|
|
[s4; [*/ Return value]-|16`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 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).&]
|
|
[s4; [*/ Return value]-|32`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:int64^ int64]_[@0 Get64be]()&]
|
|
[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).&]
|
|
[s4; [*/ Return value]-|64`-bit value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:String^ String]_[@0 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.&]
|
|
[s4; [*/ Return value]-|Line from the stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) int]_[@0 GetUtf8]()&]
|
|
[s2; Reads single utf`-8 encoded value from the stream.&]
|
|
[s4; [*/ Return value]-|Utf`-8 value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put16]([^word^ word]_[@3 q])&]
|
|
[s2; Writes 16`-bit value in platform specific format (either little`-endian
|
|
or big`-endian).&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put32]([@(0.0.255) int]_[@3 q])&]
|
|
[s2; Writes 32`-bit value in platform specific format (either little`-endian
|
|
or big`-endian).&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put64]([^`:`:int64^ int64]_[@3 q])&]
|
|
[s2; Writes 64`-bit value in platform specific format (either little`-endian
|
|
or big`-endian).&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put16le]([^word^ word]_[@3 q])&]
|
|
[s2; Writes 16`-bit value in little`-endian mode.&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put32le]([@(0.0.255) int]_[@3 q])&]
|
|
[s2; Writes 32`-bit value in little`-endian mode.&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put64le]([^`:`:int64^ int64]_[@3 q])&]
|
|
[s2; Writes 64`-bit value in little`-endian mode.&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put16be]([^word^ word]_[@3 q])&]
|
|
[s2; Writes 16`-bit value in big`-endian mode.&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put32be]([@(0.0.255) int]_[@3 q])&]
|
|
[s2; Writes 32`-bit value in big`-endian mode.&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put64be]([^`:`:int64^ int64]_[@3 q])&]
|
|
[s2; Writes 64`-bit value in big`-endian mode.&]
|
|
[s4; [%-*C@3 q]-|Value to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 PutUtf8]([@(0.0.255) int]_[@3 c])&]
|
|
[s2; Puts a single utf`-8 value to the stream.&]
|
|
[s4; [%-*C@3 c]-|Value.&]
|
|
[s0; &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s])&]
|
|
[s2; Writes zero terminated string to the stream (zero is not written).&]
|
|
[s4; [%-*C@3 s]-|String to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 s])&]
|
|
[s2; Writes String to the the stream. String can contain zero characters.&]
|
|
[s4; [%-*C@3 s]-|String to write.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put]([@(0.0.255) int]_[@3 c], [@(0.0.255) int]_[@3 count])&]
|
|
[s2; Writes single byte to the stream requested number of times.&]
|
|
[s4; [%-*C@3 c]-|Byte to write.&]
|
|
[s4; [%-*C@3 count]-|Repeat count.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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...&]
|
|
[s4; [%-*C@3 count]-|Repeat count.&]
|
|
[s0; &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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).&]
|
|
[s4; [%-*C@3 s]-|String to write.&]
|
|
[s4; [%-*C@3 count]-|Length of string.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:dword^ dword]_[@0 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.&]
|
|
[s4; [%-*C@3 s]-|Pointer to buffer to receive wchars.&]
|
|
[s4; [%-*C@3 count]-|Number of wchars.&]
|
|
[s4; [*/ Return value]-|Number of wchars actually read.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 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
|
|
might throw an exception).&]
|
|
[s4; [%-*C@3 s]-|&]
|
|
[s4; [%-*C@3 count]-|&]
|
|
[s4; [*/ Return value]-|&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 PutCrLf]()&]
|
|
[s2; Writes CR`-LF pair to the stream. &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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]`&_[@0 operator<<]([^EOLenum^ E
|
|
OLenum])&]
|
|
[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]_[@0 PutLine]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s])&]
|
|
[s2; Writes a line to stream `- equivalent of Put(s); PutEol();&]
|
|
[s4; [%-*C@3 s]-|Zero`-terminated string.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 PutLine]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 s])&]
|
|
[s2; Writes a line to stream `- equivalent of Put(s); PutEol();&]
|
|
[s4; [%-*C@3 s]-|String.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Put]([^`:`:Stream^ Stream]`&_[@3 s], [^`:`:int64^ int64]_[@3 size]_
|
|
`=_INT64`_MAX, [^`:`:dword^ dword]_[@3 click]_`=_[@3 4096])&]
|
|
[s2; Writes a content of specified stream to the stream.&]
|
|
[s4; [%-*C@3 s]-|Input stream.&]
|
|
[s4; [%-*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.&]
|
|
[s4; [%-*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]_[@0 SetLoading]()&]
|
|
[s2; Sets the stream into the loading mode.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SetStoring]()&]
|
|
[s2; Sets the stream into the storing mode.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 IsLoading]()&]
|
|
[s4; [*/ Return value]-|true if stream is in loading mode.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 IsStoring]()&]
|
|
[s4; [*/ Return value]-|true if stream is in storing mode.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SerializeRaw]([^`:`:byte^ byte]_`*[@3 data],
|
|
[^`:`:dword^ dword]_[@3 count])&]
|
|
[s2; Serializes raw 8`-bit data. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded
|
|
data.&]
|
|
[s4; [%-*C@3 count]-|Number of bytes to load/store.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SerializeRaw]([^word^ word]_`*[@3 data], [^`:`:dword^ dword]_[@3 co
|
|
unt])&]
|
|
[s2; Serializes raw 16`-bit data. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded
|
|
data.&]
|
|
[s4; [%-*C@3 count]-|Number of values to load/store.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SerializeRaw]([^`:`:dword^ dword]_`*[@3 data],
|
|
[^`:`:dword^ dword]_[@3 count])&]
|
|
[s2; Serializes raw 32`-bit data. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded
|
|
data.&]
|
|
[s4; [%-*C@3 count]-|Number of values to load/store.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SerializeRaw]([^`:`:uint64^ uint64]_`*[@3 data],
|
|
[^`:`:dword^ dword]_[@3 count])&]
|
|
[s2; Serializes raw 64`-bit data. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data to store or buffer to receive loaded
|
|
data.&]
|
|
[s4; [%-*C@3 count]-|Number of values to load/store.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) bool]`&_[@3 d])&]
|
|
[s2; Serializes bool variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) char]`&_[@3 d])&]
|
|
[s2; Serializes char variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) signed]_[@(0.0.255) char]`&_[@3 d])&]
|
|
[s2; Serializes signed char variable. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) unsigned]_[@(0.0.255) char]`&_[@3 d])
|
|
&]
|
|
[s2; Serializes unsigned char variable. Might invoke LoadError if
|
|
there is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) short]`&_[@3 d])&]
|
|
[s2; Serializes short variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) unsigned]_[@(0.0.255) short]`&_[@3 d
|
|
])&]
|
|
[s2; Serializes unsigned short variable. Might invoke LoadError if
|
|
there is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) int]`&_[@3 d])&]
|
|
[s2; Serializes int variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) unsigned]_[@(0.0.255) int]`&_[@3 d])
|
|
&]
|
|
[s2; Serializes unsigned int variable. Might invoke LoadError if
|
|
there is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) long]`&_[@3 d])&]
|
|
[s2; Serializes long variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) unsigned]_[@(0.0.255) long]`&_[@3 d])
|
|
&]
|
|
[s2; Serializes unsigned long variable. Might invoke LoadError if
|
|
there is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) float]`&_[@3 d])&]
|
|
[s2; Serializes float variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([@(0.0.255) double]`&_[@3 d])&]
|
|
[s2; Serializes double variable. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([^`:`:int64^ int64]`&_[@3 d])&]
|
|
[s2; Serializes int64 variable. Might invoke LoadError if there is
|
|
not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([^`:`:uint64^ uint64]`&_[@3 d])&]
|
|
[s2; Serializes uint64 variable. Might invoke LoadError if there
|
|
is not enough data to load.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([^`:`:String^ String]`&_[@3 s])&]
|
|
[s2; Serializes String variable. Might invoke LoadError if there
|
|
is not enough data to load or input data are invalid.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator/]([^`:`:String^ String]`&_[@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.&]
|
|
[s4; [%-*C@3 s]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator%]([^`:`:WString^ WString]`&_[@3 s])&]
|
|
[s2; Serializes WString variable. Might invoke LoadError if there
|
|
is not enough data to load or input data are invalid.&]
|
|
[s4; [%-*C@3 d]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator/]([^`:`:WString^ WString]`&_[@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.&]
|
|
[s4; [%-*C@3 s]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Pack]([^`:`:dword^ dword]`&_[@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.&]
|
|
[s4; [%-*C@3 i]-|Variable to serialize.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator/]([@(0.0.255) int]`&_[@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.&]
|
|
[s4; [%-*C@3 i]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:Stream^ Stream]`&_[@0 operator/]([@(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.&]
|
|
[s4; [%-*C@3 i]-|Variable to serialize.&]
|
|
[s4; [*/ Return value]-|`*this for chaining.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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.&]
|
|
[s4; [%-*C@3 magic]-|Magic value.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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]_[@0 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]_[@0 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]_[@0 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])&]
|
|
[s2; Serializes a set of boolean values compressed into single byte.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 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])&]
|
|
[s2; Serializes a set of boolean values compressed into single byte.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Pack]([@(0.0.255) bool]`&_[@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]_[@0 Pack]([@(0.0.255) bool]`&_[@3 a], [@(0.0.255) bool]`&_[@3 b])&]
|
|
[s2; Serializes a set of boolean values compressed into single byte.&]
|
|
[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 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 StringStream]_:_[@(0.0.255) public]_[^`:`:Stream^ Stream]&]
|
|
[s0;* &]
|
|
[s2; StringStream is stream that uses String as storage medium.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^ S
|
|
tream]&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Open]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 data])&]
|
|
[s2;%- Sets the content of stream to specified String and sets it
|
|
into the Loading serialization mode.&]
|
|
[s4; [%-*C@3 data]-|Content of stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Create]()&]
|
|
[s2; Creates empty StringStream and sets it into Storing serialization
|
|
mode.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:String^ String]_[@0 GetResult]()&]
|
|
[s2; Returns resulting String.&]
|
|
[s4; [*/ Return value]-|Result.&]
|
|
[s0;3 &]
|
|
[s5;K%- operator_String()&]
|
|
[s4; [*/ Return value]-|GetResult().&]
|
|
[s0;3 &]
|
|
[s0;:`:`:StringStream`:`:StringStream`(`):%- [* StringStream]()&]
|
|
[s2; Consructs empty stream and sets it into Storing serialization
|
|
mode (like [* Create]).&]
|
|
[s0;3 &]
|
|
[s0;:`:`:StringStream`:`:StringStream`(const`:`:String`&`):%- [* StringStream](const_St
|
|
ring`&_[*@3 data])&]
|
|
[s2; Constructs stream with specified content and sets it into Loading
|
|
serialization mode (like [* Open]).&]
|
|
[s4; [%-*C@3 data]-|Content of stream.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 MemStream]_:_[@(0.0.255) public]_[^`:`:Stream^ Stream]&]
|
|
[s2; &]
|
|
[s2; Stream that is using raw memory as its content.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:Stream`:`:class Stream^ S
|
|
tream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:MemStream`:`:MemStream`(void`*`,int`):%- [* MemStream](void_`*[*@3 data],
|
|
int_[*@3 size])&]
|
|
[s2; Constructs [* MemStream] at specified memory buffer.&]
|
|
[s4; [%-*C@3 data]-|Pointer to the stream content.&]
|
|
[s4; [%-*C@3 size]-|Size.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 MemReadStream]_:_[@(0.0.255) public]_[^`:`:MemStream^ MemStream
|
|
]&]
|
|
[s2; &]
|
|
[s2; Read`-only stream using raw memory as content.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:MemStream`:`:class MemStream^ M
|
|
emStream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:MemReadStream`:`:MemReadStream`(const void`*`,int`):%- [* MemReadStream](const
|
|
_void_`*[*@3 data], int_[*@3 size])&]
|
|
[s2; Constructs [* MemStream] at specified memory buffer.&]
|
|
[s4; [%-*C@3 data]-|Pointer to the stream content.&]
|
|
[s4; [%-*C@3 size]-|Size.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 BlockStream]_:_[@(0.0.255) public]_[^`:`:Stream^ Stream]&]
|
|
[s2; &]
|
|
[s2; BlockStream implements operations needed to manage streams that
|
|
are able to read or write a block of data at random positon.
|
|
BlockStream provides buffered implementation of such stream.
|
|
It implements all virtual methods of Stream, with exception of
|
|
[* IsOpen] and [* Close], using new virtual methods [* Read], [* Write]
|
|
and [* SetStreamSize].&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B
|
|
ufferStream]&]
|
|
[s0;3 &]
|
|
[s0;%- enum_`{_[*@3 READ], [*@3 CREATE], [*@3 APPEND], [*@3 READWRITE], [*@3 NOWRITESHARE],
|
|
[*@3 DELETESHARE], [*@3 NOREADSHARE], [*@3 SHAREMASK]_`}&]
|
|
[s2; This enum defines basic operation modes of BlockStream (used
|
|
combined with binary or).&]
|
|
[s4;:`:`:BlockStream`:`:READ: [%-*C@3 READ]-|Read mode.&]
|
|
[s4;:`:`:BlockStream`:`:CREATE: [%-*C@3 CREATE]-|Write mode.&]
|
|
[s4;:`:`:BlockStream`:`:APPEND: [%-*C@3 APPEND]-|Append mode `- means
|
|
that initial position in the stream is at the end of it.&]
|
|
[s4;:`:`:BlockStream`:`:READWRITE: [%-*C@3 READWRITE]-|Enables subsequent
|
|
streams full access to stream.&]
|
|
[s4;:`:`:BlockStream`:`:NOWRITESHARE: [%-*C@3 NOWRITESHARE]-|Disables
|
|
subsequent streams to write to the stream.&]
|
|
[s4;:`:`:BlockStream`:`:DELETESHARE: [%-*C@3 DELETESHARE]-|Enables subsequent
|
|
streams to delete the stream.&]
|
|
[s4;:`:`:BlockStream`:`:NOREADSHARE: [%-*C@3 NOREADSHARE]-|Disables
|
|
subsequent streams to read the stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [^`:`:dword^ dword]_[@0 Read]([^`:`:int64^ int64]_[@3 at],
|
|
[@(0.0.255) void]_`*[@3 ptr], [^`:`:dword^ dword]_[@3 size])&]
|
|
[s0;%- Protected.&]
|
|
[s2; Implementation of this virtual method in derived class should
|
|
read a block of data at specified position in media.&]
|
|
[s4; [%-*C@3 at]-|Position in media.&]
|
|
[s4; [%-*C@3 ptr]-|Pointer to buffer to receive data.&]
|
|
[s4; [%-*C@3 size]-|Requested size of data.&]
|
|
[s4; [*/ Return value]-|Size of data read.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 Write]([^`:`:int64^ int64]_[@3 at],
|
|
[@(0.0.255) const]_[@(0.0.255) void]_`*[@3 data], [^`:`:dword^ dword]_[@3 size])&]
|
|
[s0; Protected.&]
|
|
[s2; Implementation of this virtual method in derived method should
|
|
write a block of data at specified position in media.&]
|
|
[s4; [%-*C@3 at]-|Position in media.&]
|
|
[s4; [%-*C@3 data]-|Pointer to data.&]
|
|
[s4; [%-*C@3 size]-|Size of data.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 SetStreamSize]([^`:`:int64^ int64]_[@3 size])&]
|
|
[s0; Protected.&]
|
|
[s2; Implementation of this virtual method in derived class should
|
|
adjust the size of media.&]
|
|
[s4; [%-*C@3 size]-|Requested new size of media.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:int64^ int64]_[@0 GetStreamSize]()_[@(0.0.255) const]&]
|
|
[s0; Protected.&]
|
|
[s2; Returns current media size. Note that this might be different
|
|
from current GetSize() `- media size adjustment can be deffered
|
|
to flushing the buffer.&]
|
|
[s4; [*/ Return value]-|Current media size.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 OpenInit]([^`:`:dword^ dword]_[@3 mode], [^`:`:int64^ int64]_[@3 fi
|
|
le`_size])&]
|
|
[s0; Protected.&]
|
|
[s2; Initializes the BlockStream to specified mode and actual media
|
|
size.&]
|
|
[s4; [%-*C@3 mode]-|Mode.&]
|
|
[s4; [%-*C@3 file`_size]-|Actual media size.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SetBufferSize]([^`:`:dword^ dword]_[@3 newsize])&]
|
|
[s2; Sets a new size of internal buffer.&]
|
|
[s4; [%-*C@3 newsize]-|The new size of buffer.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:dword^ dword]_[@0 GetBufferSize]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|Size of buffer.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 FileStream]_:_[@(0.0.255) public]_[^`:`:BlockStream^ BlockStrea
|
|
m]&]
|
|
[s2; &]
|
|
[s2; Classical file stream.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BlockStream`:`:class BlockStream^ B
|
|
lockStream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileStream`:`:FileStream`(const char`*`,`:`:dword`):%- [* FileStream](const_ch
|
|
ar_`*[*@3 filename], dword_[*@3 mode])&]
|
|
[s2; Opens file stream in specified mode (as defined in BlockStream).&]
|
|
[s4; [%-*C@3 filename]-|The name of the file.&]
|
|
[s4; [%-*C@3 mode]-|Open mode.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileStream`:`:FileStream`(const char`*`,`:`:dword`,mode`_t`):%- [* FileStream](
|
|
const_char_`*[*@3 filename], dword_[*@3 mode], mode`_t_[*@3 acm]_`=_[@3 0644])&]
|
|
[s0;%- Posix specific.&]
|
|
[s2; Opens file stream in specified mode (as defined in BlockStream)
|
|
and specific POSIX access rights.&]
|
|
[s4; [%-*C@3 filename]-|The name of the file.&]
|
|
[s4; [%-*C@3 mode]-|Open mode.&]
|
|
[s4; [%-*C@3 acm]-|Access rights.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileStream`:`:FileStream`(int`):%- [* FileStream](int_[*@3 std`_handle])&]
|
|
[s0; Posix specific.&]
|
|
[s2; Assigns existing file handle to FileStream.&]
|
|
[s4; [%-*C@3 std`_handle]-|File handle of open file. FileStream takes
|
|
ownership of this handle.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileStream`:`:FileStream`(`):%- [* FileStream]()&]
|
|
[s2; Creates empty unopened FileStream.&]
|
|
[s0;3 &]
|
|
[s5;K%- operator_[@(0.0.255) bool]()_[@(0.0.255) const]&]
|
|
[s4; [*/ Return value]-|True if stream is open.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^`:`:FileTime^ FileTime]_[@0 GetTime]()_[@(0.0.255) const]&]
|
|
[s2; Returns last`-write time of stream.&]
|
|
[s4; [*/ Return value]-|Time.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 SetTime]([@(0.0.255) const]_[^`:`:FileTime^ FileTime]`&_[@3 tm])&]
|
|
[s2; Opens file stream in specified mode (as defined in BlockStream).&]
|
|
[s4; [%-*C@3 filename]-|The name of the file.&]
|
|
[s2; [%-*C@3 mode]-|Open mode.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 Open]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 filename],
|
|
[^`:`:dword^ dword]_[@3 mode], [^mode`_t^ mode`_t]_[@3 acm]_`=_[@3 0644])&]
|
|
[s0;%- Posix specific.&]
|
|
[s2; Opens file stream in specified mode (as defined in BlockStream)
|
|
and specific POSIX access rights.&]
|
|
[s4; [%-*C@3 filename]-|The name of the file.&]
|
|
[s4; [%-*C@3 mode]-|Open mode.&]
|
|
[s2; [%-*C@3 acm]-|Access rights.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^HANDLE^ HANDLE]_[@0 GetHandle]()_[@(0.0.255) const]&]
|
|
[s0; Win32 specific.&]
|
|
[s4; [*/ Return value]-|File handle.&]
|
|
[s0;3 &]
|
|
[s5;K%- [^HANDLE^ HANDLE]_[@0 GetHandle]()_[@(0.0.255) const]&]
|
|
[s0; Posix specific.&]
|
|
[s4; [*/ Return value]-|File handle.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 FileIn]_:_[@(0.0.255) public]_[^`:`:FileStream^ FileStream]&]
|
|
[s2; &]
|
|
[s2; Simple helper class that represents FileStream in read mode.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F
|
|
ileStream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileIn`:`:FileIn`(const char`*`):%- [* FileIn](const_char_`*[*@3 fn])&]
|
|
[s2; Opens file for reading.&]
|
|
[s4; [%-*C@3 fn]-|File name.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileIn`:`:FileIn`(`):%- [* FileIn]()&]
|
|
[s2; Constructs empty FileStream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 Open]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 fn])&]
|
|
[s2; Opens file for reading.&]
|
|
[s4; [%-*C@3 fn]-|File name.&]
|
|
[s4; [*/ Return value]-|True if open was successful.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 FileOut]_:_[@(0.0.255) public]_[^`:`:FileStream^ FileStream]&]
|
|
[s2; &]
|
|
[s2; Simple helper class that represents FileStream in write mode.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F
|
|
ileStream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileOut`:`:FileOut`(const char`*`):%- [* FileOut](const_char_`*[*@3 fn])&]
|
|
[s2; Opens file for writing.&]
|
|
[s4; [%-*C@3 fn]-|File name.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileOut`:`:FileOut`(`):%- [* FileOut]()&]
|
|
[s2;%- Constructs non`-opened FileStream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 Open]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 fn],
|
|
[^mode`_t^ mode`_t]_[@3 acm]_`=_[@3 0644])&]
|
|
[s2; Opens file for writing.&]
|
|
[s4; [%-*C@3 fn]-|File name.&]
|
|
[s4; [*/ Return value]-|True if open was successful.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 FileAppend]_:_[@(0.0.255) public]_[^`:`:FileStream^ FileStream]&]
|
|
[s2; &]
|
|
[s2; Simple helper class that represents FileStream in append mode
|
|
`- that in fact means in write mode with current position at
|
|
the end of the file.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ]FileStream&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileAppend`:`:FileAppend`(const char`*`):%- [* FileAppend](const_char_`*[*@3 fn])
|
|
&]
|
|
[s2; Opens file in append mode.&]
|
|
[s4; [%-*C@3 fn]-|File name.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:FileAppend`:`:FileAppend`(`):%- [* FileAppend]()&]
|
|
[s2; Constructs empty FileStream.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 Open]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 fn])&]
|
|
[s2; Opens file in append mode.&]
|
|
[s4; [%-*C@3 fn]-|File name.&]
|
|
[s4; [*/ Return value]-|true when Open was successful.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 SizeStream]_:_[@(0.0.255) public]_[^`:`:Stream^ Stream]&]
|
|
[s2; &]
|
|
[s2; Special output stream that in fact does not store output data,
|
|
only counts the total number of bytes written.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B
|
|
ufferStream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:SizeStream`:`:SizeStream`(`):%- [* SizeStream]()&]
|
|
[s2; Constructor `- co&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 `_Put]([@(0.0.255) int]_[@3 w])&]
|
|
[s4; [*/ Return value]-|Current number of bytes written.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) void]_[@0 Open]()&]
|
|
[s2; Reopens data `- resets the counter of output bytes.&]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) class]_[@0 CompareStream]_:_[@(0.0.255) public]_[^`:`:Stream^ Stream]&]
|
|
[s2; &]
|
|
[s2; Special output stream that instead of storing data performs
|
|
their comparison to the data of another stream.&]
|
|
[s2; &]
|
|
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B
|
|
ufferStream]&]
|
|
[s0;3 &]
|
|
[s0;:`:`:CompareStream`:`:CompareStream`(`):%- [* CompareStream]()&]
|
|
[s2; Constructs closed CompareStream.&]
|
|
[s0;3 &]
|
|
[s0;:`:`:CompareStream`:`:CompareStream`(`:`:Stream`&`):%- [* CompareStream](Stream`&_[*@3 a
|
|
Stream])&]
|
|
[s2; Constructors CompareStream opened for comparison with specified
|
|
stream.&]
|
|
[s4; [%-*C@3 aStream]-|Stream to compare with.&]
|
|
[s0;3 &]
|
|
[s5;K%- virtual [@(0.0.255) void]_[@0 `_Put]([@(0.0.255) int]_[@3 w])&]
|
|
[s2; Opens CompareStream for comparison with the specified stream.&]
|
|
[s4; [%-*C@3 aStream]-|Stream to compare with.&]
|
|
[s0;3 &]
|
|
[s5;K%- [@(0.0.255) bool]_[@0 IsEqual]()&]
|
|
[s4; [*/ Return value]-|true if all bytes written so far match those
|
|
in comparison stream.&]
|
|
[s0;3 &]
|
|
[s5;K%- operator_[@(0.0.255) bool]()&]
|
|
[s4; [*/ Return value]-|IsEqual().&]
|
|
[s0; ] |