From c39f8f40addd410124677cd24db6c012f05a9ef1 Mon Sep 17 00:00:00 2001 From: cbpporter Date: Fri, 29 Jan 2010 22:32:32 +0000 Subject: [PATCH] Documentation update git-svn-id: svn://ultimatepp.org/upp/trunk@1984 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/src.tpp/AIndex$en-us.tpp | 3 +- uppsrc/Core/src.tpp/AMap$en-us.tpp | 3 +- uppsrc/Core/src.tpp/AProcess$en-us.tpp | 17 +- uppsrc/Core/src.tpp/Any$en-us.tpp | 5 +- uppsrc/Core/src.tpp/AppEnv$en-us.tpp | 30 ++- uppsrc/Core/src.tpp/Array$en-us.tpp | 3 +- uppsrc/Core/src.tpp/ArrayIndex$en-us.tpp | 3 +- uppsrc/Core/src.tpp/ArrayMap$en-us.tpp | 3 +- uppsrc/Core/src.tpp/BiArray$en-us.tpp | 3 +- uppsrc/Core/src.tpp/BiVector$en-us.tpp | 7 +- uppsrc/Core/src.tpp/Buffer$en-us.tpp | 3 +- uppsrc/Core/src.tpp/CParser$en-us.tpp | 6 + uppsrc/Core/src.tpp/CharSet$en-us.tpp | 8 +- uppsrc/Core/src.tpp/CoWork$en-us.tpp | 10 +- uppsrc/Core/src.tpp/Color$en-us.tpp | 11 - .../Core/src.tpp/ConditionVariable$en-us.tpp | 9 +- uppsrc/Core/src.tpp/Convert$en-us.tpp | 3 +- uppsrc/Core/src.tpp/DateFmt$en-us.tpp | 4 +- uppsrc/Core/src.tpp/Exc$en-us.tpp | 8 +- uppsrc/Core/src.tpp/FindFile$en-us.tpp | 8 +- uppsrc/Core/src.tpp/Format$en-us.tpp | 2 +- uppsrc/Core/src.tpp/FormatFn$en-us.tpp | 5 +- uppsrc/Core/src.tpp/Indext$en-us.tpp | 7 +- uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp | 11 +- uppsrc/Core/src.tpp/MathUtil$en-us.tpp | 12 +- uppsrc/Core/src.tpp/Mt$en-us.tpp | 33 +-- uppsrc/Core/src.tpp/Mutex$en-us.tpp | 14 +- uppsrc/Core/src.tpp/NetNode$en-us.tpp | 6 +- uppsrc/Core/src.tpp/One$en-us.tpp | 250 +++++++++--------- uppsrc/Core/src.tpp/Path$en-us.tpp | 13 +- uppsrc/Core/src.tpp/Point$en-us.tpp | 7 +- uppsrc/Core/src.tpp/PtePtr$en-us.tpp | 2 +- uppsrc/Core/src.tpp/RWMutex$en-us.tpp | 27 +- uppsrc/Core/src.tpp/Rect$en-us.tpp | 10 +- uppsrc/Core/src.tpp/Segtor$en-us.tpp | 3 +- uppsrc/Core/src.tpp/Semaphore$en-us.tpp | 10 +- uppsrc/Core/src.tpp/Size$en-us.tpp | 9 +- uppsrc/Core/src.tpp/Stream$en-us.tpp | 196 ++++++++------ uppsrc/Core/src.tpp/String$en-us.tpp | 89 +++++-- uppsrc/Core/src.tpp/Thread$en-us.tpp | 3 +- uppsrc/Core/src.tpp/Vector$en-us.tpp | 3 +- uppsrc/Core/src.tpp/VectorMap$en-us.tpp | 3 +- uppsrc/Core/src.tpp/XmlNode$en-us.tpp | 17 +- uppsrc/Core/src.tpp/XmlOutput$en-us.tpp | 9 +- uppsrc/Core/src.tpp/XmlParser$en-us.tpp | 8 +- uppsrc/Core/src.tpp/algo$en-us.tpp | 14 +- 46 files changed, 524 insertions(+), 386 deletions(-) diff --git a/uppsrc/Core/src.tpp/AIndex$en-us.tpp b/uppsrc/Core/src.tpp/AIndex$en-us.tpp index f0ede50cd..c665dd801 100644 --- a/uppsrc/Core/src.tpp/AIndex$en-us.tpp +++ b/uppsrc/Core/src.tpp/AIndex$en-us.tpp @@ -10,7 +10,8 @@ topic "AIndex"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;i448;a25;kKO9; [*@3;4 AIndex]&] +[ {{10000@(113.42.0) [s0; [*@7;4 AIndex]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 V][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][@(0.0.255)3 >]&] [s1;:AIndex`:`:class:%- [@(0.0.255) class]_[* AIndex]&] diff --git a/uppsrc/Core/src.tpp/AMap$en-us.tpp b/uppsrc/Core/src.tpp/AMap$en-us.tpp index e13628847..8961c3979 100644 --- a/uppsrc/Core/src.tpp/AMap$en-us.tpp +++ b/uppsrc/Core/src.tpp/AMap$en-us.tpp @@ -10,7 +10,8 @@ topic "AMap"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s5; [*@3;4 AMap]&] +[ {{10000@(113.42.0) [s0; [*@7;4 AMap]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , ][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 V][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][@(0.0.255)3 >]&] diff --git a/uppsrc/Core/src.tpp/AProcess$en-us.tpp b/uppsrc/Core/src.tpp/AProcess$en-us.tpp index 7b761f260..ca5778cf5 100644 --- a/uppsrc/Core/src.tpp/AProcess$en-us.tpp +++ b/uppsrc/Core/src.tpp/AProcess$en-us.tpp @@ -11,15 +11,16 @@ topic "AProcess and LocalProcess"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 AProcess]]}}&] -[s4;H0; &] +[s3; &] [s1;:AProcess`:`:struct: [@(0.0.255)3 struct][3 _][*3 AProcess][3 _:_][@(0.0.255)3 public][3 _][*@3;3 N oCopy]&] -[s2;%% This is an abstract class that represent a controlled child +[s9;%% This is an abstract class that represent a controlled child process. Client code can communicate with such process by supplying standard input and reading standard output. Note that while LocalProcess implements AProcess for host OS, some other derived class might choose to e.g. represent a process on remote system.&] -[s3; &] +[s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s4;H0; &] [s5;:AProcess`:`:Kill`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* Kill]()_`=_[@3 0]&] @@ -58,14 +59,14 @@ output of process. If anything went wrong, returns String`::GetVoid().&] [s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 LocalProcess]]}}&] -[s4;H0; &] +[s3; &] [s1;:LocalProcess`:`:class: [@(0.0.255)3 class][3 _][*3 LocalProcess][3 _:_][@(0.0.255)3 public][3 _ ][*@3;3 AProcess]&] -[s2;%% This class implements a child process of host operating system.&] +[s9;%% This class implements a child process of host operating system.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3;%% &] -[s4;H0; &] [s5;:LocalProcess`:`:Start`(const char`*`,const char`*`): [@(0.0.255) bool]_[* Start]([@(0.0.255) c onst]_[@(0.0.255) char]_`*[*@3 cmdline], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 envptr ]_`=_NULL)&] @@ -73,6 +74,7 @@ onst]_[@(0.0.255) char]_`*[*@3 cmdline], [@(0.0.255) const]_[@(0.0.255) char]_`* ]can provide a new environment for the process, if NULL, then the new process inherits caller`'s environment.&] [s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] [s4;H0; &] [s5;:LocalProcess`:`:LocalProcess`(`): [* LocalProcess]()&] @@ -87,7 +89,7 @@ onst]_[@(0.0.255) char]_`*[*@3 cmdline], [@(0.0.255) const]_[@(0.0.255) char]_`* [s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 Global functions related to LocalProcess]]}}&] -[s4;H0; &] +[s3; &] [s5;:Sys`(const char`*`,String`&`): [@(0.0.255) int]_[* Sys]([@(0.0.255) const]_[@(0.0.255) c har]_`*[*@3 cmd], [_^String^ String][@(0.0.255) `&]_[*@3 output])&] [s2;%% Runs process defined by [%-*@3 cmd] command line, returns its @@ -100,4 +102,5 @@ md])&] [s2;%% Runs process defined by [%-*@3 cmd] command line. If [%-*@3 cmd] was executed successfully and returned zero exit code, returns its standard output, otherwise returns String`::GetVoid().&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Any$en-us.tpp b/uppsrc/Core/src.tpp/Any$en-us.tpp index 2121d550f..520a31ec9 100644 --- a/uppsrc/Core/src.tpp/Any$en-us.tpp +++ b/uppsrc/Core/src.tpp/Any$en-us.tpp @@ -10,10 +10,11 @@ topic "Any"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s1;:Any`:`:class:%- [*@3;4 Any]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Any]]}}&] +[s3;%- &] [s1;:Any`:`:class:%- [@(0.0.255) class]_[* Any]_:_[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) < ][* Any][@(0.0.255) >]&] -[s0; Any is a special type of container capable of containing none +[s9; Any is a special type of container capable of containing none or single element of [/ any] type. It also provides methods for querying the type stored and retrieving the content of specific type.&] diff --git a/uppsrc/Core/src.tpp/AppEnv$en-us.tpp b/uppsrc/Core/src.tpp/AppEnv$en-us.tpp index 36dd50efc..ae2fe68b0 100644 --- a/uppsrc/Core/src.tpp/AppEnv$en-us.tpp +++ b/uppsrc/Core/src.tpp/AppEnv$en-us.tpp @@ -10,14 +10,10 @@ topic "Application & environment utility"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s0;%% [@3;4 Application `& environment utility]&] -[s0;%% A number of utility functions to obtain information about +[ {{10000@(113.42.0) [s0;%% [*@7;4 Application `& environment utility]]}}&] +[s9;%% A number of utility functions to obtain information about your application and system environment.&] -[s0;+80%% &] -[s0;%% [* Implemented in:]&] -[s0; [%% -|]Core`\App.[@(0.0.255) h]&] -[s0; -|Core`\App.[@(0.0.255) cpp]&] -[s3;%% &] +[s3; &] [s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Function List]]}}&] [s3; &] @@ -140,5 +136,25 @@ onst]_[@(0.0.255) char]_`*[*@3 dir])&] [s2;%% Sets the current user`'s home folder.&] [s2;%% [*@(129.0.0) dir]................................................the URL that will be opened in the browser&] +[s3;%% &] +[s4; &] +[s5;:CpuMMX`(`): [@(0.0.255) bool]_[* CpuMMX]()&] +[s2;%% Returns true if CPU has MMX support.&] +[s3; &] +[s4; &] +[s5;:CpuSSE`(`): [@(0.0.255) bool]_[* CpuSSE]()&] +[s2;%% Returns true if CPU has SSE support.&] +[s3; &] +[s4; &] +[s5;:CpuSSE2`(`): [@(0.0.255) bool]_[* CpuSSE2]()&] +[s2;%% Returns true if CPU has SSE2 support.&] +[s3; &] +[s4; &] +[s5;:CpuSSE3`(`): [@(0.0.255) bool]_[* CpuSSE3]()&] +[s2;%% Returns true if CPU has SSE3 support.&] +[s3; &] +[s4; &] +[s5;:CPU`_Cores`(`): [@(0.0.255) int]_[* CPU`_Cores]()&] +[s2;%% Returns the number of cores the CPU has.&] [s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Array$en-us.tpp b/uppsrc/Core/src.tpp/Array$en-us.tpp index e01420a8d..600d64d5e 100644 --- a/uppsrc/Core/src.tpp/Array$en-us.tpp +++ b/uppsrc/Core/src.tpp/Array$en-us.tpp @@ -10,7 +10,8 @@ topic "Array"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;i448;a25;kKO9;%- [*@3;4 Array]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Array]]}}&] +[s3;%- &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:Array`:`:class:%- [@(0.0.255) class]_[* Array]_:_[@(0.0.255) public]_[*@3 MoveableAndDeep CopyOption][@(0.0.255) <]_[* Array][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] diff --git a/uppsrc/Core/src.tpp/ArrayIndex$en-us.tpp b/uppsrc/Core/src.tpp/ArrayIndex$en-us.tpp index 47afe154c..49d349417 100644 --- a/uppsrc/Core/src.tpp/ArrayIndex$en-us.tpp +++ b/uppsrc/Core/src.tpp/ArrayIndex$en-us.tpp @@ -10,7 +10,8 @@ topic "ArrayIndex"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s1; [*@3;4 ArrayIndex]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 ArrayIndex]]}}&] +[s3; &] [s1;:noref: [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 HashFn]_ `=_StdHash[@(0.0.255) <][*@4 T][@(0.0.255) >]_>&] [s1;:ArrayIndex`:`:class: [@(0.0.255) class]_[* ArrayIndex]_:_[@(0.0.255) private]_[*@3 Moveab diff --git a/uppsrc/Core/src.tpp/ArrayMap$en-us.tpp b/uppsrc/Core/src.tpp/ArrayMap$en-us.tpp index 4dba73590..68d106882 100644 --- a/uppsrc/Core/src.tpp/ArrayMap$en-us.tpp +++ b/uppsrc/Core/src.tpp/ArrayMap$en-us.tpp @@ -10,7 +10,8 @@ topic "ArrayMap"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;:`:`:ArrayMap`:`:class: [*@3;4 ArrayMap]&] +[ {{10000@(113.42.0) [s0; [*@7;4 ArrayMap]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , ][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 < ][*@4;3 K][@(0.0.255)3 >][3 _>]&] diff --git a/uppsrc/Core/src.tpp/BiArray$en-us.tpp b/uppsrc/Core/src.tpp/BiArray$en-us.tpp index 8c0b06192..ebdb8858f 100644 --- a/uppsrc/Core/src.tpp/BiArray$en-us.tpp +++ b/uppsrc/Core/src.tpp/BiArray$en-us.tpp @@ -10,7 +10,8 @@ topic "BiArray"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;~~~64; [*@3;4 BiArray]&] +[ {{10000@(113.42.0) [s0; [*@7;4 BiArray]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:BiArray`:`:class:%- [@(0.0.255) class]_[* BiArray]_:_[@(0.0.255) private]_[*@3 MoveableAn dDeepCopyOption][@(0.0.255) <]_[* BiArray][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] diff --git a/uppsrc/Core/src.tpp/BiVector$en-us.tpp b/uppsrc/Core/src.tpp/BiVector$en-us.tpp index 741a067a1..567242168 100644 --- a/uppsrc/Core/src.tpp/BiVector$en-us.tpp +++ b/uppsrc/Core/src.tpp/BiVector$en-us.tpp @@ -10,7 +10,8 @@ topic "BiVector"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;~~~64; [*@3;4 BiVector]&] +[ {{10000@(113.42.0) [s0; [*@7;4 BiVector]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:BiVector`:`:class:%- [@(0.0.255) class]_[* BiVector]_:_[@(0.0.255) private]_[*@3 Moveable AndDeepCopyOption][@(0.0.255) <]_[* BiVector][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] @@ -57,7 +58,7 @@ Vector][@(0.0.255) `&]_[*@3 src], [@(0.0.255) int])&] [s2; Default destructor. Invokes the destructor of every element in the BiVector.&] [s3;%- &] -[s0;i448;a25;kKO9;:noref:@(0.0.255)%- &] +[s0;i448;a25;kKO9;@(0.0.255)%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] [s3;%- &] [s5;:BiVector`:`:AddHead`(`):%- [*@4 T][@(0.0.255) `&]_[* AddHead]()&] @@ -252,7 +253,7 @@ is that [* pos] is range checked in debug mode.&] [s2; Specialization of the generic [* Swap] for BiVectors. Swaps BiVectors in low constant time operation.&] [s3; &] -[s0;i448;a25;kKO9;:noref:@(0.0.255)%- &] +[s0;i448;a25;kKO9;@(0.0.255)%- &] [ {{10000F(128)G(128)@1 [s0; [* Global Operators]]}}&] [s3; &] [s0;:friend BiVector`& operator`<`<`(BiVector`& b`, const T`& x`): friend diff --git a/uppsrc/Core/src.tpp/Buffer$en-us.tpp b/uppsrc/Core/src.tpp/Buffer$en-us.tpp index 4cba3efbd..30d62f1d2 100644 --- a/uppsrc/Core/src.tpp/Buffer$en-us.tpp +++ b/uppsrc/Core/src.tpp/Buffer$en-us.tpp @@ -10,7 +10,8 @@ topic "Buffer"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Buffer]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Buffer]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] [s1;:Buffer`:`:class:%- [@(0.0.255) class]_[* Buffer]_:_[@(0.0.255) private]_[*@3 Moveable][@(0.0.255) < ]_[* Buffer][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] diff --git a/uppsrc/Core/src.tpp/CParser$en-us.tpp b/uppsrc/Core/src.tpp/CParser$en-us.tpp index 453ecb408..8a9816132 100644 --- a/uppsrc/Core/src.tpp/CParser$en-us.tpp +++ b/uppsrc/Core/src.tpp/CParser$en-us.tpp @@ -351,6 +351,8 @@ nst]&] [s2;%- Returns the actual filename.&] [s3; &] [s0; &] +[s0; &] +[s0; &] [ {{10000@(113.42.0) [s0; [*@7;4 CParser`::Error]]}}&] [s3;%- &] [s1;:CParser`:`:Error`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Error][3 _:_][@(0.0.255)3 public @@ -374,6 +376,8 @@ tring] with error description.&] [s2;%- [%% Construct an ][%%* Error][%% with ][*@3 desc] as an error message.&] [s3; &] [s0; &] +[s0; &] +[s0; &] [ {{10000@(113.42.0) [s0; [*@7;4 CParser`::Pos]]}}&] [s3; &] [s1;:CParser`:`:Pos`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Pos]&] @@ -406,6 +410,8 @@ tring]_[* fn]&] [s2; Filename.&] [s3; &] [s0; &] +[s0; &] +[s0; &] [ {{10000@(113.42.0) [s0; [*@7;4 C`-like string literal formatting]]}}&] [s3; &] [s0; [* AsCString] routines produce C`-like literals (compatible with diff --git a/uppsrc/Core/src.tpp/CharSet$en-us.tpp b/uppsrc/Core/src.tpp/CharSet$en-us.tpp index d19253180..64b21fa0a 100644 --- a/uppsrc/Core/src.tpp/CharSet$en-us.tpp +++ b/uppsrc/Core/src.tpp/CharSet$en-us.tpp @@ -11,8 +11,7 @@ topic "Character set support"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 Character set support]]}}&] -[s0;i448;a25;kKO9;@(0.0.255) &] -[s0;%% While in ideal world every text resource would be encoded +[s9;%% While in ideal world every text resource would be encoded in Unicode or UTF`-8, in practice we have to deal with many 8`-bit encodings. U`+`+ has [^topic`:`/`/Core`/src`/CharSet`$en`-us`#AddCharSet`(const char`*`,const word`*`,byte`)^ e xtensible] support for various encoding (charsets). It directly @@ -45,8 +44,7 @@ defines following constants to express charset (names are self`-explanatory):&] [s0; [* CHARSET`_CP852]&] [s0; [* CHARSET`_MJK]&] [s0; [* CHARSET`_CP850]]}}&] -[s5;* &] -[s0; There are also some special charset values&] +[s9; There are also some special charset values&] [s0; &] [s5;:CHARSET`_DEFAULT: [* CHARSET`_DEFAULT]&] [s2;%% Represents `"default`" charset. Default charset can be set @@ -68,6 +66,7 @@ value of parameter). Guaranteed to be equal to 0.&] [s2;%% This special value is used as result of conversion in place of characters that do not exist in target charset.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Function List]]}}&] [s3;^byte^ &] [s5;:GetDefaultCharset`(`): [_^byte^ byte]_[* GetDefaultCharset]()&] @@ -687,4 +686,5 @@ true on success.&] ]_[*@3 data])&] [s2; Saves 8`-bit string in default encoding to the file. Returns true on success.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/CoWork$en-us.tpp b/uppsrc/Core/src.tpp/CoWork$en-us.tpp index 8bbc8ab51..48dc95d19 100644 --- a/uppsrc/Core/src.tpp/CoWork$en-us.tpp +++ b/uppsrc/Core/src.tpp/CoWork$en-us.tpp @@ -11,9 +11,9 @@ topic "CoWork"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 CoWork]]}}&] -[s4; &] +[s3; &] [s1;:CoWork`:`:class: [@(0.0.255)3 class][3 _][*3 CoWork]&] -[s2;%% This class is indented as loop`-parallelization tool. Whenever +[s9;%% This class is indented as loop`-parallelization tool. Whenever loop iterations are independent (they do not share any data), CoWork can be used to relatively easily spawn loop iterations over thread and thus over CPU cores. CoWork works with fixed`-size @@ -23,9 +23,9 @@ or destroyed during normal work. Nesting of CoWork instances is also possible. Of course, not only loop iterations can be parallelized, whenever there are two or more actions that can run in parallel, you can use CoWork.&] -[s2;%% &] -[s2;%% Single`-threaded implementation simply performs all actions +[s9;%% Single`-threaded implementation simply performs all actions submitted by Do in sequence.&] +[s3;%% &] [s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s4;H0; &] @@ -42,10 +42,10 @@ allback]_[*@3 cb])&] [s2;%% Waits until all jobs submitted using Do (or operator`&) are finished.&] [s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Destructor detail]]}}&] [s3; &] [s5;:CoWork`:`:`~CoWork`(`): [@(0.0.255) `~][* CoWork]()&] [s2;%% Invokes Finish().&] [s3; &] -[s4;H0; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Color$en-us.tpp b/uppsrc/Core/src.tpp/Color$en-us.tpp index 9e7d05bf5..a8623c8df 100644 --- a/uppsrc/Core/src.tpp/Color$en-us.tpp +++ b/uppsrc/Core/src.tpp/Color$en-us.tpp @@ -148,17 +148,6 @@ etRaw]().&] [s2; Returns a RGBA structure containing the color information.&] [s3;%- &] [s0; &] -[s0;3 &] -[s0;:`:`:GrayColor`:`:struct:%- struct_[* GrayColor]&] -[s2; &] -[s2; This simple utility class provides constructor that sets all -components to the same value producing the gray color.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ]Color&] -[s0; &] -[s0;:`:`:GrayColor`:`:GrayColor`(int`):%- [* GrayColor](int_[*@3 level])&] -[s2; Constructor.&] -[s7; [%-*C@3 level]-|Gray intensity.&] [s0; &] [s0;%- &] [ {{10000@(113.42.0) [s0; [*@(229)4 Utility functions]]}}&] diff --git a/uppsrc/Core/src.tpp/ConditionVariable$en-us.tpp b/uppsrc/Core/src.tpp/ConditionVariable$en-us.tpp index c620ebcc5..6b4829050 100644 --- a/uppsrc/Core/src.tpp/ConditionVariable$en-us.tpp +++ b/uppsrc/Core/src.tpp/ConditionVariable$en-us.tpp @@ -13,11 +13,12 @@ topic "ConditionVariable"; [ {{10000t/25b/25@(113.42.0) [s0; [*@7;4 ConditionVariable]]}}&] [s3; &] [s1;:ConditionVariable`:`:class: [@(0.0.255)3 class][3 _][*3 ConditionVariable]&] -[s2;%% ConditionVariable allows threads to suspend execution (using +[s9;%% ConditionVariable allows threads to suspend execution (using Wait) until they are awaken by another thread (using Signal or Broadcast methods). ConditionVariable has associated Mutex to avoid possible race conditions when entering suspended state.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:ConditionVariable`:`:Wait`(Mutex`&`): [@(0.0.255) void]_[* Wait]([_^Mutex^ Mutex][@(0.0.255) `& @@ -34,17 +35,18 @@ and reacquires ][*@3 m].&] [s4;%% &] [s5;:ConditionVariable`:`:Broadcast`(`): [@(0.0.255) void]_[* Broadcast]()&] [s2;%% Resumes execution of all currently waiting threads.&] -[s0;%% &] +[s3;%% &] [s0;3 &] [ {{10000t/25b/25@(113.42.0) [s0; [*@7;4 StaticConditionVariable]]}}&] [s3;%% &] [s1;:StaticConditionVariable`:`:class: [@(0.0.255)3 class][3 _][*3 StaticConditionVariable]&] -[s2; Variant of ConditionVariable that can be used as static or global +[s9; Variant of ConditionVariable that can be used as static or global variable without the need of initialization `- it has no constructor and correctly performs the first initialization when any of methods is called. That avoids problems with initialization order or multithreaded initialization issues.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:StaticConditionVariable`:`:Get`(`): [_^ConditionVariable^ ConditionVariable][@(0.0.255) `& @@ -59,4 +61,5 @@ Variable`&]()&] [s5;:StaticConditionVariable`:`:Signal`(`): [@(0.0.255) void]_[* Signal]()&] [s5;:StaticConditionVariable`:`:Broadcast`(`): [@(0.0.255) void]_[* Broadcast]()&] [s2;%% Calls respective ConditionVariable methods.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Convert$en-us.tpp b/uppsrc/Core/src.tpp/Convert$en-us.tpp index fa4041e26..90a82db0b 100644 --- a/uppsrc/Core/src.tpp/Convert$en-us.tpp +++ b/uppsrc/Core/src.tpp/Convert$en-us.tpp @@ -20,9 +20,8 @@ direction is represented by the Scan method.&] [s9; If the conversion is not possible (e.g. due to invalid textual representation), convert methods should return `"ErrorValue`" to indicate the problem.&] -[s0; &] [s3; &] -[s0;%- &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] [s3;%- &] [s5;:Convert`:`:Format`(const Value`&`)const:%- [@(0.0.255) virtual] diff --git a/uppsrc/Core/src.tpp/DateFmt$en-us.tpp b/uppsrc/Core/src.tpp/DateFmt$en-us.tpp index 9e31e6646..e07fc0450 100644 --- a/uppsrc/Core/src.tpp/DateFmt$en-us.tpp +++ b/uppsrc/Core/src.tpp/DateFmt$en-us.tpp @@ -11,9 +11,10 @@ topic "Date formatting and scanning"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [s0;%- [*@3;4 Date formatting and scanning]&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0; [* Global functions]]}}&] -[s0;%- &] +[s3;%- &] [s5;:StrToDate`(Date`&`,const char`*`):%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* StrToDa te]([_^Date^ Date][@(0.0.255) `&]_[*@3 d], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] [s2; Scans a string for a Date. Order of day, month and year is specified @@ -73,4 +74,5 @@ up to next `"amend`" character or `'`\0`' are replaced by it.&] [s2; CharFilterDate would allow letters but not convert them to uppercase, it will allow characters `'[* .]`' and `'/`' and it will convert `'[*@5 ,]`' to `'[* .]`' and `'[*@5 :]`' or `'[*@5 ;]`' to `'[* /]`'.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Exc$en-us.tpp b/uppsrc/Core/src.tpp/Exc$en-us.tpp index 677b234f1..fc026dc71 100644 --- a/uppsrc/Core/src.tpp/Exc$en-us.tpp +++ b/uppsrc/Core/src.tpp/Exc$en-us.tpp @@ -10,10 +10,10 @@ topic "Miscellaneous"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s1;%% [*@3;4 Exc]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 Exc]]}}&] +[s3;%% &] [s1;:Exc`:`:class: [@(0.0.255)3 class][3 _][*3 Exc][3 _:_][@(0.0.255)3 public][3 _][*@3;3 String]&] -[s0; &] -[s0;%% This is the preferred root class of U`+`+ exception. It is +[s9;%% This is the preferred root class of U`+`+ exception. It is basically a String. The idea is that all kinds of exception can be either managed by specific handlers, or simple Exc handler can be used, displaying textual information to the user.&] @@ -28,5 +28,5 @@ can be used, displaying textual information to the user.&] [s5;:Exc`:`:Exc`(const String`&`): [* Exc]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& ]_[*@3 desc])&] [s2;%% Constructor, error described as [%-*C@3 desc].&] -[s1; &] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/FindFile$en-us.tpp b/uppsrc/Core/src.tpp/FindFile$en-us.tpp index 420453b57..984488230 100644 --- a/uppsrc/Core/src.tpp/FindFile$en-us.tpp +++ b/uppsrc/Core/src.tpp/FindFile$en-us.tpp @@ -11,11 +11,12 @@ topic "FindFile"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 FindFile]]}}&] -[s0;i448;a25;kKO9;@(0.0.255)%- &] +[s3;%- &] [s1;:FindFile`:`:class:%- [@(0.0.255)3 class][3 _][*3 FindFile]&] -[s2; This class serves as platform independent encapsulation of directory +[s9; This class serves as platform independent encapsulation of directory enumeration.&] -[s0;i448;a25;kKO9;@(0.0.255)%- &] +[s3;%- &] +[s0;%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] [s3;%- &] [s5;:FindFile`:`:Search`(const char`*`):%- [@(0.0.255) bool]_[* Search]([@(0.0.255) const]_ @@ -139,4 +140,5 @@ this is used as condition to the loop that enumerates directory.&] [s5;:FindFile`:`:FindFile`(const char`*`):%- [* FindFile]([@(0.0.255) const]_[@(0.0.255) ch ar]_`*[*@3 name])&] [s2; Initializes and performs Search([%-*@3 name]).&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Format$en-us.tpp b/uppsrc/Core/src.tpp/Format$en-us.tpp index b4059f896..d023bdb50 100644 --- a/uppsrc/Core/src.tpp/Format$en-us.tpp +++ b/uppsrc/Core/src.tpp/Format$en-us.tpp @@ -408,5 +408,5 @@ terNullFormatter]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], Formatter_[*@3 f])&] [s2; Registers formatter [%-*@3 id] to be applied when the Value argument is Void (Value()) or ErrorValue.&] -[s1; &] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/FormatFn$en-us.tpp b/uppsrc/Core/src.tpp/FormatFn$en-us.tpp index ffee96a69..0b211f2e4 100644 --- a/uppsrc/Core/src.tpp/FormatFn$en-us.tpp +++ b/uppsrc/Core/src.tpp/FormatFn$en-us.tpp @@ -11,9 +11,10 @@ topic "Formatting functions"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [s0; [*@3;4 Formatting functions]&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0; [* Global functions]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:FormatInt`(int`):%- [_^String^ String]_[* FormatInt]([@(0.0.255) int]_[*@3 i])&] [s2; Outputs decimally formatted signed integer [%-*@3 i] without `+ or any paddings. Supposed to be quite fast. Equivalent to FormatIntBase(i, @@ -198,5 +199,5 @@ nt]_[*@3 i], [@(0.0.255) int]_[*@3 base], [@(0.0.255) int]_[*@3 width]_`=_[@3 0] [%-*@3 base] with left padding to given [%-*@3 width] with a given [%-*@3 lpad] character. If [*@3 sign ]is `+1 `= always prepend `'`+`'/`-, if 0 `= auto (`'`-`' only), if `-1, format as unsigned.&] -[s1; &] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Indext$en-us.tpp b/uppsrc/Core/src.tpp/Indext$en-us.tpp index 878c02210..b2a4b531d 100644 --- a/uppsrc/Core/src.tpp/Indext$en-us.tpp +++ b/uppsrc/Core/src.tpp/Indext$en-us.tpp @@ -10,7 +10,8 @@ topic "Index"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;~~~64; [*@3;4 Index]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Index]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 <][*@4;3 T][@(0.0.255)3 >][3 _ >]&] @@ -40,8 +41,8 @@ picked Index is logic error with exception of&] [s0; [C+75 void ][*C+75 Clear][C+75 ()]&] [s0; [C+75 bool ][*C+75 IsPicked][C+75 () const]&] [s9; Optional deep copy operator is inherited from AIndex class. -Pick operator is implicitly defined by composition&] -[s0; .&] +Pick operator is implicitly defined by composition.&] +[s0; &] [s0; [* Base class]&] [s0; [^topic`:`/`/Core`/src`/AIndex`$en`-us`#AIndex`:`:class^ AIndex, HashFn>]&] diff --git a/uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp b/uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp index d914dd088..402b2453b 100644 --- a/uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp +++ b/uppsrc/Core/src.tpp/LazyUpdate$en-us.tpp @@ -12,8 +12,8 @@ topic "LazyUpdate"; [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 LazyUpdate]]}}&] [s3; &] -[s1; [@(0.0.255)3 class][3 _][*3 LazyUpdate]&] -[s2;%% LazyUpdate class provides thread`-safe means for lazy evaluation. +[s1;:LazyUpdate`:`:class: [@(0.0.255)3 class][3 _][*3 LazyUpdate]&] +[s9;%% LazyUpdate class provides thread`-safe means for lazy evaluation. Typically it is used in connection with mutable member variable cache. Mutating operations on such class set LazyUpdate to `"invalid`" state. When any method is called to obtain evaluated value, it @@ -21,13 +21,14 @@ first checks LazyUpdate whether cache is valid using BeginUpdate.(such method is usually const, that is why the cache needs to be mutable). If BeginUpdate returns true, cache has to be updated. At the end of update, EndUpdate has to be called.&] -[s2;%% BeginUpdate also blocks any other thread once update is in +[s9;%% BeginUpdate also blocks any other thread once update is in progress.&] -[s2;%% That way, many threads are allowed to invoke read methods +[s9;%% That way, many threads are allowed to invoke read methods simultaneously while updates are performed and serialized correctly. Of course, client code of such class still needs to serialize access to instance, just like for any other object.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:LazyUpdate`:`:Invalidate`(`): [@(0.0.255) void]_[* Invalidate]()&] @@ -45,8 +46,10 @@ false, as cache is already updated).&] [s5;:LazyUpdate`:`:EndUpdate`(`)const: [@(0.0.255) void]_[* EndUpdate]()_[@(0.0.255) const]&] [s2;%% Signals that the cache was updated.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] [s3; &] [s5;:LazyUpdate`:`:LazyUpdate`(`): [* LazyUpdate]()&] [s2;%% Sets LazyUpdate into invalid state.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/MathUtil$en-us.tpp b/uppsrc/Core/src.tpp/MathUtil$en-us.tpp index 4d81eed2b..1d40b0ad7 100644 --- a/uppsrc/Core/src.tpp/MathUtil$en-us.tpp +++ b/uppsrc/Core/src.tpp/MathUtil$en-us.tpp @@ -10,11 +10,13 @@ topic "Math utility"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s0; [*@3;4 Math utility]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 Math utility]]}}&] +[s3; &] [s0;%% A number of mathematical functions and constants.&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constant List]]}}&] -[s0; &] +[s3; &] [s5;:M`_E: [* M`_E]&] [s2;%% [/ e-|-|-|]2.71828182845904523536&] [s3;%% &] @@ -73,10 +75,10 @@ topic "Math utility"; [s4; &] [s5;:M`_2PI: [* M`_2PI]&] [s2;%% [/ 2Pi]&] -[s1; &] +[s3; &] [s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Function List]]}}&] -[s0; &] +[s3; &] [s5;:Random`(`): [_^dword^ dword]_[* Random]()&] [s2;%% Returns the next random generated number. MT safe and efficient variant of Merssene twister MT19937 by Takuji Nishimura and Makoto @@ -213,5 +215,5 @@ numerator:&] [@(0.0.255) int]_[*@3 nDigits])&] [s2;%% [%- Returns the string representation of ][%-*@3 x][%- with] [%-*@3 nDigits][%- precision].&] -[s1; &] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Mt$en-us.tpp b/uppsrc/Core/src.tpp/Mt$en-us.tpp index ed31e6473..8af77343c 100644 --- a/uppsrc/Core/src.tpp/Mt$en-us.tpp +++ b/uppsrc/Core/src.tpp/Mt$en-us.tpp @@ -12,9 +12,10 @@ topic "Thread synchronization primitives"; [*C1 $$10,10#39751211140134154172026758035355:code] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 Thread synchronization primitives]]}}&] +[s3; &] [s0; &] [ {{10000t/25b/25@1 [s0; [* Function List]]}}&] -[s4; &] +[s3; &] [s5;:AssertST`(`): [@(0.0.255) void]_[* AssertST]()&] [s2;%% This operation can be used only DEBUG mode. If any Thread was started prior to calling AssertST, it will stop the execution @@ -64,7 +65,7 @@ call can be performed before calling it.&] [s2;%% This is the integer type that can be used as argument of AtomicXAdd function. It is compatible with `'int`' `- it has the same value range and it can be converted to `'int`'.&] -[s0;%% &] +[s3;%% &] [s4; &] [s5;:AtomicXAdd`(volatile Atomic`&`,int`): [@(0.0.255) int]_[* AtomicXAdd]([@(0.0.255) vola tile]_[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t], [@(0.0.255) int]_[*@3 incr])&] @@ -93,20 +94,21 @@ st]_[@(0.0.255) volatile]_[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t])&] [s5;:AtomicWrite`(volatile Atomic`&`,int`): [@(0.0.255) void]_[* AtomicWrite]([@(0.0.255) v olatile]_[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t], [@(0.0.255) int]_[*@3 val])&] [s2;%% Same as BarrierWrite(t, val).&] +[s3; &] [s0; &] [ {{10000t/25b/25@1 [s0; [* Macro List]]}}&] -[s4; &] +[s3; &] [s5;:INTERLOCKED: [* INTERLOCKED]&] [s2;%% This macro adds static Mutex to the block. For example:&] -[s10;%% -|INTERLOCKED `{&] -[s10;%% -|-|Foo();&] -[s10;%% -|`}&] -[s0;%% -|is equivalent to&] -[s10;%% -|`{-|static StaticMutex [/ uniquename];&] -[s10;%% -|-|[/ uniquename].Enter();&] -[s10;%% -|-|Foo();&] -[s10;%% -|-|[/ uniquename].Leave();&] -[s10;%% -|`}&] +[s2;%% [C1 -|-|INTERLOCKED `{]&] +[s2;%% [C1 -|-|-|Foo();]&] +[s2;%% [C1 -|-|`}]&] +[s2;%% -|is equivalent to&] +[s2;%% [C1 -|-|`{-|static StaticMutex ][/C1 uniquename][C1 ;]&] +[s2;%% [C1 -|-|-|][/C1 uniquename][C1 .Enter();]&] +[s2;%% [C1 -|-|-|Foo();]&] +[s2;%% [C1 -|-|-|][/C1 uniquename][C1 .Leave();]&] +[s2;%% [C1 -|-|`}]&] [s3; &] [s4; &] [s5;:INTERLOCKED`_`(cs`): [* INTERLOCKED`_]([*@3 cs])&] @@ -118,9 +120,9 @@ static Mutex it uses explicit Mutex [%-*@3 cs].&] [s2;%% Designates block that only gets performed at first run, taking into account all multi`-threading issues. In single threaded environment&] -[s10;%% -|ONCELOCK `{ Foo(); `}&] -[s0;%% -|is equivalent to&] -[s10;%% -|`{ static bool x; if(!x) `{ x `= true; Foo(); `} `}.&] +[s2;%% -|-|[C1 ONCELOCK `{ Foo(); `}]&] +[s2;%% -|is equivalent to&] +[s2;%% [C1 -|-|`{ static bool x; if(!x) `{ x `= true; Foo(); `} `}.]&] [s3; &] [s4; &] [s5;:ONCELOCK`_`(o`_b`_`): [* ONCELOCK`_]([*@3 o`_b`_])&] @@ -136,4 +138,5 @@ NULL, [%-*@3 init] should return a non`-NULL value assignable to [%-*@3 init] is evaluated. After that (when [%-*@3 ptr] is non`-NULL) only ReadMemoryBarrier synchronization primitive is used to check the [%-*@3 ptr], making the operation relatively fast.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Mutex$en-us.tpp b/uppsrc/Core/src.tpp/Mutex$en-us.tpp index a1aff1861..f99b30300 100644 --- a/uppsrc/Core/src.tpp/Mutex$en-us.tpp +++ b/uppsrc/Core/src.tpp/Mutex$en-us.tpp @@ -14,13 +14,14 @@ topic "Mutex"; [s3; &] [s1;:Mutex`:`:class: [@(0.0.255)3 class][3 _][*3 Mutex][3 _:_][@(0.0.255)3 private][3 _][*@3;3 NoCop y]&] -[s2;%% This well know synchronization primitive is usually used to +[s9;%% This well know synchronization primitive is usually used to serialize access to shared data or other shared resources. Only single thread can execute the code between calls to Enter and Leave. If any other thread attempts to Enter the protected section while other thread is performing it, it is blocked until performing thread indicates leaving the section by invoking Leave.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:Mutex`:`:Enter`(`): [@(0.0.255) void]_[* Enter]()&] @@ -42,12 +43,13 @@ called Enter can invoke Leave.&] [ {{10000@(113.42.0) [s0;%% [*@7;4 StaticMutex]]}}&] [s3; &] [s1;:StaticMutex`:`:class: [@(0.0.255)3 class][3 _][*3 StaticMutex]&] -[s2;%% Variant of Mutex that can be used as static or global variable +[s9;%% Variant of Mutex that can be used as static or global variable without the need of initialization `- it has no constructor and correctly performs the first initialization when any of methods is called. That avoids problems with initialization order or multithreaded initialization issues.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:StaticMutex`:`:Get`(`): [_^Mutex^ Mutex][@(0.0.255) `&]_[* Get]()&] @@ -59,16 +61,17 @@ multithreaded initialization issues.&] [s5;:StaticMutex`:`:Enter`(`): [@(0.0.255) void]_[* Enter]()&] [s5;:StaticMutex`:`:Leave`(`): [@(0.0.255) void]_[* Leave]()&] [s2;%% Calls respective methods of Mutex instance.&] -[s0;%% &] +[s3;%% &] [s0; &] [ {{10000t/25b/25@(113.42.0) [s0; [*@7;4 Mutex`::Lock]]}}&] [s3; &] [s1;:Mutex`:`:Lock`:`:class: [@(0.0.255)3 class][3 _][*3 Mutex`::Lock]&] -[s2;%% This nested class automates calls to Mutex`::Enter / Mutex`::Leave +[s9;%% This nested class automates calls to Mutex`::Enter / Mutex`::Leave for block of code using C`+`+ constructor / destructor rules. Using [* operator StaticMutex`::Mutex], it can be used with StaticMutex as well.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor / Destructor detail]]}}&] [s3; &] [s5;:Mutex`:`:Lock`:`:Lock`(Mutex`&`): [* Lock]([_^Mutex^ Mutex][@(0.0.255) `&]_[*@3 s])&] @@ -77,4 +80,5 @@ as well.&] [s4; &] [s5;:Mutex`:`:Lock`:`:`~Lock`(`): [@(0.0.255) `~][* Lock]()&] [s2; [%% Performs ][*@3 s].Enter() where [*@3 s] is the constructor parameter.&] -[s3; ] \ No newline at end of file +[s3; &] +[s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/NetNode$en-us.tpp b/uppsrc/Core/src.tpp/NetNode$en-us.tpp index c12f305d5..7476544d6 100644 --- a/uppsrc/Core/src.tpp/NetNode$en-us.tpp +++ b/uppsrc/Core/src.tpp/NetNode$en-us.tpp @@ -10,12 +10,12 @@ topic "NetNode"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s0; [*@3;4 NetNode]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 NetNode]]}}&] +[s3; &] [s1;:NetNode`:`:class: [@(0.0.255)3 class][3 _][*3 NetNode][3 _:_][@(0.0.255)3 private][3 _][*@3;3 M oveable][@(0.0.255)3 <][*3 NetNode][@(0.0.255)3 >][3 _]&] [s6;l0;%% WIN32 specific&] -[s6;l0;%% &] -[s0;%% This class represents single network node (network resource). +[s9;%% This class represents single network node (network resource). It is [^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable] and has deep copy.&] [s3;%% &] diff --git a/uppsrc/Core/src.tpp/One$en-us.tpp b/uppsrc/Core/src.tpp/One$en-us.tpp index 4457ae55e..6b567eec2 100644 --- a/uppsrc/Core/src.tpp/One$en-us.tpp +++ b/uppsrc/Core/src.tpp/One$en-us.tpp @@ -9,145 +9,147 @@ topic "One"; [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[s0;%- [*@3;4 One]&] -[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] -[s1;:One`:`:class:%- [@(0.0.255) class]_[* One]_:_[@(0.0.255) private]_[*@3 MoveableAndDeepCop -yOption][@(0.0.255) <]_[* One][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] -[s8; [%-*C@4 T]-|Type or base class of element stored in One.&] -[s0; &] -[s0; One is a container capable of containing none or single element +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 One]]}}&] +[s3; &] +[s1;:noref: [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] +[s1;:One`:`:class: [@(0.0.255) class]_[* One]_:_[@(0.0.255) private]_[*@3 MoveableAndDeepCopyO +ption][@(0.0.255) <]_[* One][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] +[s8;%% [%-*C@4 T]-|Type or base class of element stored in One.&] +[s0;%% &] +[s9;%% One is a container capable of containing none or single element of type specified as template argument or derived from it.&] -[s0; One is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ +[s9;%% One is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ moveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick and optional deep copy] transfer semantics. Calling methods of picked One is logic error with exception of:&] -[s0; &] -[s0; [C+75 void ][*C+75 operator`=][C+75 (pick`_ One`& ][*C@3+75 v][C+75 )]&] -[s0; [C+75 void ][*C+75 operator<<`=][C+75 (const One`& ][*C@3+75 v][C+75 ) +[s0;%% &] +[s0;%% [C+75 void ][*C+75 operator`=][C+75 (pick`_ One`& ][*C@3+75 v][C+75 )]&] +[s0;%% [C+75 void ][*C+75 operator<<`=][C+75 (const One`& ][*C@3+75 v][C+75 ) ][/C+75 (defined using DeepCopyOption template base class)]&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor List]]}}&] -[s0;0%- &] -[s5;:One`:`:One`(`):%- [* One]()&] -[s2; Default constructor. Constructs empty One.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:One`(T`*`):%- [* One]([*@4 T]_`*[*@3 newt])&] -[s2; Constructs One with content. Content is specified by pointer +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor List]]}}&] +[s0;0 &] +[s5;:One`:`:One`(`): [* One]()&] +[s2;%% Default constructor. Constructs empty One.&] +[s3; &] +[s4; &] +[s5;:One`:`:One`(T`*`): [* One]([*@4 T]_`*[*@3 newt])&] +[s2;%% Constructs One with content. Content is specified by pointer to object created using operator new. One takes over ownership of this this object. &] -[s7; [%-*@3 newt]-|Object to be added.&] -[s3; &] -[s4;%- &] -[s5;:One`:`:One`(pick`_ One``&`):%- [* One]([@(0.128.128) pick`_]_[* One][@(0.0.255) <][*@4 T +[s7;%% [%-*@3 newt]-|Object to be added.&] +[s3;%% &] +[s4; &] +[s5;:One`:`:One`(pick`_ One``&`): [* One]([@(0.128.128) pick`_]_[* One][@(0.0.255) <][*@4 T ][@(0.0.255) >`&]_[*@3 p])&] -[s2; Pick constructor. Transfers source [* One] [%-*@3 p ]in low constant +[s2;%% Pick constructor. Transfers source [* One] [%-*@3 p ]in low constant time, but destroys it by picking.&] -[s3; &] -[s4;%- &] -[s5;:One`:`:One`(const One``&`,int`):%- [* One]([@(0.0.255) const]_[* One][@(0.0.255) <][*@4 T +[s3;%% &] +[s4; &] +[s5;:One`:`:One`(const One``&`,int`): [* One]([@(0.0.255) const]_[* One][@(0.0.255) <][*@4 T ][@(0.0.255) >`&]_[*@3 p], [@(0.0.255) int])&] -[s6; Optional deep copy constructor.&] -[s2; Requires T to have deep copy constructor or optional deep copy -constructor.&] +[s6;%% Optional deep copy constructor.&] +[s2;%% Requires T to have deep copy constructor or optional deep +copy constructor.&] +[s3;%% &] +[s4; &] +[s5;:One`:`:`~One`(`): [@(0.0.255) `~][* One]()&] +[s2;%% Default destructor.&] [s3; &] -[s4;%- &] -[s5;:One`:`:`~One`(`):%- [@(0.0.255) `~][* One]()&] -[s2; Default destructor.&] -[s3;%- &] -[s1; &] -[ {{10000F(128)G(128)@1 [s0; [* Method List]]}}&] -[s0;0%- &] -[s5;:One`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] -[s2;%- Removes the element stored in [* One].&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:IsPicked`(`)const:%- [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] -[s2; Returns [* true] if [* One] has been picked.&] +[s1;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Method List]]}}&] +[s0;0 &] +[s5;:One`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] +[s2; Removes the element stored in [* One].&] [s3; &] -[s4;%- &] -[s5;:One`:`:Attach`(T`*`):%- [@(0.0.255) void]_[* Attach]([*@4 T]_`*[*@3 data])&] -[s2; Assigns element to One. (Note: if there is content in One while +[s4; &] +[s5;:One`:`:IsPicked`(`)const: [@(0.0.255) bool]_[* IsPicked]()_[@(0.0.255) const]&] +[s2;%% Returns [* true] if [* One] has been picked.&] +[s3;%% &] +[s4; &] +[s5;:One`:`:Attach`(T`*`): [@(0.0.255) void]_[* Attach]([*@4 T]_`*[*@3 data])&] +[s2;%% Assigns element to One. (Note: if there is content in One while calling this function, it is destroyed).&] -[s7; [%-*C@3 data]-|Pointer to the new element created using operator +[s7;%% [%-*C@3 data]-|Pointer to the new element created using operator new.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:Detach`(`)pick`_:%- [*@4 T]_`*[* Detach]()_[@(0.128.128) pick`_]&] -[s2; Removes content giving up ownership. Client is responsible for -deletion of content.&] -[s7; [*/ Return value]-|Pointer to the content allocated on the heap.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`-`(`)pick`_:%- [*@4 T]_`*[* operator`-]()_[@(0.128.128) pick`_]&] -[s2; Same as Detach() (operator version).&] -[s7; [*/ Return value]-|Pointer to the content allocated on the heap.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`=`(T`*`):%- [@(0.0.255) void]_[* operator`=]([*@4 T]_`*[*@3 data])&] -[s2; Same as Attach(data) (operator version).&] -[s7; [%-*C@3 data]-|Pointer to the new element created using operator +[s3; &] +[s4; &] +[s5;:One`:`:Detach`(`)pick`_: [*@4 T]_`*[* Detach]()_[@(0.128.128) pick`_]&] +[s2;%% Removes content giving up ownership. Client is responsible +for deletion of content.&] +[s7;%% [*/ Return value]-|Pointer to the content allocated on the heap.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`-`(`)pick`_: [*@4 T]_`*[* operator`-]()_[@(0.128.128) pick`_]&] +[s2;%% Same as Detach() (operator version).&] +[s7;%% [*/ Return value]-|Pointer to the content allocated on the heap.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`=`(T`*`): [@(0.0.255) void]_[* operator`=]([*@4 T]_`*[*@3 data])&] +[s2;%% Same as Attach(data) (operator version).&] +[s7;%% [%-*C@3 data]-|Pointer to the new element created using operator new.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`=`(pick`_ One``&`):%- [@(0.0.255) void]_[* operator`=]([@(0.128.128) p +[s3; &] +[s4; &] +[s5;:One`:`:operator`=`(pick`_ One``&`): [@(0.0.255) void]_[* operator`=]([@(0.128.128) p ick`_]_[_^One^ One][@(0.0.255) <][*@4 T][@(0.0.255) >`&]_[*@3 d])&] -[s2; Pick operator. Transfers source One in low constant time, but -destroys it by picking.&] -[s7; [%-*C@3 d]-|Source One.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`-`>`(`)const:%- [@(0.0.255) const]_[*@4 T]_`*[* operator`->]()_[@(0.0.255) c -onst]&] -[s2; Constant content access operator. Illegal if there is no content.&] -[s7; [*/ Return value]-|Returns constant pointer to content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`-`>`(`):%- [*@4 T]_`*[* operator`->]()&] -[s2; Content access operator. Illegal if there is no content.&] -[s7; [*/ Return value]-|Returns pointer to content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`~`(`)const:%- [@(0.0.255) const]_[*@4 T]_`*[* operator`~]()_[@(0.0.255) c -onst]&] -[s2; Constant content pointer access.&] -[s7; [*/ Return value]-|Returns constant pointer to content or NULL -when there is no content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`~`(`):%- [*@4 T]_`*[* operator`~]()&] -[s2; Content pointer access.&] -[s7; [*/ Return value]-|Returns pointer to content or NULL when there -is no content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`*`(`)const:%- [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operator`*]() -_[@(0.0.255) const]&] -[s2; Content constant reference access. Illegal if there is no content.&] -[s7; [*/ Return value]-|Constant reference to content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator`*`(`):%- [*@4 T][@(0.0.255) `&]_[* operator`*]()&] -[s2; Content reference access. Illegal if there is no content.&] -[s7; [*/ Return value]-|Reference to content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:Create`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT][@(0.0.255) >]_[*@4 T -T][@(0.0.255) `&]_[* Create]()&] -[s2; Creates content in One. (Note: if there is content in One while -calling this function, it is destroyed).&] -[s7; [*C@4 TT]-|Type of content. Must be equal to T or derived from -it.&] -[s7; [*/ Return value]-|Reference to actual content (of type TT).&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] -[s2; Returns [* true] if there is no content.&] -[s3;%- &] -[s4;%- &] -[s5;:One`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] -[s2; Returns [* true] if there is content.&] +[s2;%% Pick operator. Transfers source One in low constant time, +but destroys it by picking.&] +[s7;%% [%-*C@3 d]-|Source One.&] [s3; &] +[s4; &] +[s5;:One`:`:operator`-`>`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* operator`->]()_[@(0.0.255) c +onst]&] +[s2;%% Constant content access operator. Illegal if there is no content.&] +[s7;%% [*/ Return value]-|Returns constant pointer to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`-`>`(`): [*@4 T]_`*[* operator`->]()&] +[s2;%% Content access operator. Illegal if there is no content.&] +[s7;%% [*/ Return value]-|Returns pointer to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`~`(`)const: [@(0.0.255) const]_[*@4 T]_`*[* operator`~]()_[@(0.0.255) co +nst]&] +[s2;%% Constant content pointer access.&] +[s7;%% [*/ Return value]-|Returns constant pointer to content or NULL +when there is no content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`~`(`): [*@4 T]_`*[* operator`~]()&] +[s2;%% Content pointer access.&] +[s7;%% [*/ Return value]-|Returns pointer to content or NULL when there +is no content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`*`(`)const: [@(0.0.255) const]_[*@4 T][@(0.0.255) `&]_[* operator`*]()_[@(0.0.255) c +onst]&] +[s2;%% Content constant reference access. Illegal if there is no +content.&] +[s7;%% [*/ Return value]-|Constant reference to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator`*`(`): [*@4 T][@(0.0.255) `&]_[* operator`*]()&] +[s2;%% Content reference access. Illegal if there is no content.&] +[s7;%% [*/ Return value]-|Reference to content.&] +[s3; &] +[s4; &] +[s5;:One`:`:Create`(`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 TT][@(0.0.255) >]_[*@4 T +T][@(0.0.255) `&]_[* Create]()&] +[s2;%% Creates content in One. (Note: if there is content in One while +calling this function, it is destroyed).&] +[s7;%% [*C@4 TT]-|Type of content. Must be equal to T or derived from +it.&] +[s7;%% [*/ Return value]-|Reference to actual content (of type TT).&] +[s3; &] +[s4; &] +[s5;:One`:`:IsEmpty`(`)const: [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2;%% Returns [* true] if there is no content.&] +[s3; &] +[s4; &] +[s5;:One`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] +[s2;%% Returns [* true] if there is content.&] +[s3;%% &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Path$en-us.tpp b/uppsrc/Core/src.tpp/Path$en-us.tpp index 368d5a193..ff41c40a4 100644 --- a/uppsrc/Core/src.tpp/Path$en-us.tpp +++ b/uppsrc/Core/src.tpp/Path$en-us.tpp @@ -11,18 +11,21 @@ topic "File path utilities"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 File path utilities]]}}&] -[s9; &] -[ {{10000F(128)G(128)@1 [s0;%% [* FileTime]]}}&] +[s3; &] +[s0; &] +[s0; &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 FileTime]]}}&] [s3; &] [s1;:FileTime`:`:struct: [@(0.0.255)3 struct][3 _][*3 FileTime][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C ompareRelOps][@(0.0.255)3 ][3 _]&] -[s2;%% FileTime is a structure that encapsulates host specific type +[s9;%% FileTime is a structure that encapsulates host specific type used for file or directory timestamps.&] -[s2;%% It has defined ordering and can be compared to Time. Time +[s9;%% It has defined ordering and can be compared to Time. Time has conversion constructor from FileTime and AsFileTime method for backwards conversion.&] -[s9;%% &] +[s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Function List]]}}&] [s3; &] [s5;:PatternMatch`(const char`*`,const char`*`): [@(0.0.255) bool]_[* PatternMatch]([@(0.0.255) c diff --git a/uppsrc/Core/src.tpp/Point$en-us.tpp b/uppsrc/Core/src.tpp/Point$en-us.tpp index 04fab5950..be4cb1f18 100644 --- a/uppsrc/Core/src.tpp/Point$en-us.tpp +++ b/uppsrc/Core/src.tpp/Point$en-us.tpp @@ -10,8 +10,8 @@ topic "Point"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Point`_]&] -[s0;*@3 &] +[ {{10000@(113.42.0) [s0; [*@7;4 Point`_]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:Point`_`:`:struct:%- [@(0.0.255) struct]_[* Point`_]_:_[@(0.0.255) public]_[*@3 Moveable][@(0.0.255) < ]_[* Point`_][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] @@ -20,7 +20,8 @@ topic "Point"; point object. The horizontal coordinate is represented by [*@(154.0.0) x][@(154.0.0) ]and the vertical one by [*@(154.0.0) y]. Both coordinates are of type [*@4 T].&] -[s1; &] +[s3; &] +[s0; &] [s0; To get a specialized version of [* Point`_], use one of the following:&] [s0; &] [s0; [* Point]&] diff --git a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp b/uppsrc/Core/src.tpp/PtePtr$en-us.tpp index c4c3c06b4..70003c865 100644 --- a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp +++ b/uppsrc/Core/src.tpp/PtePtr$en-us.tpp @@ -94,7 +94,7 @@ onst]_[_^Ptr^ Ptr][@(0.0.255) `&]_[*@3 ptr])&] [s5;:Ptr`:`:ToString`(`)const:%- [_^String^ String]_[* ToString]()_[@(0.0.255) const]&] [s2; Converts all information to string for diagnostic purposes&] [s3; &] -[s0;i448;a25;kKO9;:noref:@(0.0.255)%- &] +[s0;i448;a25;kKO9;@(0.0.255)%- &] [ {{10000F(128)G(128)@1 [s0; [* Global Operators]]}}&] [s3; &] [s5;K%- friend_[@(0.0.255) bool][@(64) _]operator`=`=[@(64) (][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) P diff --git a/uppsrc/Core/src.tpp/RWMutex$en-us.tpp b/uppsrc/Core/src.tpp/RWMutex$en-us.tpp index f3ba718ff..4b2e70c86 100644 --- a/uppsrc/Core/src.tpp/RWMutex$en-us.tpp +++ b/uppsrc/Core/src.tpp/RWMutex$en-us.tpp @@ -14,10 +14,11 @@ topic "RWMutex"; [s3; &] [s1;:RWMutex`:`:class: [@(0.0.255)3 class][3 _][*3 RWMutex][3 _:_][@(0.0.255)3 private][3 _][*@3;3 N oCopy]&] -[s2;%% This class mediates reader`-writer sharing of global data. +[s9;%% This class mediates reader`-writer sharing of global data. Only single thread can EnterWrite, but any number of threads can EnterRead.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:RWMutex`:`:EnterWrite`(`): [@(0.0.255) void]_[* EnterWrite]()&] @@ -40,14 +41,15 @@ until all reader threads leave using LeaveRead.&] [s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 StaticRWMutex]]}}&] -[s4; &] +[s3; &] [s1;:StaticRWMutex`:`:class: [@(0.0.255)3 class][3 _][*3 StaticRWMutex]&] -[s2;%% Variant of RWMutex that can be used as static or global variable +[s9;%% Variant of RWMutex that can be used as static or global variable without the need of initialization `- it has no constructor and correctly performs the first initialization when any of methods is called. That avoids problems with initialization order or multithreaded initialization issues.&] -[s0;i448;a25;kKO9;:noref:@(0.0.255) &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:StaticRWMutex`:`:Get`(`): [_^RWMutex^ RWMutex][@(0.0.255) `&]_[* Get]()&] @@ -63,13 +65,14 @@ multithreaded initialization issues.&] [s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 RWMutex`::ReadLock]]}}&] -[s4; &] +[s3; &] [s1;:RWMutex`:`:ReadLock`:`:class: [@(0.0.255)3 class][3 _][*3 ReadLock]&] -[s2;%% This nested class automates calls to Mutex`::EnterRead / Mutex`::LeaveRead +[s9;%% This nested class automates calls to Mutex`::EnterRead / Mutex`::LeaveRead for block of code using C`+`+ constructor / destructor rules. Using [* operator StaticRWMutex`::RWMutex], it can be used with StaticRWMutex as well.&] -[s3; &] +[s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor / Destructor detail]]}}&] [s3; &] [s5;:RWMutex`:`:ReadLock`:`:ReadLock`(RWMutex`&`): [* ReadLock]([_^RWMutex^ RWMutex][@(0.0.255) `& @@ -84,11 +87,12 @@ StaticRWMutex as well.&] [ {{10000@(113.42.0) [s0;%% [*@7;4 RWMutex`::WriteLock]]}}&] [s3; &] [s1;:RWMutex`:`:WriteLock`:`:class: [@(0.0.255)3 class][3 _][*3 WriteLock]&] -[s0;l288; This nested class automates calls to Mutex`::EnterWrite -/ Mutex`::LeaveLeave for block of code using C`+`+ constructor -/ destructor rules. Using [* operator StaticRWMutex`::RWMutex], -it can be used with StaticRWMutex as well.&] +[s9; This nested class automates calls to Mutex`::EnterWrite / Mutex`::LeaveLeave +for block of code using C`+`+ constructor / destructor rules. +Using [* operator StaticRWMutex`::RWMutex], it can be used with +StaticRWMutex as well.&] [s3; &] +[s0; &] [ {{10000t/25b/25@1 [s0; [* Constructor / Destructor detail]]}}&] [s3; &] [s5;:RWMutex`:`:WriteLock`:`:WriteLock`(RWMutex`&`): [* WriteLock]([_^RWMutex^ RWMutex][@(0.0.255) `& @@ -98,4 +102,5 @@ it can be used with StaticRWMutex as well.&] [s4;%% &] [s5;:RWMutex`:`:WriteLock`:`:`~WriteLock`(`): [@(0.0.255) `~][* WriteLock]()&] [s2;%% Calls [*@3 s].LeaveWrite() where [*@3 s] is the constructor parameter.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Rect$en-us.tpp b/uppsrc/Core/src.tpp/Rect$en-us.tpp index 7a12df4d0..3e97b4834 100644 --- a/uppsrc/Core/src.tpp/Rect$en-us.tpp +++ b/uppsrc/Core/src.tpp/Rect$en-us.tpp @@ -10,7 +10,8 @@ topic "Rect"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s0;i448;a25;kKO9;:noref:%% [*@3;4 Rect`_]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 Rect`_]]}}&] +[s3;%% &] [s0; [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:Rect`_`:`:struct: [@(0.0.255) struct]_[* Rect`_]_:_[@(0.0.255) public]_[*@3 Moveable][@(0.0.255) < ]_[* Rect`_][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] @@ -19,7 +20,8 @@ topic "Rect"; area defined by the coordinates of the upper left corner, left and top, and the coordinates of the bottom right corner, right and bottom. All coordinates are of type ][*@4 T.]&] -[s1; &] +[s3; &] +[s0; &] [s0;%% To get a specialized version of [* Size`_], use one of the following:&] [s0; &] [s0; [* Rect]&] @@ -28,8 +30,8 @@ and bottom. All coordinates are of type ][*@4 T.]&] [s3; &] [s4; &] [s0; [* Rect16]&] -[s5;:Rect16`:`:typedef: [@(0.0.255) typedef]_[_^Rect`_^ Rect`_][@(0.0.255) <][_^int16^ int16][@(0.0.255) > -]_[* Rect16]&] +[s5;:Rect16`:`:typedef:~~~128; [@(0.0.255) typedef]_[_^Rect`_^ Rect`_][@(0.0.255) <][_^int16^ i +nt16][@(0.0.255) >]_[* Rect16]&] [s2;%% [* Rect`_] with [%-* int16] coordinates.&] [s3; &] [s4; &] diff --git a/uppsrc/Core/src.tpp/Segtor$en-us.tpp b/uppsrc/Core/src.tpp/Segtor$en-us.tpp index 3badda00e..0a0bbdc74 100644 --- a/uppsrc/Core/src.tpp/Segtor$en-us.tpp +++ b/uppsrc/Core/src.tpp/Segtor$en-us.tpp @@ -10,7 +10,8 @@ topic "Segtor"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0;~~~64; [*@3;4 Segtor]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Segtor]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 int][3 _][*@4;3 NBLK][3 _`=_][@3;3 16][@(0.0.255)3 >]&] [s1;:Segtor`:`:class:%- [@(0.0.255) class]_[* Segtor]_:_[@(0.0.255) public]_[*@3 MoveableAndDe diff --git a/uppsrc/Core/src.tpp/Semaphore$en-us.tpp b/uppsrc/Core/src.tpp/Semaphore$en-us.tpp index 03438ac59..b51b2c406 100644 --- a/uppsrc/Core/src.tpp/Semaphore$en-us.tpp +++ b/uppsrc/Core/src.tpp/Semaphore$en-us.tpp @@ -13,13 +13,14 @@ topic "Semaphore"; [ {{10000@(113.42.0) [s0;%% [*@7;4 StaticSemaphore]]}}&] [s3; &] [s1;:Semaphore`:`:class: [@(0.0.255)3 class][3 _][*3 Semaphore]&] -[s2;%% Well known multithreading synchronization tool. In U`+`+, +[s9;%% Well known multithreading synchronization tool. In U`+`+, it is primarily used to block and release thread execution. Semaphore has an internal counter, initially initialized to zero. Wait operation blocks thread execution as long as counter is zero, then decreases it by one. Release operation increases counter by 1.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:Semaphore`:`:Wait`(`): [@(0.0.255) void]_[* Wait]()&] @@ -31,6 +32,7 @@ the Release method. Before returning, decreases counter by 1.&] [s5;:Semaphore`:`:Release`(`): [@(0.0.255) void]_[* Release]()&] [s2;%% Increases internal counter by 1.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] [s3; &] [s5;:Semaphore`:`:Semaphore`(`): [* Semaphore]()&] @@ -38,14 +40,15 @@ the Release method. Before returning, decreases counter by 1.&] [s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 StaticSemaphore]]}}&] -[s4; &] +[s3; &] [s1;:StaticSemaphore`:`:class: [@(0.0.255)3 class][3 _][*3 StaticSemaphore]&] -[s2;%% Variant of Semaphore that can be used as static or global +[s9;%% Variant of Semaphore that can be used as static or global variable without the need of initialization `- it has no constructor and correctly performs the first initialization when any of methods is called. That avoids problems with initialization order or multithreaded initialization issues.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:StaticSemaphore`:`:Get`(`): [_^Semaphore^ Semaphore][@(0.0.255) `&]_[* Get]()&] @@ -56,4 +59,5 @@ multithreaded initialization issues.&] [s5;:StaticSemaphore`:`:Wait`(`): [@(0.0.255) void]_[* Wait]()&] [s5;:StaticSemaphore`:`:Release`(`): [@(0.0.255) void]_[* Release]()&] [s2;%% Call respective methods of Semaphore instance.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Size$en-us.tpp b/uppsrc/Core/src.tpp/Size$en-us.tpp index b5aceb6f9..19ca8ed74 100644 --- a/uppsrc/Core/src.tpp/Size$en-us.tpp +++ b/uppsrc/Core/src.tpp/Size$en-us.tpp @@ -10,8 +10,8 @@ topic "Size"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Size`_]&] -[s0;*@3 &] +[ {{10000@(113.42.0) [s0; [*@7;4 Size`_]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:Size`_`:`:struct:%- [@(0.0.255) struct]_[* Size`_]_:_[@(0.0.255) public]_[*@3 Moveable][@(0.0.255) < ]_[* Size`_][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_&] @@ -20,7 +20,8 @@ topic "Size"; size object. The horizontal dimension is represented by [*@(154.0.0) cx][@(154.0.0) ]and the vertical one by [*@(154.0.0) cy]. Both dimension are of type [*@4 T]. &] -[s1; &] +[s3; &] +[s0; &] [s0; To get a specialized version of [* Size`_], use one of the following:&] [s0; &] [s1;%- [* Size]&] @@ -34,7 +35,7 @@ type [*@4 T]. &] [s2; Size`_ with with [* int16][@(0.0.255) ]dimensions.&] [s3; &] [s4;*@(154.0.0) &] -[s0;%- [* Size64]&] +[s1;%- [* Size64]&] [s5;:Size64`:`:typedef:%- [@(0.0.255) typedef]_[_^Size`_^ Size`_][@(0.0.255) <][_^int64^ int6 4][@(0.0.255) >]_[* Size64]&] [s2; Size`_ with with [* int64][@(0.0.255) ]dimensions.&] diff --git a/uppsrc/Core/src.tpp/Stream$en-us.tpp b/uppsrc/Core/src.tpp/Stream$en-us.tpp index 57805a67b..96f8335f9 100644 --- a/uppsrc/Core/src.tpp/Stream$en-us.tpp +++ b/uppsrc/Core/src.tpp/Stream$en-us.tpp @@ -10,10 +10,10 @@ topic "Streams"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Stream]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Stream]]}}&] +[s3; &] [s1;:Stream`:`:class:%- [@(0.0.255)3 class][3 _][*3 Stream]&] -[s0;%- &] -[s0; Stream is the base class of all U`+`+ streams.&] +[s9; 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.&] @@ -889,9 +889,9 @@ l`&]_[*@3 a], [@(0.0.255) bool`&]_[*@3 b], [@(0.0.255) bool`&]_[*@3 c])&] [s3; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0;3 &] -[s0; [@3;4 StringStream]&] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 StringStream]]}}&] +[s3; &] [s1;:StringStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 StringStream][3 _:_][@(0.0.255)3 publi c][3 _][*@3;3 Stream]&] [s9; StringStream is stream that uses String as storage medium.&] @@ -913,7 +913,6 @@ mode (like [* Create]).&] serialization mode (like [* Open]).&] [s7; [%-*C@3 data]-|Content of stream.&] [s3; &] -[s0;3 &] [s0;%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Member List: Serialization Support]]}}&] [s3;%- &] @@ -947,8 +946,9 @@ etResult]().&] [s0;3 &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0; [*@3;4 MemStream]&] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 MemStream]]}}&] +[s3; &] [s1;:MemStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 MemStream][3 _:_][@(0.0.255)3 public][3 _][*@3;3 S tream]&] [s9; Stream that is using raw memory as its content.&] @@ -967,15 +967,16 @@ tream]&] [s0;3 &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0;%- [*@3;4 MemReadStream]&] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 MemReadStream]]}}&] +[s3;%- &] [s1;:MemReadStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 MemReadStream][3 _:_][@(0.0.255)3 pub lic][3 _][*@3;3 MemStream]&] [s9; 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 &] +[s3; &] [s0;%- &] [ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] [s3; &] @@ -987,8 +988,9 @@ onst]_[@(0.0.255) void]_`*[*@3 data], [@(0.0.255) int]_[*@3 size])&] [s3; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0; [*@3;4 BlockStream]&] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 BlockStream]]}}&] +[s3; &] [s1;:BlockStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 BlockStream][3 _:_][@(0.0.255)3 public][3 _ ][*@3;3 Stream]&] [s9; BlockStream implements operations needed to manage streams that @@ -1000,9 +1002,12 @@ 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]_`}&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s0;%- [@(0.0.255) 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).&] [s7;:`:`:BlockStream`:`:READ: [%-*C@3 READ]-|Read mode.&] @@ -1017,124 +1022,141 @@ subsequent streams to write to the stream.&] streams to delete the stream.&] [s7;:`:`:BlockStream`:`:NOREADSHARE: [%-*C@3 NOREADSHARE]-|Disables subsequent streams to read the stream.&] -[s0;3 &] -[s5;K%- virtual [^`:`:dword^ dword]_Read[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 at][@(64) , - ][@(0.0.255) void][@(64) _`*][@3 ptr][@(64) , ][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) ) -]&] -[s0;%- Protected.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:SetBufferSize`(dword`):%- [@(0.0.255) void]_[* SetBufferSize]([_^dword^ d +word]_[*@3 newsize])&] +[s2; Sets a new size of internal buffer.&] +[s7; [%-*C@3 newsize]-|The new size of buffer.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:GetBufferSize`(`)const:%- [_^dword^ dword]_[* GetBufferSize]()_[@(0.0.255) c +onst]&] +[s2; [*/ Return value]-|Size of buffer.&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Protected Member List]]}}&] +[s3; &] +[s5;:BlockStream`:`:Read`(int64`,void`*`,dword`):%- [@(0.0.255) virtual] +[_^dword^ dword]_[* Read]([_^int64^ int64]_[*@3 at], [@(0.0.255) void]_`*[*@3 ptr], +[_^dword^ dword]_[*@3 size])&] [s2; Implementation of this virtual method in derived class should read a block of data at specified position in media.&] [s7; [%-*C@3 at]-|Position in media.&] [s7; [%-*C@3 ptr]-|Pointer to buffer to receive data.&] [s7; [%-*C@3 size]-|Requested size of data.&] [s7; [*/ Return value]-|Size of data read.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]Write[@(64) (][^`:`:int64^@(64) int64][@(64) _][@3 at][@(64) , - ][@(0.0.255) const][@(64) _][@(0.0.255) void][@(64) _`*][@3 data][@(64) , -][^`:`:dword^@(64) dword][@(64) _][@3 size][@(64) )]&] -[s0; Protected.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:Write`(int64`,const void`*`,dword`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* Write]([_^int64^ int64]_[*@3 at], [@(0.0.255) const]_[@(0.0.255) void]_`* +[*@3 data], [_^dword^ dword]_[*@3 size])&] [s2; Implementation of this virtual method in derived method should write a block of data at specified position in media.&] [s7; [%-*C@3 at]-|Position in media.&] [s7; [%-*C@3 data]-|Pointer to data.&] [s7; [%-*C@3 size]-|Size of data.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]SetStreamSize[@(64) (][^`:`:int64^@(64) int64][@(64) _ -][@3 size][@(64) )]&] -[s0; Protected.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:SetStreamSize`(int64`):%- [@(0.0.255) virtual] +[@(0.0.255) void]_[* SetStreamSize]([_^int64^ int64]_[*@3 size])&] [s2; Implementation of this virtual method in derived class should adjust the size of media.&] [s7; [%-*C@3 size]-|Requested new size of media.&] -[s0;3 &] -[s5;K%- [^`:`:int64^ int64]_GetStreamSize[@(64) ()_][@(0.0.255) const]&] -[s0; Protected.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:GetStreamSize`(`)const:%- [_^int64^ int64]_[* GetStreamSize]()_[@(0.0.255) c +onst]&] [s2; Returns current media size. Note that this might be different from current GetSize() `- media size adjustment can be deffered to flushing the buffer.&] [s7; [*/ Return value]-|Current media size.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]OpenInit[@(64) (][^`:`:dword^@(64) dword][@(64) _][@3 mode][@(64) , - ][^`:`:int64^@(64) int64][@(64) _][@3 file`_size][@(64) )]&] -[s0; Protected.&] +[s3; &] +[s4;%- &] +[s5;:BlockStream`:`:OpenInit`(dword`,int64`):%- [@(0.0.255) void]_[* OpenInit]([_^dword^ dw +ord]_[*@3 mode], [_^int64^ int64]_[*@3 file`_size])&] [s2; Initializes the BlockStream to specified mode and actual media size.&] [s7; [%-*C@3 mode]-|Mode.&] [s7; [%-*C@3 file`_size]-|Actual media size.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SetBufferSize[@(64) (][^`:`:dword^@(64) dword][@(64) _][@3 news -ize][@(64) )]&] -[s2; Sets a new size of internal buffer.&] -[s7; [%-*C@3 newsize]-|The new size of buffer.&] -[s0;3 &] -[s5;K%- [^`:`:dword^ dword]_GetBufferSize[@(64) ()_][@(0.0.255) const]&] -[s7; [*/ Return value]-|Size of buffer.&] +[s3; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]FileStream[@(64) _:_][@(0.0.255) public][@(64) _][^`:`:BlockStream^@(64) B -lockStream]&] -[s2; &] -[s2; Classical file stream.&] -[s2; &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileStream]]}}&] +[s3; &] +[s1;:FileStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileStream][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 BlockStream]&] +[s9; Classical file stream.&] +[s9; &] [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])&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:FileStream`:`:FileStream`(const char`*`,dword`):%- [* FileStream]([@(0.0.255) const]_ +[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode])&] [s2; Opens file stream in specified mode (as defined in BlockStream).&] [s7; [%-*C@3 filename]-|The name of the file.&] [s7; [%-*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.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:FileStream`(const char`*`,dword`,mode`_t`):%- [* FileStream]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode], +mode`_t_[*@3 acm]_`=_[@3 0644])&] +[s6;%- Posix specific.&] [s2; Opens file stream in specified mode (as defined in BlockStream) and specific POSIX access rights.&] [s7; [%-*C@3 filename]-|The name of the file.&] [s7; [%-*C@3 mode]-|Open mode.&] [s7; [%-*C@3 acm]-|Access rights.&] -[s0;3 &] -[s0;:`:`:FileStream`:`:FileStream`(int`):%- [* FileStream](int_[*@3 std`_handle])&] -[s0; Posix specific.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:FileStream`(int`):%- [* FileStream]([@(0.0.255) int]_[*@3 std`_handle])&] +[s6; Posix specific.&] [s2; Assigns existing file handle to FileStream.&] [s7; [%-*C@3 std`_handle]-|File handle of open file. FileStream takes ownership of this handle.&] -[s0;3 &] -[s0;:`:`:FileStream`:`:FileStream`(`):%- [* FileStream]()&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:FileStream`(`):%- [* FileStream]()&] [s2; Creates empty unopened FileStream.&] -[s0;3 &] -[s5;K%- operator_[@(0.0.255) bool][@(64) ()_][@(0.0.255) const]&] -[s7; [*/ Return value]-|True if stream is open.&] -[s0;3 &] -[s5;K%- [^`:`:FileTime^ FileTime]_GetTime[@(64) ()_][@(0.0.255) const]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:FileStream`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] +[s2; [*/ Return value]-|True if stream is open.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:GetTime`(`)const:%- [_^FileTime^ FileTime]_[* GetTime]()_[@(0.0.255) con +st]&] [s2; Returns last`-write time of stream.&] [s7; [*/ Return value]-|Time.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]SetTime[@(64) (][@(0.0.255) const][@(64) _][^`:`:FileTime^@(64) F -ileTime][@(64) `&_][@3 tm][@(64) )]&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:SetTime`(const FileTime`&`):%- [@(0.0.255) void]_[* SetTime]([@(0.0.255) c +onst]_[_^FileTime^ FileTime][@(0.0.255) `&]_[*@3 tm])&] [s2; Opens file stream in specified mode (as defined in BlockStream).&] [s7; [%-*C@3 filename]-|The name of the file.&] [s2; [%-*C@3 mode]-|Open mode.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]Open[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ -`*][@3 filename][@(64) , ][^`:`:dword^@(64) dword][@(64) _][@3 mode][@(64) , -][^mode`_t^@(64) mode`_t][@(64) _][@3 acm][@(64) _`=_][@3 0644][@(64) )]&] -[s0;%- Posix specific.&] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:Open`(const char`*`,dword`,mode`_t`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[*@3 filename], [_^dword^ dword]_[*@3 mode], +mode`_t_[*@3 acm]_`=_[@3 0644])&] +[s6;%- Posix specific.&] [s2; Opens file stream in specified mode (as defined in BlockStream) and specific POSIX access rights.&] [s7; [%-*C@3 filename]-|The name of the file.&] [s7; [%-*C@3 mode]-|Open mode.&] [s2; [%-*C@3 acm]-|Access rights.&] -[s0;3 &] -[s5;K%- [^HANDLE^ HANDLE]_GetHandle[@(64) ()_][@(0.0.255) const]&] -[s0; Win32 specific.&] -[s7; [*/ Return value]-|File handle.&] -[s0;3 &] -[s5;K%- [^HANDLE^ HANDLE]_GetHandle[@(64) ()_][@(0.0.255) const]&] -[s0; Posix specific.&] -[s7; [*/ Return value]-|File handle.&] -[s0;3 &] +[s3; &] +[s4;%- &] +[s5;:FileStream`:`:GetHandle`(`)const:%- HANDLE_[* GetHandle]()_[@(0.0.255) const]&] +[s2; [*/ Return value]-|File handle, either POSIX or WIN32.&] +[s3; &] [s0;3 &] [s0;3 &] [s0;3 &] diff --git a/uppsrc/Core/src.tpp/String$en-us.tpp b/uppsrc/Core/src.tpp/String$en-us.tpp index 8ec3664cd..90c03bde7 100644 --- a/uppsrc/Core/src.tpp/String$en-us.tpp +++ b/uppsrc/Core/src.tpp/String$en-us.tpp @@ -10,12 +10,12 @@ topic "String and WString"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 String]&] +[ {{10000@(113.42.0) [s0; [*@7;4 String]]}}&] +[s3; &] [s1;:String`:`:class:%- [@(0.0.255)3 class][3 _][*3 String][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Mo veable][@(0.0.255)3 <][*3 String][3 , ][_^AString^3 AString][@(0.0.255)3 <][_^String0^3 Strin g0][@(0.0.255)3 >][3 _>_]&] -[s0;3%- &] -[s0; String is a value class that contains an array of characters +[s9; String is a value class that contains an array of characters (or bytes). It is designed to have fast copy operations. The array of characters is zero terminated. String provides non`-mutable access to the array of characters. String can store 8 bit encoded @@ -24,10 +24,8 @@ String works with raw 8 bit values `- there are not automatic conversions performed e.g. in operator`[`]. If you need to access individual UTF`-8 characters, the best practice in most cases is to convert it to WString (and eventually back after processing).&] -[s0; &] -[s0; String is also often used to store raw binary data.&] -[s0; &] -[s0; WString is similar to String, but it uses 16 bit Ucs2 encoding. +[s9; String is also often used to store raw binary data.&] +[s9; WString is similar to String, but it uses 16 bit Ucs2 encoding. String and WString share a number of common functions through the AString interface.&] [s3; &] @@ -248,15 +246,16 @@ nt]_[*@3 i])_[@(0.0.255) const]&] [s2;%- [%% Returns the character at position ][*@3 i.]&] [s3;%- &] [s0;%- &] -[s0;%- &] -[s0;%- &] -[s0;%- &] [s0;@(0.0.255) &] -[s0;@(0.0.255) &] -[s0; [*@3;4 WString]&] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 WString]]}}&] +[s3; &] [s1;:WString`:`:class:%- [@(0.0.255)3 class][3 _][*3 WString][3 _:_][@(0.0.255)3 public][3 _][*@3;3 M oveable][@(0.0.255)3 <][*3 WString][3 , ][_^AString^3 AString][@(0.0.255)3 <][_^WString0^3 WS tring0][@(0.0.255)3 >][3 _>_]&] +[s9; WString is similar to String, but it uses 16 bit Ucs2 encoding. +String and WString share a number of common functions through +the AString interface.&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] @@ -434,13 +433,69 @@ nt]_[*@3 pos], [@(0.0.255) const]_[_^wchar^ wchar]_`*[*@3 s], [@(0.0.255) int]_[ [s0;%- &] [s0;%- &] [s0;%- &] -[s0;%- &] -[s0;%- &] -[s0; &] -[s0; [@3;4 AString]&] +[ {{10000@(113.42.0) [s0; [*@7;4 AString]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@3;3 B][@(0.0.255)3 >]&] [s1;:AString`:`:class:%- [@(0.0.255) class]_[* AString]_:_[@(0.0.255) public]_[*@3 B]&] [s9; A class that implements behavior common to both String and WString.&] [s3; &] -[s0; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:AString`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s2; Clears the content of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:GetLength`(`)const:%- [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] +[s2; Returns the length of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&] +[s2; Return true if the length of the string is zero.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:End`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* End]()_ +[@(0.0.255) const]&] +[s2; Returns a pointer to the end of the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:Last`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* Last]( +)_[@(0.0.255) const]&] +[s2; Returns a pointer to the last character in the string.&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:GetIter`(int`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* G +etIter]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns a pointer to character index [%-*@3 i] of the string.&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:operator`[`]`(int`)const:%- [@(0.0.255) int]_[* operator`[`]]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] +[s2; Returns the character with index [%-*@3 i].&] +[s3; &] +[s4;%- &] +[s5;:AString`:`:operator const tchar`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) cons +t]_tchar_`*()_[@(0.0.255) const]&] +[s5;:AString`:`:operator`~`(`)const:%- [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[* o +perator`~]()_[@(0.0.255) const]&] +[s5;:AString`:`:operator const void`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) const +]_[@(0.0.255) void]_`*()_[@(0.0.255) const]&] +[s5;:AString`:`:operator const bchar`*`(`)const:%- [@(0.0.255) operator]_[@(0.0.255) cons +t]_bchar_`*()_[@(0.0.255) const]&] +[s2; Same as [* Begin()].&] +[s3;%- &] +[s4;%- &] +[s5;:AString`:`:Insert`(int`,int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 pos], + [@(0.0.255) int]_[*@3 c])&] +[s5;:AString`:`:Insert`(int`,const AString`:`:tchar`*`,int`):%- [@(0.0.255) void]_[* Inse +rt]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^AString`:`:tchar^ tchar]_`*[*@3 s], +[@(0.0.255) int]_[*@3 count])&] +[s5;:AString`:`:Insert`(int`,const AString`:`:String`&`):%- [@(0.0.255) void]_[* Insert]( +[@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^AString`:`:String^ String][@(0.0.255) `&]_ +[*@3 s])&] +[s5;:AString`:`:Insert`(int`,const char`*`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int +]_[*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s2; Inserts item [%-*@3 c]/[%-*@3 s] at position [%-*@3 pos] ([%-*@3 count] +times).&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Thread$en-us.tpp b/uppsrc/Core/src.tpp/Thread$en-us.tpp index 85e2c2180..e391feb0a 100644 --- a/uppsrc/Core/src.tpp/Thread$en-us.tpp +++ b/uppsrc/Core/src.tpp/Thread$en-us.tpp @@ -10,7 +10,8 @@ topic "Thread"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s0; [*@3;4 Thread]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 Thread]]}}&] +[s3; &] [s1;:Thread`:`:class: [@(0.0.255) class]_[* Thread]_:_[@(0.0.255) private]_[*@3 NoCopy]&] [s9;%% Encapsulation of thread.&] [s3;%% &] diff --git a/uppsrc/Core/src.tpp/Vector$en-us.tpp b/uppsrc/Core/src.tpp/Vector$en-us.tpp index 156492045..c070f212f 100644 --- a/uppsrc/Core/src.tpp/Vector$en-us.tpp +++ b/uppsrc/Core/src.tpp/Vector$en-us.tpp @@ -10,7 +10,8 @@ topic "Vector"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s1; [*@3;4 Vector]&] +[ {{10000@(113.42.0) [s0; [*@7;4 Vector]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 T][@(0.0.255)3 >]&] [s1;:Vector`:`:class:%- [@(0.0.255) class]_[* Vector]_:_[@(0.0.255) public]_[*@3 MoveableAndDe epCopyOption][@(0.0.255) <]_[* Vector][@(0.0.255) <][*@4 T][@(0.0.255) >]_>&] diff --git a/uppsrc/Core/src.tpp/VectorMap$en-us.tpp b/uppsrc/Core/src.tpp/VectorMap$en-us.tpp index 11f770f66..652c3994a 100644 --- a/uppsrc/Core/src.tpp/VectorMap$en-us.tpp +++ b/uppsrc/Core/src.tpp/VectorMap$en-us.tpp @@ -10,7 +10,8 @@ topic "VectorMap"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s1;:noref: [*@3;4 VectorMap]&] +[ {{10000@(113.42.0) [s0; [*@7;4 VectorMap]]}}&] +[s3; &] [s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 K][3 , ][@(0.0.255)3 class][3 _][*@4;3 T][3 , ][@(0.0.255)3 class][3 _][*@4;3 HashFn][3 _`=_StdHash][@(0.0.255)3 < ][*@4;3 K][@(0.0.255)3 >][3 _>]&] diff --git a/uppsrc/Core/src.tpp/XmlNode$en-us.tpp b/uppsrc/Core/src.tpp/XmlNode$en-us.tpp index d074a5d6a..3dfd22881 100644 --- a/uppsrc/Core/src.tpp/XmlNode$en-us.tpp +++ b/uppsrc/Core/src.tpp/XmlNode$en-us.tpp @@ -11,16 +11,17 @@ topic "XmlNode"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 XmlNode `- Hierarchical representation of XML]]}}&] -[s0;i448;a25;kKO9;@(0.0.255) &] +[s3; &] [s1;:XmlNode`:`:class: [@(0.0.255)3 class][3 _][*3 XmlNode]&] -[s2;%% This class represent the whole XML document as recursive hierarchic +[s9;%% This class represent the whole XML document as recursive hierarchic structure `- each XmlNode can contain any number of child XmlNodes. XmlNode is mutable and U`+`+ provides function to parse XML and store it to XmlNode and also to take XmlNode and create corresponding XML document.&] -[s2;%% &] [s3; &] -[s4; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] [s5;:XmlNode`:`:Void`(`): [@(0.0.255) static] [@(0.0.255) const]_[_^XmlNode^ XmlNode][@(0.0.255) `& ]_[* Void]()&] [s2;%% Returns a constant reference to XmlNode representing `"nothing`". @@ -217,12 +218,13 @@ r]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 id], [@(0.0.255) int]_[*@3 val])& [_^String^ String]>`&_[*@3 a])&] [s2;%% Replaces all attributes to [%-*@3 a] using pick operation ([%-*@3 a] is destroyed in operation).&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] -[s0;%% &] -[s5;:XmlNode`:`:XmlNode`(`): [* XmlNode]()&] +[s3;%% &] +[s0; [* XmlNode]()&] [s2;%% Construct an empty XmlNode.&] -[s0; &] +[s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 XmlNode `- parser and output functions]]}}&] [s4;H0; &] @@ -255,6 +257,5 @@ be a combination &] ::= [s2;l64;%% Adds DOCTYPE declaration at the beginning of the document with type taken as id of first XML`_TAG sub`-node (which represents the root element).]}}&] -[s2;%% &] [s3;%% &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp b/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp index 47149687d..ac654a7d8 100644 --- a/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp +++ b/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp @@ -14,10 +14,11 @@ topic "XML output"; [s3;%% &] [s1;:XmlTag`:`:class: [@(0.0.255)3 class][3 _][*3 XmlTag][3 _:_][@(0.0.255)3 private][3 _][*@3;3 Mov eable][3 <][*3 XmlTag][3 >_]&] -[s2;%% This class simplifies the task of creating XML output text. +[s9;%% This class simplifies the task of creating XML output text. It provides means of formatting XML tags and attributes and outputs String.&] -[s0;i448;a25;kKO9;@(0.0.255) &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s4;H0; &] [s5;:XmlTag`:`:Tag`(const char`*`): [_^XmlTag^ XmlTag][@(0.0.255) `&]_[* Tag]([@(0.0.255) con @@ -58,8 +59,9 @@ ator()]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 attr], [@(0.0.255) int]_[*@3 perator()]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 attr], [@(0.0.255) double]_[*@3 q])&] [s2;%% These methods add XML tag attributes.&] [s3;%% &] +[s0;%% &] [ {{10000t/25b/25@1 [s0; [* Constructor Detail]]}}&] -[s4;H0;%% &] +[s3;%% &] [s5;:XmlTag`:`:XmlTag`(`): [* XmlTag]()&] [s2; Empty constructor. You have to use Tag method to set the tag name.&] @@ -68,6 +70,7 @@ name.&] [s5;:XmlTag`:`:XmlTag`(const char`*`): [* XmlTag]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 t ag])&] [s2;%% Sets the tag name to [%-*@3 tag].&] +[s3; &] [s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 XML output functions]]}}&] [s0; &] diff --git a/uppsrc/Core/src.tpp/XmlParser$en-us.tpp b/uppsrc/Core/src.tpp/XmlParser$en-us.tpp index bdbffd58d..8b61bc7f4 100644 --- a/uppsrc/Core/src.tpp/XmlParser$en-us.tpp +++ b/uppsrc/Core/src.tpp/XmlParser$en-us.tpp @@ -11,14 +11,14 @@ topic "XmlParser"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 XmlParser]]}}&] -[s1;@(0.0.255)3 &] +[s3; &] [s1;:XmlParser`:`:class: [@(0.0.255)3 class][3 _][*3 XmlParser]&] -[s2;%% This class is a `'lexical`' parser of XML. It is intended +[s9;%% This class is a `'lexical`' parser of XML. It is intended for implementation of descent parsers of XML.&] [s3; &] [s0;i448;a25;kKO9;@(0.0.255) &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:XmlParser`:`:SkipWhites`(`): [@(0.0.255) void]_[* SkipWhites]()&] [s2;%% Skips any whitespaces in the input XML.&] [s3; &] @@ -198,6 +198,7 @@ the next start`-tag is processed.&] mismatches of start`-tag and end`-tags. This mode was introduced to deal with broken XML files.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] [s4;H0; &] [s5;:XmlParser`:`:XmlParser`(const char`*`): [* XmlParser]([@(0.0.255) const]_[@(0.0.255) c @@ -205,4 +206,5 @@ har]_`*[*@3 s])&] [s2;%% Creates the parser for xml input text [%-*@3 s]. The pointed text must be valid through the whole parsing process (XmlParser does not make copy of the text).&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/algo$en-us.tpp b/uppsrc/Core/src.tpp/algo$en-us.tpp index 855b5b14d..d75fc8684 100644 --- a/uppsrc/Core/src.tpp/algo$en-us.tpp +++ b/uppsrc/Core/src.tpp/algo$en-us.tpp @@ -10,8 +10,8 @@ topic "Algorithms"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Algorithms]&] -[s0; A number of generic algorithms.&] +[ {{10000@(113.42.0) [s0; [*@7;4 Algorithms]]}}&] +[s9; A number of generic algorithms.&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0; [* Global Functions]]}}&] @@ -35,16 +35,6 @@ oid]_[* IterSwap]([*@4 I]_[*@3 a], [*@4 I]_[*@3 b])&] [s7; [*C@3 a]-|Iterator pointing to first value.&] [s7; [*C@3 b]-|Iterator pointing to second value. xx&] [s3;%- &] -[s4;%- &] -[s5;:IterSwap`(I`,I`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 I][@(0.0.255) >]_[@(0.0.255) v -oid]_[* IterSwap]([*@4 I]_[*@3 a], [*@4 I]_[*@3 b])&] -[s2; Swaps values pointed to by iterators. Specific types might specialize -[* IterSwap] with more effective variants.&] -[s6; Swap must be defined for type pointed to by I.&] -[s7; [*C@4 I]-|Iterator type.&] -[s7; [*C@3 a]-|Iterator pointing to first value.&] -[s7; [*C@3 b]-|Iterator pointing to second value. xx&] -[s3;%- &] [s4; &] [s5;:FindLowerBound`(const C`&`,int`,int`,const T`&`,const L`&`):%- [@(0.0.255) templat e]_<[@(0.0.255) class]_[*@4 C], [@(0.0.255) class]_[*@4 T], [@(0.0.255) class]_[*@4 L][@(0.0.255) >