git-svn-id: svn://ultimatepp.org/upp/trunk@11372 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2017-10-11 21:15:46 +00:00
parent 37e2c6bb94
commit 3ffe0463b9
13 changed files with 223 additions and 230 deletions

View file

@ -11,6 +11,8 @@ topic "Callbacks";
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US
[ {{10000@(113.42.0) [s0; [*@7;4 Callbacks]]}}&]
[s9; [/ Note: Callbacks are now deprecated. Use Function/Event/Gate
instead!]&]
[s9; Callbacks can be described as a very generalized form of function
pointers. Each Callback represents some kind of action (usually
calling a certain function or a certain object method) that can

View file

@ -9,174 +9,173 @@ topic "FindFile";
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}
[ {{10000@(113.42.0) [s0;%% [*@7;4 FindFile]]}}&]
[s3; &]
[s1;:FindFile`:`:class: [@(0.0.255)3 class][3 _][*3 FindFile]&]
[s9;%% This class serves as platform independent encapsulation of
directory enumeration.&]
[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]_[@(0.0.255) c
har]_`*[*@3 path])&]
[s2;%% Starts a new listing. [%-*@3 path] can contain wildcards (`'`*`',
[{_}%EN-US
[ {{10000@(113.42.0) [s0; [*@7;4 FindFile]]}}&]
[s3;%- &]
[s1;:FindFile`:`:class:%- [@(0.0.255)3 class][3 _][*3 FindFile]&]
[s9; This class serves as platform independent encapsulation of directory
enumeration.&]
[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]_
[@(0.0.255) char]_`*[*@3 path])&]
[s2; Starts a new listing. [%-*@3 path] can contain wildcards (`'`*`',
`'?`') to list more than single file. Returns true if first file
is found. Wildcard pattern follows Windows conventions, `*.`*
matches all files, even those without extension.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:Next`(`): [@(0.0.255) bool]_[* Next]()&]
[s2;%% Attemts to iterate to the next file, returns true if successful.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:GetAttributes`(`)const: [_^dword^ dword]_[* GetAttributes]()_[@(0.0.255) c
onst]&]
[s6; `[Win32`]&]
[s2;%% Returns win32 attributes of file.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:GetName`(`)const: [_^String^ String]_[* GetName]()_[@(0.0.255) const]&]
[s2;%% Returns the name of current directory entry.&]
[s3;%% &]
[s4; &]
[s5;:FindFile`:`:GetPath`(`)const: [_^String^ String]_[* GetPath]()_[@(0.0.255) const]&]
[s2;%% Returns the full path of current directory entry.&]
[s3; &]
[s4;%% &]
[s5;:FindFile`:`:GetLength`(`)const: [_^int64^ int64]_[* GetLength]()_[@(0.0.255) const]&]
[s2;%% Returns the length of current file. Undefined if current directory
[s4; &]
[s5;:FindFile`:`:Next`(`):%- [@(0.0.255) bool]_[* Next]()&]
[s2; Attemts to iterate to the next file, returns true if successful.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetAttributes`(`)const:%- [_^dword^ dword]_[* GetAttributes]()_[@(0.0.255) c
onst]&]
[s6;%- `[Win32`]&]
[s2; Returns win32 attributes of file.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetName`(`)const:%- [_^String^ String]_[* GetName]()_[@(0.0.255) const]&]
[s2; Returns the name of current directory entry.&]
[s3; &]
[s4;%- &]
[s5;:FindFile`:`:GetPath`(`)const:%- [_^String^ String]_[* GetPath]()_[@(0.0.255) const]&]
[s2; Returns the full path of current directory entry.&]
[s3;%- &]
[s4; &]
[s5;:FindFile`:`:GetLength`(`)const:%- [_^int64^ int64]_[* GetLength]()_[@(0.0.255) const]&]
[s2; Returns the length of current file. Undefined if current directory
entry is not file.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:GetCreationTime`(`)const: [_^FileTime^ FileTime]_[* GetCreationTime]()_[@(0.0.255) c
onst]&]
[s6;%% `[Win32`]&]
[s2;%% Returns Win32 creation time. Does not work with all filesystems.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:GetLastAccessTime`(`)const: [_^FileTime^ FileTime]_[* GetLastAccessTime](
)_[@(0.0.255) const]&]
[s2;%% Returns the last time the entry was accessed. Does not work
with all filesystems.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:GetLastWriteTime`(`)const: [_^FileTime^ FileTime]_[* GetLastWriteTime]()
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetCreationTime`(`)const:%- [_^FileTime^ FileTime]_[* GetCreationTime]()
_[@(0.0.255) const]&]
[s2;%% Returns the last time the entry was modified. Always works.&]
[s3;%% &]
[s4; &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const: uid`_t_[* GetUid]()&]
[s6;%% `[POSIX`]&]
[s2;%% Returns user ID of file.&]
[s6; `[Win32`]&]
[s2; Returns Win32 creation time. Does not work with all filesystems.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const: gid`_t_[* GetGid]()&]
[s6;%% `[POSIX`]&]
[s2;%% Returns group ID of file.&]
[s5;:FindFile`:`:GetLastAccessTime`(`)const:%- [_^FileTime^ FileTime]_[* GetLastAccessTim
e]()_[@(0.0.255) const]&]
[s2; Returns the last time the entry was accessed. Does not work
with all filesystems.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const: [@(0.0.255) bool]_[* CanRead]()_[@(0.0.255) co
nst]&]
[s6;%% `[POSIX`]&]
[s2;%% Returns true if current user can read the file.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const: [@(0.0.255) bool]_[* CanWrite]()_[@(0.0.255) c
onst]&]
[s6;%% `[POSIX`]&]
[s2;%% Returns true if current user can write the file.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const: [@(0.0.255) bool]_[* CanExecute]()_[@(0.0.255) c
onst]&]
[s6;%% `[POSIX`]&]
[s2;%% Returns true if current user can execute the file.&]
[s3; &]
[s4;%% &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const: [_^FileTime^ FileTime]_[* GetLastChangeTime](
[s5;:FindFile`:`:GetLastWriteTime`(`)const:%- [_^FileTime^ FileTime]_[* GetLastWriteTime](
)_[@(0.0.255) const]&]
[s6;%% `[POSIX`]&]
[s2;%% Returns the last change time (st`_ctime member of stat structure).&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsDirectory`(`)const: [@(0.0.255) bool]_[* IsDirectory]()_[@(0.0.255) cons
t]&]
[s2;%% Returns true if entry is a directory. Note that FindFile returns
[s2; Returns the last time the entry was modified. Always works.&]
[s3; &]
[s4;%- &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- uid`_t_[* GetUid]()&]
[s6; `[POSIX`]&]
[s2; Returns user ID of file.&]
[s3;%- &]
[s4;%- &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- gid`_t_[* GetGid]()&]
[s6; `[POSIX`]&]
[s2; Returns group ID of file.&]
[s3;%- &]
[s4;%- &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [@(0.0.255) bool]_[* CanRead]()_[@(0.0.255) c
onst]&]
[s6; `[POSIX`]&]
[s2; Returns true if current user can read the file.&]
[s3;%- &]
[s4;%- &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [@(0.0.255) bool]_[* CanWrite]()_[@(0.0.255) c
onst]&]
[s6; `[POSIX`]&]
[s2; Returns true if current user can write the file.&]
[s3;%- &]
[s4;%- &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [@(0.0.255) bool]_[* CanExecute]()_[@(0.0.255) c
onst]&]
[s6; `[POSIX`]&]
[s2; Returns true if current user can execute the file.&]
[s3;%- &]
[s4; &]
[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [_^FileTime^ FileTime]_[* GetLastChangeTim
e]()_[@(0.0.255) const]&]
[s6; `[POSIX`]&]
[s2; Returns the last change time (st`_ctime member of stat structure).&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsDirectory`(`)const:%- [@(0.0.255) bool]_[* IsDirectory]()_[@(0.0.255) co
nst]&]
[s2; Returns true if entry is a directory. Note that FindFile returns
`'..`' and `'.`' pseudo`-directories in the listing (on both
platforms), these return true as well.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsFolder`(`)const: [@(0.0.255) bool]_[* IsFolder]()_[@(0.0.255) const]&]
[s2;%% Returns true if entry is a directory, but [* not] `'..`' nor
`'.`'.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsFile`(`)const: [@(0.0.255) bool]_[* IsFile]()_[@(0.0.255) const]&]
[s2;%% Returns true if entry is a file.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsArchive`(`)const: [@(0.0.255) bool]_[* IsArchive]()_[@(0.0.255) const]&]
[s6;%% `[Win32`]&]
[s2;%% Returns true if entry has archive flag set.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsCompressed`(`)const: [@(0.0.255) bool]_[* IsCompressed]()_[@(0.0.255) co
nst]&]
[s6;%% `[Win32`]&]
[s2;%% Returns true if entry has compressed flag set.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsHidden`(`)const: [@(0.0.255) bool]_[* IsHidden]()_[@(0.0.255) const]&]
[s2;%% Returns true if entry has hidden flag set in Win32 or starts
with `'.`' in POSIX.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsReadOnly`(`)const: [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) const]&]
[s2;%% Returns true if entry is read only (in current user context).&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsSystem`(`)const: [@(0.0.255) bool]_[* IsSystem]()_[@(0.0.255) const]&]
[s6;%% `[Win32`]&]
[s2;%% Returns true if entry has system flag set.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsTemporary`(`)const: [@(0.0.255) bool]_[* IsTemporary]()_[@(0.0.255) cons
t]&]
[s6;%% `[Win32`]&]
[s2;%% Returns true if entry has system flag set.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:IsSymLink`(`)const: [@(0.0.255) bool]_[* IsSymLink]()_[@(0.0.255) const]&]
[s2;%% POSIX: Returns true if entry is POSIX symlink. Win32: Returns
true if entry is Shell link file (.lnk with proper content).&]
[s3;%% &]
[s4; &]
[s5;:FindFile`:`:IsExecutable`(`)const: [@(0.0.255) bool]_[* IsExecutable]()_[@(0.0.255) co
nst]&]
[s2;%% Returns true if target file is executable binary.&]
[s3; &]
[s4;%% &]
[s5;:FindFile`:`:GetMode`(`)const: [_^dword^ dword]_[* GetMode]()_[@(0.0.255) const]&]
[s6;%% `[POSIX`]&]
[s2;%% Returns UNIX access mode.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&]
[s2;%% Returns true if there is current entry in FindFile (if false,
[s4; &]
[s5;:FindFile`:`:IsFolder`(`)const:%- [@(0.0.255) bool]_[* IsFolder]()_[@(0.0.255) const]&]
[s2; Returns true if entry is a directory, but [* not] `'..`' nor `'.`'.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsFile`(`)const:%- [@(0.0.255) bool]_[* IsFile]()_[@(0.0.255) const]&]
[s2; Returns true if entry is a file.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsArchive`(`)const:%- [@(0.0.255) bool]_[* IsArchive]()_[@(0.0.255) const]&]
[s6; `[Win32`]&]
[s2; Returns true if entry has archive flag set.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsCompressed`(`)const:%- [@(0.0.255) bool]_[* IsCompressed]()_[@(0.0.255) c
onst]&]
[s6; `[Win32`]&]
[s2; Returns true if entry has compressed flag set.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsHidden`(`)const:%- [@(0.0.255) bool]_[* IsHidden]()_[@(0.0.255) const]&]
[s2; Returns true if entry has hidden flag set in Win32 or starts
with `'.`' in POSIX.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsReadOnly`(`)const:%- [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) cons
t]&]
[s2; Returns true if entry is read only (in current user context).&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsSystem`(`)const:%- [@(0.0.255) bool]_[* IsSystem]()_[@(0.0.255) const]&]
[s6; `[Win32`]&]
[s2; Returns true if entry has system flag set.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsTemporary`(`)const:%- [@(0.0.255) bool]_[* IsTemporary]()_[@(0.0.255) co
nst]&]
[s6; `[Win32`]&]
[s2; Returns true if entry has system flag set.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:IsSymLink`(`)const:%- [@(0.0.255) bool]_[* IsSymLink]()_[@(0.0.255) const]&]
[s2; POSIX: Returns true if entry is POSIX symlink. Win32: Returns
true if entry is Shell link file (.lnk with proper content).&]
[s3; &]
[s4;%- &]
[s5;:FindFile`:`:IsExecutable`(`)const:%- [@(0.0.255) bool]_[* IsExecutable]()_[@(0.0.255) c
onst]&]
[s2; Returns true if target file is executable binary.&]
[s3;%- &]
[s4; &]
[s5;:FindFile`:`:GetMode`(`)const:%- [_^dword^ dword]_[* GetMode]()_[@(0.0.255) const]&]
[s6; `[POSIX`]&]
[s2; Returns UNIX access mode.&]
[s3; &]
[s4; &]
[s5;:FindFile`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&]
[s2; Returns true if there is current entry in FindFile (if false,
all entry information methods have undefined behaviour). Usually,
this is used as condition to the loop that enumerates directory.&]
[s3;%% &]
[s0;%% &]
[ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&]
[s3;%% &]
[s5;:FindFile`:`:FindFile`(`): [* FindFile]()&]
[s2;%% Initializes to empty state.&]
[s3;%% &]
[s4;%% &]
[s5;:FindFile`:`:FindFile`(const char`*`): [* FindFile]([@(0.0.255) const]_[@(0.0.255) char
]_`*[*@3 name])&]
[s2;%% Initializes and performs Search([%-*@3 name]).&]
[s3;%% &]
[s0;%% ]]
[s3; &]
[s0; &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor detail]]}}&]
[s3; &]
[s5;:FindFile`:`:FindFile`(`):%- [* FindFile]()&]
[s2; Initializes to empty state.&]
[s3; &]
[s4; &]
[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; ]]

View file

@ -10,8 +10,8 @@ topic "Format - text formatting";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US
[s0; [*@3;4 Format `- text formatting]&]
[s0;*+117 &]
[ {{10000@(113.42.0) [s0; [*@2;4 Format `- text formatting]]}}&]
[s0;*@3;4 &]
[s5;:`:`:Format`(const char`*`,const`:`:Vector`<`:`:Value`>`&`):%- [^`:`:String^ String
]_[* Format][@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`*][*@3 format][@(64) ,
][@(0.0.255) const][@(64) _][^`:`:Vector^@(64) Vector][@(64) <][^`:`:Value^@(64) Value][@(64) >

View file

@ -1,4 +1,4 @@
topic "";
topic "Function";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]

View file

@ -1,4 +1,4 @@
topic "";
topic "Huge";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]
@ -10,7 +10,7 @@ topic "";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US
[ {{10000@(113.42.0) [s0; [*@7;4 Title]]}}&]
[ {{10000@(113.42.0) [s0; [*@7;4 Huge]]}}&]
[s3;%- &]
[s1;:Upp`:`:Huge`:`:class:%- [@(0.0.255)3 class][3 _][*3 Huge]&]
[s2; This class is intended for dealing of raw binary data bigger
@ -98,5 +98,4 @@ onst]&]
[s5;:Upp`:`:Huge`:`:Get`(`)const:%- [_^Upp`:`:String^ String]_[* Get]()_[@(0.0.255) const]&]
[s2; Returns data as String. There must be less than 2GB of data
or operation fails with Panic.&]
[s3;%- &]
[s0; ]]
[s3;%- ]]

View file

@ -21,8 +21,7 @@ is required.&]
[s3; &]
[s0;i448;a25;kKO9;@(0.0.255) &]
[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&]
[s0; &]
[s4; &]
[s3; &]
[s5;:Id`:`:ToString`(`)const: [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[* ToStrin
g]()_[@(0.0.255) const]&]
[s2;%% Returns contained text.&]

View file

@ -10,73 +10,72 @@ topic "Thread synchronization primitives";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[*C1 $$10,10#39751211140134154172026758035355:code]
[{_}
[s0;%% [*@3;4 Thread synchronization primitives]&]
[{_}%EN-US
[ {{10000@(113.42.0) [s0; [*@2;4 Thread synchronization primitives]]}}&]
[s3; &]
[s0; &]
[ {{10000t/25b/25@1 [s0; [* Function List]]}}&]
[s3; &]
[s5;:AssertST`(`): [@(0.0.255) void]_[* AssertST]()&]
[s2;%% This operation only has effect in DEBUG mode. If any Thread
[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&]
[s3;%- &]
[s5;:AssertST`(`):%- [@(0.0.255) void]_[* AssertST]()&]
[s2; This operation only has effect in DEBUG mode. If any Thread
was started prior to calling AssertST, it will stop the execution
with diagnostic message. The purpose is that some global initialization
routines are best performed before any multi`-threading starts.
AssertST can be used to assure this as runtime check.&]
[s3;%% &]
[s4; &]
[s5;:Atomic`:`:typedef: [@(0.0.255) typedef]_[/ integer`_type]_[* Atomic]&]
[s2;%% This is the integer type that can be used as argument of AtomicInc/AtomicDec
[s3; &]
[s4;%- &]
[s5;:Atomic`:`:typedef:%- [@(0.0.255) typedef]_[/ integer`_type]_[* Atomic]&]
[s2; This is the integer type that can be used as argument of AtomicInc/AtomicDec
function. It is compatible with `'int`' `- it has the same value
range and it can be converted to `'int`'. Since C`+`+11, it is
in fact implemented using std`::atomic<int> and kept only because
of backward compatibility.&]
[s3;%- &]
[s4;%- &]
[s5;:AtomicInc`(volatile Atomic`&`):%- [@(0.0.255) int]_[* AtomicInc]([@(0.0.255) volatile]_
[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t])&]
[s2; Increments t by one and returns the result (`"`+`+t`").&]
[s3; &]
[s4; &]
[s5;:AtomicInc`(volatile Atomic`&`): [@(0.0.255) int]_[* AtomicInc]([@(0.0.255) volatile]_[_^Atomic^ A
tomic][@(0.0.255) `&]_[*@3 t])&]
[s2;%% Increments t by one and returns the result (`"`+`+t`").&]
[s3;%% &]
[s4; &]
[s5;:AtomicDec`(volatile Atomic`&`): [@(0.0.255) int]_[* AtomicDec]([@(0.0.255) volatile]_[_^Atomic^ A
tomic][@(0.0.255) `&]_[*@3 t])&]
[s2;%% Decrements t by one and returns the result (`"`-`-t`").&]
[s3; &]
[s0; &]
[ {{10000t/25b/25@1 [s0; [* Macro List]]}}&]
[s3; &]
[s5;:INTERLOCKED: [* INTERLOCKED]&]
[s2;%% This macro adds static Mutex to the block. For example:&]
[s2;%% [C1 -|-|INTERLOCKED `{]&]
[s2;%% [C1 -|-|-|Foo();]&]
[s2;%% [C1 -|-|`}]&]
[s2;%% -|is equivalent to&]
[s2;%% [C1 -|-|`{-|static Mutex ][/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])&]
[s2;%% Similar to INTERLOCKED, but instead of `'anonymous`' implicit
[s4;%- &]
[s5;:AtomicDec`(volatile Atomic`&`):%- [@(0.0.255) int]_[* AtomicDec]([@(0.0.255) volatile]_
[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t])&]
[s2; Decrements t by one and returns the result (`"`-`-t`").&]
[s3;%- &]
[s0;%- &]
[ {{10000t/25b/25@1 [s0;%- [* Macro List]]}}&]
[s3;%- &]
[s5;:INTERLOCKED:%- [* INTERLOCKED]&]
[s2; This macro adds static Mutex to the block. For example:&]
[s2; [C1 -|-|INTERLOCKED `{]&]
[s2; [C1 -|-|-|Foo();]&]
[s2; [C1 -|-|`}]&]
[s2; -|is equivalent to&]
[s2; [C1 -|-|`{-|static Mutex ][/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])&]
[s2; Similar to INTERLOCKED, but instead of `'anonymous`' implicit
static Mutex it uses explicit Mutex [%-*@3 cs].&]
[s3; &]
[s4; &]
[s5;:ONCELOCK: [* ONCELOCK]&]
[s2;%% Designates block that only gets performed at first run, taking
[s3;%- &]
[s4;%- &]
[s5;:ONCELOCK:%- [* ONCELOCK]&]
[s2; Designates block that only gets performed at first run, taking
into account all multi`-threading issues. In single threaded
environment&]
[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`_](o`_b`_)&]
[s2;%% Similar to oncelock, but allows associating a flag variable,
[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`_](o`_b`_)&]
[s2; Similar to oncelock, but allows associating a flag variable,
which must be of type OnceFlag. Such variable has to initialized
to zero (preferably by static zero initialization of memory).
On the first run of for specific OnceFlag, ONCELOCK`_ performs
the block (and changes the variable so that it is not performed
on the next run).&]
[s3; &]
[s0; ]]
[s3;%- &]
[s0;%- ]]

View file

@ -23,8 +23,6 @@ class bases, with the derived class as its parameter, e.g.:&]
[s0; [C+75 struct Foo : Pte<Foo> `{....]&]
[s3; &]
[s0; &]
[s0; &]
[s0; &]
[ {{10000@(113.42.0) [s0; [*@7;4 Pte]]}}&]
[s3;%- &]
[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&]
@ -38,8 +36,6 @@ pointed object. &]
teBase]&]
[s3; &]
[s0;%- &]
[s0;%- &]
[s0;%- &]
[ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&]
[s3;%- &]
[s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&]
@ -122,4 +118,4 @@ tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@(
]&]
[s2; Comparison operators.&]
[s3; &]
[s0; ]
[s0; ]]

View file

@ -10,8 +10,8 @@ topic "Serialization utilities";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US
[s0; [*@3;4 Serialization utilities]&]
[s0;3%- &]
[ {{10000@(113.42.0) [s0; [*@2;4 Serialization utilities]]}}&]
[s0;*@3;4 &]
[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&]
[s0;0%- &]
[s5;:Pack16`(Stream`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16]([_^Stream^ Str

View file

@ -10,8 +10,8 @@ topic "Stream utilities";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}
[s0;%% [5 Stream helpers]&]
[s0;3 &]
[ {{10000@(113.42.0) [s0;%% [*@2;4 Stream helpers]]}}&]
[s0;%% &]
[ {{10000t/25b/25@1 [s0; [* Function List]]}}&]
[s3; &]
[s5;:LoadStream`(Stream`&`): [_^String^ String]_[* LoadStream]([_^Stream^ Stream][@(0.0.255) `&

View file

@ -1,4 +1,4 @@
topic "";
topic "Unicode UTF[8,16,32] support";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]

View file

@ -10,8 +10,8 @@ topic "ValueMap";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US
[ {{10000@(113.42.0) [s0; [*@7;4 Title]]}}&]
[s1;@(0.0.255)3%- &]
[ {{10000@(113.42.0) [s0; [*@7;4 ValueMap]]}}&]
[s3;%- &]
[s1;:ValueMap`:`:class:%- [@(0.0.255)3 class][3 _][*3 ValueMap]&]
[s2; ValueMap is a map of key`-value pairs, where both key and value
are of Value type. Key has to be rich Value type with operator`=`=
@ -34,7 +34,6 @@ elements with corresponding indices.&]
ValueArray elements contained in Value with text keys (if Value
does not contain ValueMap or requested key, Void Value is returned).&]
[s2; &]
[s3;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:ValueMap`:`:ValueMap`(`):%- [* ValueMap]()&]

View file

@ -11,7 +11,7 @@ topic "XmlIO";
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}
[ {{10000@(113.42.0) [s0;%% [*@7;4 XmlIO and Xmlize framework]]}}&]
[s1;@(0.0.255)3 &]
[s3; &]
[s1;:XmlIO`:`:class: [@(0.0.255)3 class][3 _][*3 XmlIO]&]
[s2;%% XmlIO represents a single XmlNode in Jsonize framework. It
is used as parameter for Xmlize and XmlAttrLoad/XmlAttrStore